共用方式為


鑲嵌多邊形

OpenGL 只能直接顯示簡單的凸面多邊形。 如果:

  • 邊緣只會交集於頂點。
  • 沒有重複的頂點。
  • 正好兩個邊緣在任何頂點相遇。

若要顯示簡單的非連續多邊形或包含孔的簡單多邊形,您必須先將多邊形三角化(將它們細分為凸面多邊形)。 這種細分稱為 鑲嵌。 GLU 提供執行鑲嵌的函式集合。 請注意,GLU 鑲嵌函式無法處理非簡單多邊形;沒有標準 OpenGL 方法可處理這類多邊形。

因為鑲嵌通常是必要的,而且可能相當棘手,本節會詳細說明 GLU 鑲嵌函式。 這些函式會接受輸入任意簡單的多邊形,其中可能包含孔,而且會傳回三角形、三角形網格和三角形風扇的一些組合。 如果您不想處理網格或風扇,您可以指定鑲嵌函式只傳回三角形。 不過,網格和風扇資訊可改善效能。 多邊形鑲嵌函式會三角化具有一個或多個輪廓的圓面多邊形。

使用多邊形鑲嵌

  1. 建立具有 gluNewTess的鑲嵌物件。

  2. 使用 gluTessCallBack 來定義您將用來處理鑲嵌器所產生的三角形的回呼函式。

  3. 使用 gluBeginPolygongluTessVertexgluNextContour,以及 gluEndPolygon,指定具有孔或圓面多邊形的多邊形要鑲嵌。

    多邊形描述完成時,鑲嵌設備會視需要叫用回呼函式。

    您可以使用 gluDeleteTess 來終結不需要的鑲嵌物件,

如需儲存鑲嵌數據的詳細資訊,請參閱使用回呼函式