东莞凤岗哪里有学做网站的,wordpress表单微信,湖南营销型网站建设 要上磐石网络,营销网站建设软件下载当今#xff0c;图形编程是基于着色器的#xff0c;也就是说#xff0c;有些程序是基于C或Java等标准程序语言编写的#xff0c;并运行在中央处理器上#xff08;CPU#xff09;#xff1b;另一些是用专用的着色器语言编写的#xff0c;直接运行在图形处理单元#xf…当今图形编程是基于着色器的也就是说有些程序是基于C或Java等标准程序语言编写的并运行在中央处理器上CPU另一些是用专用的着色器语言编写的直接运行在图形处理单元GPU上。
1.1 语言和库
C 开发环境OpenGL/GLSL窗口管理库扩展库数学库纹理图像加载库
1.1.1 C
本文推荐使用Microsoft GVisual Studio作为C开发环境
1.1.2 OpenGL/GLSL
本书假定作者至少有一个支持4.3版本OpenGL的显卡。如果你不确定你的GPU支持哪个版本的OpenGL网上有免费的应用程序其中一个是GLView来查找答案。
1.1.3 窗口管理库
OpenGL实际上并不是把图像直接绘制到计算机屏幕上而是将之渲染到一个帧缓冲区然后由计算机将帧缓冲区中的内容绘制到屏幕上的一个窗口中。有不少库都支持这一部分工作。一个选择是使用操作系统提供的窗口管理功能比如Microsoft Windows API。但这不实用因为需要很多底层的编码工作。GLUT库曾是一个流行的库但现在已经被弃用了。它的一个现代化变体是freeglut库。其他相关的选项还有CPW库、GLOW库、GLUI库等。 GLFW是最流行的选择之一也是本书中选择使用的。它内置了对Windows、macOS、Linux和其他操作系统的支持。
1.1.4 扩展库
扩展库有Glee、GLLoader和GLEW以及新版的GL3W和GLAD。常用的是GLEW。这个名称代表OpenGL extension wrangler即OpenGL扩展库。GLEW支持各种操作系统包括Windows、macOS和Linux [GE20]但它并不是完美的选择。例如它需要一个额外的动态链接库。最近很多开发者选择GL3W或者GLAD。它们的优势是可以自动更新但是需要Python环境。本书使用GLEW。它可以在其官网下载。附录中给出了安装和配置GLEW的完整说明。
1.1.5 数学库
3D图形编程会大量使用向量和矩阵代数。常常和OpenGL一起使用的两个这样的库是Eigen和vmath。后者在流行的《OpenGL超级宝典第7版》中使用。
本书使用OpenGL Mathematics数学库一般称作GLM。它是一个只有头文件的C库兼容Windows、macOS和Linux [GM20]。GLM命令能很方便地遵循和GLSL相同的命名惯例使得来回阅读特定应用程序的C和GLSL代码时更容易。GLM可以在其官网下载。
GLM可提供与图形概念相关的类和基本数学函数例如矢量、矩阵和四元数。它还包含各种工具类用于创建和使用常见的3D图形结构例如透视和视角矩阵。
1.1.6 纹理图像加载库
本书中使用的纹理图像加载库是SOIL2——SOIL的一个更新的分支版本。
1.1.7 可选库
在本书中我们将展示如何从零开始实现一个简单的OBJ模型加载器。然而正如你将看到的它没有处理OBJ标准中很多可用的选项。有一些更复杂的、现成的OBJ模型加载器可供选择比如Assimp和tinyobjloader。本书的例子只会使用书中介绍和实现的简单模型加载器。