有多少法线?

时间:2010-06-22 20:50:24

标签: opengl-es webgl normals

如果要计算多边形的法线以在WebGL上渲染它,是否对索引数组中的每个索引使用法线或者对顶点数组中的每个顶点使用法线?

2 个答案:

答案 0 :(得分:2)

notes here中,用户正在为每个顶点计算它们。

答案 1 :(得分:1)

每个顶点。 WebGL意义上的顶点(与OpenGL ES和其他前辈相同)并不是空间中的一个点,而是属性的组合。其中一个几乎总是位置(虽然在不常见的情况下你可能没有),其他通常是法线矢量,颜色,纹理坐标等等。

相比之下,索引数组是顶点属性数组的偏移量。所以当你在索引数组中指定索引(比如说)1时,它是“将位置缓冲区中的第一个位置组合起来的顶点,普通缓冲区中的第一个法线,颜色缓冲区中的第一个颜色,以及第一个纹理坐标缓冲区中的纹理坐标“。

在学习这个时,对我来说最直观的一点是将顶点与它们碰巧占据的位置分开。没有理由说两个顶点不能有相同的位置。