整个渲染过程应该分为两个大的部分:
1) material synthesis(材质综合),包括纹理和表面属性。
2) illumination(光照),包括各种光照模型和渲染模型。
在这里主要涉及到的内容是illumination。
在OpenGL中,若需要计算光照模型(light model),就需要在指定顶点(vertex)的时候,为顶点添加两个属性:
1) 顶点的颜色;
2) 顶点出的法向向量;
这两个属性的值直接参与光照模型的计算公式中。下面就顺便提一下如何计算顶点处的法向向量:
首先计算任意一个三角平面的法向量。可以通过三角形平面中三个顶点的坐标计算出这个面的法向量:
A _
| _
| _
| _
C---B
上面画的三角形的三个顶点是以顺时针顺序排列的,与之对应的是左手坐标系。在OpenGL中采用的左手坐标系,而在Direct3D采用的是右手坐标系。根据三个顶点计算三角形面法向量的计算公式是:
normal=cross( (B-A), (C-A) )