OpenGL第1章-入门
Posted itzyjr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGL第1章-入门相关的知识,希望对你有一定的参考价值。
-
有些程序是用诸如C++或Java等标准编程语言编写的,并运行在CPU上;而另一些是用专用的
着色器语言
编写的,并直接运行在显卡(GPU
)上。 -
总的来说,你需要以下这些语言和库:
◉C++开发环境
◉OpenGL / GLSL
◉窗口管理
◉扩展库
◉数学库
◉纹理管理 -
2.0版本中引入了OpenGL着色语言(
GLSL
),使得“着色器程序”可以在图形管线的各个阶段被安装和直接执行。
3.1版本中移除了大量被弃用的功能,以强制使用着色器编程,而不是之前的老方法。 -
窗口管理:
OpenGL实际上并不是把图像直接绘制到计算机屏幕上,而是渲染到一个帧缓冲区
,然后需要由这台机器来负责把帧缓冲区的内容绘制到屏幕上的一个窗口中。 -
扩展库:
比如Glee、GLLoader和GLEW,以及更加新的GL3W和GLAD。
本书中使用库GLEW(OpenGL Extension Wrangler)即“扩展牧马人”。GLEW扩展库是个简单的工具,用于帮助C/C++开发者初始化扩展并书写可移植的应用程序。有了GLEW扩展库,你就再也不用为找不到函数的接口而烦恼,因为GLEW能自动识别你的平台所支持的全部OpenGL高级扩展函数。 -
数学库:
常常和OpengGL一起使用的两个这样的库是Eigen和vmath。
本书中使用的可能最流行的数学库是OpenGL Mathematics(GLM)。GLM提供与图形概念相关的类和基本数学函数,例如:失量、矩阵和四元数。它还包含各种工具类,用于创建和使用常见的3D图形结构,例如透视和视角矩阵。 -
纹理管理:
我们将使用图像文件来向我们图形场景中的对象添加“纹理”。这意味着我们会频繁加载这些图像文件到我们的C++/OpenGL代码中。考虑到各种各样的图像文件格式,使用一个纹理加载库通常是更好的。比如FreeImage、DevIL、OpenGL Image(GLI)和Glraw。简单OpenGL图像加载器(Simple OpenGL Image Loader,SOIL)可能是最常用的OpenGL图像加载库,尽管它有点过时了。SOIL2是SOIL的一个更新的分叉版本,它兼容各种平台。 -
可选库
有一些更复杂的现成的OBJ加载器可供选择,比如Assimp和tinyobjloader。
以上是关于OpenGL第1章-入门的主要内容,如果未能解决你的问题,请参考以下文章
Unity Shader入门精要学习笔记 - 第5章 开始 Unity Shader 学习之旅