GL_TRIANGLE_FAN 第一个(中心)顶点法线
Posted
技术标签:
【中文标题】GL_TRIANGLE_FAN 第一个(中心)顶点法线【英文标题】:GL_TRIANGLE_FAN first (center) vertex normal 【发布时间】:2012-10-26 11:41:07 【问题描述】:因此,如果我要使用 GL_TRIANGLE_FAN 绘制三棱锥,我会为中心提供一个顶点,为底部提供三个(实际上是四个,但你知道我的意思,对吧?!)。
我可以计算金字塔所有三个面(边)的面法线。
问题是如果我只有一个调用来绘制该顶点,我如何为每个面(边)的第一个(中心)顶点分配不同的法线?
基本上,我需要为构成三角形的所有三个顶点分配相同的面法线,而不是为接下来的两个三角形分配相同的面。
但是当我只调用一次顶点绘制函数时,不知道如何为第一个(中心)顶点分配法线三次(这甚至可能使用 GL_TRIANGLE_FAN 吗?!)。
将顶点法线设置为 glNormal3f(0.0f, 0.0f, 1.0f) 不好(尽管看起来是正确的),因为这样顶点之间的颜色插值是不正确的。
【问题讨论】:
你不能,你需要使用不同的顶点。它将具有相同的位置但不同的法线。 (并且可能是一个三角形列表而不是一个粉丝) 查看here了解一般问题及其解决方案。 【参考方案1】:顶点只是位置是一个常见的误解。顶点是位置、法线、纹理坐标等的全部集合。如果你只改变顶点向量的一个属性,你会得到一个非常不同的顶点。
因此不可能只有一个顶点,而是多个法线。这与定义顶点的方式相矛盾。
【讨论】:
以上是关于GL_TRIANGLE_FAN 第一个(中心)顶点法线的主要内容,如果未能解决你的问题,请参考以下文章