2014-06-13 208 views
0

我已經閱讀了glDrawElements的第一個參數是模式: http://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xmlglDrawElements繪製多邊形

符號常量GL_POINTS,GL_LINE_STRIP,GL_LINE_LOOP,GL_LINES,GL_LINE_STRIP_ADJACENCY,GL_LINES_ADJACENCY,GL_TRIANGLE_STRIP,GL_TRIANGLE_FAN,GL_TRIANGLES,GL_TRIANGLE_STRIP_ADJACENCY和GL_TRIANGLES_ADJACENCY被接受。

我沒有看到GL_POLYGON。這是否意味着我不能使用GL_POLYGON?如果我有10個指數?我需要將它轉換爲幾個多邊形,每個多邊形包含3個索引?如果這是真的,我該怎麼做?

回答

4

www.opengl.org上的GL3GL4級別手冊頁僅記錄了OpenGL的核心配置文件。 GL_POLYGON已棄用,並且在OpenGL 3.2中將規範分爲Core和兼容性配置文件時,它不屬於Core Profile。

如果您創建支持兼容性配置文件的上下文,則仍然可以使用GL_POLYGON。但如果你開始,我會建議你堅持核心配置文件的功能。如果您確實需要針對已棄用功能的文檔,則必須回到GL2 man pages

要繪製多邊形,GL_TRIANGLE_FAN是最簡單的替換。您可以使用與三角形風扇相同的一組頂點作爲GL_POLYGON,它會產生相同的結果。

+0

爲什麼'GL_POLYGON'已棄用?我用'GL_POLYGON'和'GL_TRIANGLE_FAN'檢查過,FPS保持不變。 – DarkStorm97

+1

「GL_POLYGON」和「GL_QUADS」都已被刪除。多邊形和四邊形打開了一堆問題(如果您提交了一個非平面多邊形?如果多邊形不是凸的?如何在多邊形頂點之間插值?如何剪切它們?)。只需要自己三角臉,並提交三角形。有這樣的庫使用。 – peppe

+0

這些庫的名稱是什麼? – DarkStorm97

0

順便說一下,您正在鏈接到GL3手冊頁。

由於GL_POLYGON在3.0中被棄用,在3.1中被刪除,所以你不會在那裏找到它。事實上,你會發現那些只支持GL 3.2的相關令牌(在Geometry Shaders中引入了相鄰原語);幸運的是實際上記錄在手冊頁本身,而不像GL_POLYGON已被棄用。

對於兼容性配置文件(您正在使用),您應該查看GL2手冊頁。 GL2手冊頁可以找到here