15SC0RND201711041I翻译第一期

开始翻译啦!

http://www.opengl-tutorial.org/beginners-tutorials/tutorial-1-opening-a-window/#introduction

第一课

介绍

欢迎来到第一节课!

在开始OpenGL之前,你将会学习如何搭建课程环境,如何运行它以及最重要的,如何使用这些代码自嗨。

知识基础

本课程不需要任何特殊的知识基础,某一种语言经验(C,Java,Lisp,Javascript之类的)仅有助于你完全理解代码,但不是必须的,只不过同时学两样东西会麻烦一些。

所有课程代码被尽可能写得简单,是没有模板,没有类和指针的“Eazy C++”格式。这样,即便你只知道JAVA也能理解所有东西。

忘了它们

你不需要知道任何事,反而应该忘记有关OpenGL的一切。如果你知道类似glBegin()的东西,快忘了它吧。在这里,你要学习现代OpenGL 3和4,可是有的网络教学教授老版本的OpenGL比如一代和二代。所以,忘掉你所知道的一切,不然你的大脑就要乱成一锅粥啦。

搭建教程

Windows、Linux和Mac都可以搭建教程,并且步骤是差不多的。

  • 我警告你!!升级驱动!!
  • 如果你没有编译器,快下载一个
  • 安装CMake
  • 下载教程代码
  • 用CMake生成一个project
  • 用你的编译器构筑它
  • 这时候你就可以玩耍了!

 不同平台的步骤细节并没有给出,可能会需要一些改动,不确定的话读读Windows的操作指南再试试看吧。

在Windows上搭建

  • 升级驱动是很简单的,只需要打开英伟达或者超威官网下载驱动器。可以在控制面板-》系统和安全-》系统-》设备管理器-》显示适配器检查GPU型号。如果你使用英特尔GPU,通常驱动程序由原始设备制造商(OEM)提供。
  • 我们建议编译器使用VS2017桌面版,可以在这里免费下载(最好要选择默认安装路径噢)。请确认你在自定义安装时选择了C++。如果你更想用MinGW的话,我们推荐Qt Creator,安装一个你喜欢的就好啦。接下来的步骤以Visual Studio演示,但其它的集成开发工具(IDE)操作是起来差不多的。
  • 从这里下载并安装CMaker
  • 可以在这里免费下载课程代码,并且解压缩它。
  • 打开CMaker后,在第一行打开解压后的文件夹,就是包含CMakeLists.txt的那个文件夹。接下来,在第二行输入你希望编译器应该储存在哪里,方便起见,可以把所有东西放在同一个大文件夹下。当然,你要是想放在别的地方也是没有什么问题的。
  • 点击配置(Configure)按钮,因为是第一次配置工程,CMaker会询问使用哪个编译器。这时候你就要选择第一布所安装的那款。如果你是64位系统,请选择64 bits,不知道的话就点32 bits吧。
  • 点击配置键后请稍等片刻,在进度条满了之后,再点击生成(Generate)键,你的VS工程就这样出现啦。这之后CMake就可以扔边上咯。
  • 打开你刚生成的文件夹,然后使用VS打开Tutorials.sln。
  • 搭建菜单,点击调试来编译所有课程文件,所有的可执行文件就会生成在课程文件夹里了。
  • 打开playground,会出现一个纯色背景(原文说是黑色然而我是蓝色的hhh)
  • 你还可以通过F5来运行任何课程代码,不过要在此之前先【设为启动项目】噢(右键想打开的文件,在下拉菜单即可看到)

运行它们

你应该从正确的目录来直接打开教程,只需要简单双击就好啦。当然,如果你实在喜欢命令行模式,就使cd打开吧,请注意,目录要正确噢。

如果你想用IDE运行,不要忘记阅读使用指南并且设置正确路径。

如何学习教程呢?

每一课都有相应的源代码以及数据,都以tutorialXX来命名。但是你不能随便魔改它们哦,因为这只是让你看着明白的。如果你想自己试试看,就打开playground/playground.cpp,随便造吧!如果你弄叉劈了,只需要随便把某一课教程粘贴进去就行了哈。

在学习过程中,我们会提供某些部分的代码。强烈建议边读边自己粘进playground试试看,学而习之,收获才会更大。千万不要读完代码就了事,这样你可学不到什么的,即使之复制粘贴来玩,你也会学到不少东西呢。

打开窗口

好了!这就是OpenGL的代码!mmm,其实并不是。很多教程向你展示“低级”的做事方法,这样你不会见到任何玄学的东西发生。但是“打开窗口”这部分实在是无聊又无用,所以我们会使用外部函数库GLFW来实现它。如果你非要自己弄,那可以使Windows上的Win32 API、Linux上的 X11 API、Mac上的Cocoa API或者刚高端的库比如SFML、FreeGLUT、SDL等等,详见Links页面

好啦,开始吧!

首先,我们先要处理一下dependencies(这个实在想不到合适的词汇了、、、专业词很匮乏,知道的大佬麻烦告我一声)我们需要一些基本的东西来在控制台里显示消息。

这是标准文件头

 

#include <stdio.h>
#include <stdlib.h>

首先向我们走来的是GLEW。它事实上有一点玄学之力存在,不过咱回头再谈它。

 

//包含了GLEW。永远在gl.h以及glfw.h之前包含它,因为玄学
#include <GL/glew.h>

我们打算让GLFW控制窗口和键盘,所以我们把它包含在这里

//包含GLFW
#include <GL/glfw3.h>

实际上我们并不需要下面这玩意,但它是个将会很有用的3D数学库。GLM里就没什么玄学存在了,它是手写出来的,你完全可以自己写一个。“using namespace glm”可以让你在“glm::vec3”里面省去“glm::”这句话。

//包含GLM
#include <glm/glm.hpp>
using namespace glm;

如果你从playground.cpp贴过来了所有这些#include,编译器会告诉你并没有mian()函数。所以,咱写一个吧:

 

生词:prerequisite  merely  procedure  adaptation 与 adaption  panel  integrated  repository  navigate  configure  dependency  from inside  directory  tweak  torture  snippet  hesitate  compatible  poll

 

posted @ 2017-11-04 20:00  颜②  阅读(147)  评论(0编辑  收藏  举报