指定要鑲嵌的多邊形
您可以指定多邊形 (可能包含使用鑲嵌) 的漏洞:
對於不含漏洞的多邊形,規格程式與 OpenGL 完全相同:
- 從 gluBeginPolygon開始。
- 針對界限中的每個頂點呼叫 gluTessVertex 。
- 使用 對 gluEndPolygon 的通話結束多邊形。
如果多邊形是由多個分佈所組成,包括孔和孔內部的漏洞,您會在 gluNextContour前面分別指定一個分佈。 當您呼叫 gluEndPolygon時,它會向最終分佈的結尾發出訊號,並啟動鑲嵌。 您可以在第一個分佈之前省略 gluNextContour 的呼叫。 gluBeginPolygon函式會開始要鑲嵌的多邊形規格,並將鑲嵌物件tessobj與其產生關聯。 要使用的回呼函式是您系結至具有 gluTessCallback之鑲嵌物件的回呼函式。
gluTessVertex函式會指定要鑲嵌之多邊形中的頂點。 針對多邊形中的每個頂點呼叫 gluTessVertex 。 函式的 tessobj 參數是要使用的鑲嵌物件, v 包含三維頂點座標, 而資料 是傳送至與 GLU_VERTEX相關聯之回呼的任意指標。 資料 通常包含頂 點資料、紋理座標、色彩資訊,或應用程式可能需要的任何其他專案。
gluNextContour函式會在多個分佈構成要鑲嵌的多邊形界限時,標示下一個分佈的開頭。 函 式的類型參數 可以是 GLU_EXTERIOR、 GLU_INTERIOR、 GLU_CCW、 GLU_CW或 GLU_UNKNOWN。 這些常數只能做為鑲嵌的提示。 如果您正確,鑲嵌可能會更快。 如果您收到錯誤,則會忽略它們,且鑲嵌仍可運作。
針對具有孔的多邊形,其中一個分佈是外部分佈,而其他則為內部。 如果您未在gluBeginPolygon之後立即呼叫gluNextContour,則會假設第一個分佈的類型為GLU_EXTERIOR。
GLU_CW 和 GLU_CCW 表示順時針和逆時針方向多邊形。 選擇哪一個是順時針方向,而且在三個維度中是任意的,但在任何平面中,都有兩個不同的方向;一致 地使用GLU_CW 和 GLU_CCW 類型。 如果您不知道要使用哪 一個 ,請使用GLU_UNKNOWN。
gluEndPolygon函式表示多邊形規格的結尾。 它也表示鑲嵌可以開始使用鑲嵌物件 tessobj。