• 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

  • 相关阅读:
    CodeForces
    CodeForces-1253B(贪心+模拟)
    WebFlux、Reactive编程特性
    redis-on-windows配置解释
    SpringBoot配置方式补充
    如何在 Ubuntu 20.04 上安装 Python Pip
    MySQL之1055错误
    CuckooSandbox
    Manjaro 20.0.1 Lysia 安装Googlepinyin
    Manjaro 20.0.1 Lysia 更新国内镜像源
  • 原文地址:https://www.cnblogs.com/endofworld/p/7784125.html
Copyright © 2020-2023  润新知