6

我无法理解 glNormal3f,我知道它适用于“标准化”顶点的“法线”......或类似的东西,但我不明白什么是顶点的“法线”。你能解释一下这个功能吗?我不明白openGL中的“正常”是什么意思......

4

2 回答 2

8

顶点的“法线”是与顶点“垂直”的向量。在数学中,“正常”是“垂直”的概括。对于多边形,这个“法线向量”垂直于多边形并且对于它的所有顶点都是相同的。您可能会为多边形的每个顶点分配不同的法线向量的一个原因是,如果您使用非常小的三角形覆盖曲面。在这种情况下,您不希望三角形的三个顶点的法线向量都相同。

现在这个法线向量是做什么用的?典型应用程序用于在 OpenGL 中启用光照时进行着色计算。法线向量可以确定来自光源的光是否照射到表面以及光线与表面形成的角度。例如,这可用于确定表面是否有阴影或是否包含镜面高光。

于 2012-10-31T00:31:40.977 回答
7

调用glNormal会将法线向量发射到最后发射的顶点。顶点法线通常计算为入射到顶点的面的法线的归一化平均值。面的法线是矢量,因此它们垂直于面所描述的平面。

此功能已弃用,您真的应该选择一本好的/教程或书籍。

另请参见顶点法线和相关条目。

如果你不应该使用glVertex*和相关的glNormal*功能,你应该使用什么?着色器和 VBO。看看这个问题。

于 2012-10-31T00:30:37.623 回答