OpenGL学习笔记(五):创建OpenGL工程模板前的所有准备工作

来源:互联网 发布:关于人工智能的英语 编辑:程序博客网 时间:2024/06/05 17:58

原博主博客地址:http://blog.csdn.net/qq21497936
本文章博客地址:http://blog.csdn.net/qq21497936/article/details/78778078


OpenGL学习笔记():创建OpenGL工程模板前的所有准备工作


前话

        前面介绍了OpenGL相关知识,开始动手实现,本章节目标是建立一个最简单的OpenGL工程模版前的配置,包括GLFW库,GLAD和VS配置,往后绝大部分程序都会以此为基础模板。

        笔者使用的环境是MicrosoftVisual Studio 2015


查看OpenGL版本

        请确认您的系统支持OpenGL3.3或更高版本,否则此应用有可能会崩溃或者出现不可预知的错误。如果想要查看OpenGL版本的话,在Linux上运行glxinfo,或者在Windows上使用其它的工具(例如OpenGLExtension Viewer)。如果你的OpenGL版本低于3.3,检查一下显卡是否支持OpenGL 3.3+(不支持的话你的显卡真的太老了),并更新你的驱动程序,有必要的话请更新显卡。

        OpenGLExtension Viewer下载地址:http://download.csdn.net/download/qq21497936/10154615

        先点击解压到一个临时目录,进入临时目录,点击安装,安装完成后,可点击运行,如下图:




        点击 “see detials”即可查看当前系统支持的OpenGL版本:



GLFW库

        GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入。

下载GLFW

        源代码下载地址:http://download.csdn.net/download/qq21497936/10154537

        改文件夹中的build是笔者已经编译好的,源码包里面没有build目录。

使用cmake编译

        CMake是一个工程文件生成工具。用户可以使用预定义好的CMake脚本,根据自己的选择(像是Visual Studio, Code::Blocks, Eclipse)生成不同IDE的工程文件。

        Cmake下载地址:http://download.csdn.net/download/qq21497936/10154545

解压后直接使用cmake-gui.exe


        解压之前下载的glfw-3.2.1(已建立build,建议先删除build),然后再目录下建立一个build文件夹,build是我们编译成目标文件所存放的文件夹。

CMake需要一个源代码目录和一个存放编译结果的目标文件目录,如下图:

   


点击Configure(设置)按钮,让CMake读取设置和源代码,选择我们的工程目标生成器为Visual Studio 14 2015 Win64。




CMake会显示可选的编译选项:



        这里我们使用默认设置,再次点击Configure(设置)按钮保存设置。保存之后,点击Generate(生成)按钮,生成的工程文件将会在你的build文件夹中。

编译

        build文件夹里可以找到GLFW.sln文件:

Visual Studio 2015打开。


        因为CMake已经配置好了项目,所以我们直接点击Build Solution(生成解决方案)按钮,进行编译


         然后编译的库glfw3.lib(注意我们用的是第3版)就会出现在src/Debug文件夹内。


GLAD

        OpenGL只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的。由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。取得地址的方法因平台而异

// 定义函数原型 typedef void (*GL_GENBUFFERS) (GLsizei, GLuint*); //找到正确的函数并赋值给函数指针 GL_GENBUFFERS glGenBuffers = (GL_GENBUFFERS)wglGetProcAddress("glGenBuffers"); // 现在函数可以被正常调用了 GLuint buffer; glGenBuffers(1, &buffer);

        你可以看到代码非常复杂,而且很繁琐,我们需要对每个可能使用的函数都要重复这个过程。幸运的是,有些库能简化此过程,其中GLAD是目前最新,也是最流行的库。

配置GLAD

        GLAD是一个开源的库,它能解决我们上面提到的那个繁琐的问题。GLAD的配置与大多数的开源库有些许的不同,GLAD使用了一个在线服务。在这里我们能够告诉GLAD需要定义的OpenGL版本,并且根据这个版本加载所有相关的OpenGL函数。

地址:http://glad.dav1d.de/

操作如下图


        步骤5后会自动下载,下载解压得到glad目录。工程中需要将glad头文件的include目录加入到包含头文件路径中,将src源文件glad.c直接添加以后的项目当中。



小结

   本章节完,下一章节将会进入代码编程学习,结合实际操作更容易理解。


原博主博客地址:http://blog.csdn.net/qq21497936
本文章博客地址:http://blog.csdn.net/qq21497936/article/details/78778078