GL_TRIANGLE_FAN第一个(中心)顶点法线

时间:2012-10-26 11:41:08

标签: c++ opengl

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

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

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

基本上我需要为构成三角形的所有三个顶点指定相同的面法线,并为下两个三角形指定相同的面。

但是当我只调用一次顶点绘制函数一次时,不知道如何为第一个(中心)顶点分配三次正常(即使GL_TRIANGLE_FAN可以实现?!)。

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

1 个答案:

答案 0 :(得分:4)

一个常见的误解是顶点只是位置。顶点是位置,法线,纹理坐标等的整个集合。如果只更改顶点矢量的一个属性,则会得到一个非常不同的顶点。

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