1、几个常用的库和概念:
openGLES,opengl的嵌入式设备版本
glut(OpenGL Utility Toolkit),一个处理OpenGL程式的工具库,负责处理和底层操作系统的呼叫以及I/O
freeglut,开源的替代glut的库
glfw,和freeglut差不多,根据喜好习惯选取
glm(OpenGL Mathematics ) , opengl的一个几何数学库,封装了一些矩阵变换之类的函数
assimp(Open Asset Import Library) , 模型加载库,如对obj文件的加载(目前我只用过这个功能)和其它功能
2、3D渲染所用到的文件
最简陋的组合:.obj、.mtl、.jpg/.tga/.bmp/...
obj 存储三维模型位置坐标、纹理坐标、每个面的点索引等信息的
mtl 包含了纹理图的路径以及材质等信息
jpg等为纹理图
3、在平面上展示模拟人眼感知的3D画面
想要在平面上展示模拟人眼感知的3D画面,每个三维坐标点需要经过如下矩阵变换:
projection * view * model * vec4(position, 1.0)
model 模型矩阵 模拟物体在世界坐标系的自旋转、缩放、平移
view 视图矩阵 模拟从不同角度、位置去观察物体所展现出来的样子
projection 投影矩阵 模拟观察物体时近大远小的一个状态
这几个矩阵在glm中均有现成的函数来构造,但最好自己推倒一遍公式,以便理解。公式推导有时间再写。