鑲嵌多邊形
OpenGL 只能直接顯示簡單的凸面多邊形。 如果:
- 邊緣只會與頂點交集。
- 沒有重複的頂點。
- 剛好兩個邊緣都符合任何頂點。
若要顯示簡單的非圓角多邊形或包含孔的簡單多邊形,您必須先將多邊形三角化, (將它們細分成凸面多邊形) 。 這類細分稱為 鑲嵌式。 GLU 提供執行鑲嵌的函式集合。 請注意,GLU 鑲嵌函式無法處理非簡單多邊形;沒有標準 OpenGL 方法可處理這類多邊形。
因為鑲嵌通常是必要的,而且可能相當棘手,所以本節會詳細說明 GLU 鑲嵌函式。 這些函式會採用可能包含漏洞的任意輸入簡單多邊形,並傳回一些三角形、三角形網格和三角形風扇的組合。 如果您不想處理網格或風扇,您可以指定鑲嵌函式只傳回三角形。 不過,網格和風扇資訊可改善效能。 多邊形鑲嵌函式會三角圓錐多邊形與一或多個分佈。
使用多邊形鑲嵌
使用 gluNewTess建立鑲嵌物件。
使用 gluTessCallBack 定義回呼函式,您將用來處理鑲嵌器所產生的三角形。
使用 gluBeginPolygon、 gluTessVertex、 gluNextContour和 gluEndPolygon,指定具有漏洞的多邊形或要鑲嵌的圓錐多邊形。
多邊形描述完成時,鑲嵌設備會視需要叫用您的回呼函式。
您可以使用 gluDeleteTess終結不必要的鑲嵌物件。
如需儲存鑲嵌資料的詳細資訊,請參閱 使用回呼函式。