2009-11-11 152 views

回答

4

現代顯卡不能繪製三維多邊形,它們只繪製三角形,所以當你使用GL_POLYGON時,驅動程序必須把它分解成三角形,這個過程可能會破壞你的情況。建議自己創建三角形,在你的情況下,添加一箇中心點並使用GL_TRIANGLE_FAN來創建一個連續的網格物體。

2

對於五點星的具體情況,Aaron建議使用帶有頂點的三角形扇注意一個星形是一個凹多邊形; GL_POLYGON只能渲染一個凸多邊形

一些通用解決方案exi sts爲凹多邊形。一種是簡單地將多邊形鑲嵌在CPU上的三角形上;如果您使用GLU,則可以使用gluTessBeginPolygon函數。如果你想避免鏈接到GLU庫,你可以在網上找到它的源代碼,並提取相關的部分。

這本紅皮書還介紹了一個很酷的技巧,可以使用模板緩衝區和普通的舊三角風扇快速繪製凹多邊形。模板技術真的很好,但它可能比你真正需要的更有趣。

1

在OpenGL中使用GL_POLYGON進行渲染需要點是共面的,並且生成的多邊形是凸面的。你所描述的恆星不會是凸的,因此沒有定義的行爲。