理解OpenGL的状态机概念对理解代码非常重要, 下面是一个经典的开启默认是关闭的OpenGL的深度测试状态的例子, 在下面的例子中尤其是glEnable函数, 我们并没有显式地将OpenGL的某个变量进行赋值...中
glGenBuffers(1, triangleVBO);
// GL_ARRAY_BUFFER是缓冲对象的类型, 也可以理解为一个状态
// 此后对GL_ARRAY_BUFFER的操作都会对名为triangleVBO...但是回忆一下, 类似正交投影变换这样的几何变换通常都是统一发生在所有顶点上的, 我们没有必要对所有顶点对象都传入一个相同的变换矩阵到顶点着色器中, 因此OpenGL设置了一类专门的类型用来控制这种通用的数据.../
17.15 Texture Objects 材质对象
最后介绍的OpenGL重要组件是材质对象(Texture Object), 其常见的实现方法是在顶点着色器中计算出各个顶点的材质坐标, 然后在片元着色器中对坐标进行对应的插值并从材质图像中查找对应的颜色值进行着色...材质渲染效果
17.16 Object-Oriented Design for Graphics Hardware Programming 图形硬件编程中的面向对象设计
OpenGL本身的设计有很强的面向过程特性