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

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

原博主博客地址:http://blog.csdn.net/qq21497936

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


《OpenGL学习笔记》系列博客目录地址:http://blog.csdn.net/qq21497936/article/category/7315532


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

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


图片.png


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


图片.png

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

图片.png

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

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

 


图片.png


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


图片.png


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


图片.png

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

编译

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

图片.png

Visual Studio 2015打开。

图片.png

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

图片.png

        然后编译的库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/

操作如下图

图片.png

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

图片.png


小结

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



原博主博客地址:http://blog.csdn.net/qq21497936

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


相关文章
QT+OpenGL模板测试和混合
当片段着色器处理完一个片段之后,模板测试会开始执行。和深度测试一样,它可能会丢弃片段,接下来被保留的片段会进入深度测试。
81 0
|
小程序 C++ 索引
学习OpenGL之准备工作
学习OpenGL之准备工作
104 0
学习OpenGL之准备工作
|
缓存 索引
OpenGL学习笔记(十三):将纹理贴图应用到四边形上,对VAO/VBO/EBO/纹理/着色器的使用方式进行总结
OpenGL学习笔记(十三):将纹理贴图应用到四边形上,对VAO/VBO/EBO/纹理/着色器的使用方式进行总结
OpenGL学习笔记(十三):将纹理贴图应用到四边形上,对VAO/VBO/EBO/纹理/着色器的使用方式进行总结
|
存储 缓存 C++
OpenGL学习笔记(十二):纹理的使用
OpenGL学习笔记(十二):纹理的使用
OpenGL学习笔记(十二):纹理的使用
|
编译器 C语言 C++
OpenGL学习笔记(十一):封装自己的着色器类
OpenGL学习笔记(十一):封装自己的着色器类
OpenGL学习笔记(十一):封装自己的着色器类
|
小程序 编译器 C语言
OpenGL学习笔记(十):深入学习和理解着色器
OpenGL学习笔记(十):深入学习和理解着色器
OpenGL学习笔记(十):深入学习和理解着色器
|
缓存 索引
OpenGL学习笔记(九):索引缓冲器(EBO /IBE)的理解与使用,引入线框/填充模式
OpenGL学习笔记(九):索引缓冲器(EBO /IBE)的理解与使用,引入线框/填充模式
OpenGL学习笔记(九):索引缓冲器(EBO /IBE)的理解与使用,引入线框/填充模式
|
存储 索引
OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形 下
OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形
OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形 下
|
5月前
|
XML 小程序 Java
【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)
【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)
109 0
|
缓存 C++
Opengl ES之FBO
Opengl ES连载系列
135 0
下一篇
无影云桌面