Understanding glNormal3f

Understanding glNormal3f

本文关键字:glNormal3f Understanding      更新时间:2023-10-16

我无法理解glnormal3f,我知道它适用于'正常'顶点'''的"正常" ...或类似的东西,但是我不明白什么是顶点的"正常"。你能解释一下我的功能吗?我不明白opengl中的"正常"含义...

顶点的"正常"是"垂直"的向量。在数学中,"正常"是"垂直"的概括。对于多边形,该"正常矢量"垂直于多边形,其所有顶点都是相同的。您可能会为多边形的每个顶点分配不同的普通向量的一个原因是,如果您覆盖了带有非常小的三角形的弯曲表面。在这种情况下,您不希望三角形的三个顶点的普通向量都相同。

现在,这个普通向量是用什么?在OpenGL中启用照明时,典型的应用程序用于着色计算。正常矢量可以确定来自光源的光线是否撞击表面以及光线与表面产生的角度。然后,这可以用于确定表面是否被阴影或包含镜面亮点。

glNormal的调用将使正常向量发射到最后一个发射的顶点。顶点正常值通常是作为入射到顶点的面部正态的归一化平均值。面部的正态为矢量,因此它们垂直于面部所描述的平面。

此功能已弃用,您确实应该选择一个好/教程或书籍。

另请参见Vertex正常和关联的条目。

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

相关文章: