Opengl不规则形状颜色填充

时间:2009-11-11 17:26:42

标签: opengl glut

我正在用GL_LINES绘制一个5角星。当我使用GL_POLYGON时,它会扭曲星形的形状并连接第一个和最后一个顶点。求助:(?

3 个答案:

答案 0 :(得分:4)

现代显卡无法绘制3D多边形;他们只绘制三角形。因此,当您使用GL_POLYGON时,驱动程序必须将其分解为三角形。在您的情况下,此过程可能会中断。我建议你自己创建三角形。在您的情况下,添加中心点并使用GL_TRIANGLE_FAN创建连续网格。

答案 1 :(得分:2)

对于五角星的具体情况,Aaron建议在中心使用带有基座顶点的三角形风扇,效果很好!注意,星形是凹多边形; GL_POLYGON只能渲染凸多边形。

凹多边形存在许多通用解决方案。一种是简单地将多边形细分为CPU上的三角形;如果您正在使用GLU,可以使用 gluTessBeginPolygon 功能。如果您想避免在GLU库中链接,可以在网上找到它的来源并提取相关的部分。

红皮书还描述了一个很酷的技巧,可以使用模板缓冲区和普通的旧三角扇快速绘制凹多边形。模板技术真的很甜美,但它可能比你真正需要的更漂亮。

答案 2 :(得分:1)

在OpenGL中使用GL_POLYGON进行渲染需要点是共面的,并且生成的多边形是凸的。你描述的那颗恒星不会是凸的,因此是未定义的行为。