4 为图元指定法向量 OpenGL必须通过图元的法线向量来确定图元的明暗程度。只有场景中的物体有了明暗的不同,场景才有立体感。 确定一个平面的法向量是一件相当简单的事情。在一个平面上,随意寻找两个互不平行的向量,它们的外积(叉积)就是这个平面的法线。 计算两向量的外积可以使用公式:
上述公式中,U、V为两不平行向量,S为U、V的外积(即U×V)。计算完外积之后,我们还需要将得到的向量转换为单位向量。只要将一个向量的x、y、z因子全部除以该向量的模就可以得到单位向量。因此,可以使用下面的代码计算一个三角形的法线向量。 请注意应该将三角形的顶点按逆时针顺序传给函数以获得正确结果。 通过计算得到法线向量之后,我们需要在绘制顶点之前调用glNormal函数为顶点或图元指定法线。例如: glBegin(GL_TRIANGLES); |