2

因此,如果我要使用 GL_TRIANGLE_FAN 绘制三边金字塔,我会为中心提供一个顶点,为底部提供三个(实际上是四个,但你知道我的意思,对吧?!)。

我可以计算金字塔的所有三个面(边)的面法线。

问题是如果我只有一个调用来绘制那个顶点,我如何为每个面(边)的第一个(中心)顶点分配不同的法线?

基本上我需要为组成三角形的所有三个顶点分配相同的面法线,而为接下来的两个三角形分配相同的面。

但是当我只调用一次顶点绘制函数时,不知道如何为第一个(中心)顶点分配法线三次(这甚至可能使用 GL_TRIANGLE_FAN 吗?!)。

将该顶点法线设置为 glNormal3f(0.0f, 0.0f, 1.0f) 是不好的(尽管看起来是正确的),因为这样顶点之间的颜色插值是不正确的。

4

1 回答 1

4

顶点只是位置是一个常见的误解。顶点是位置、法线、纹理坐标等的全部集合。如果你只改变顶点向量的一个属性,你会得到一个非常不同的顶点。

因此,不可能只有一个顶点,而是多个法线。这与定义顶点的方式相矛盾。

于 2012-10-26T15:00:03.083 回答