Bagikan melalui


Poligon Tessellating

OpenGL dapat langsung menampilkan hanya poligon cembung sederhana. Poligon sederhana jika:

  • Tepi hanya bersinggungan pada simpul.
  • Tidak ada simpul duplikat.
  • Tepat dua tepi bertemu di puncak mana pun.

Untuk menampilkan poligon nonkonveks sederhana atau poligon sederhana yang mengandung lubang, Anda harus terlebih dahulu triangulasi poligon (membaginya menjadi poligon cembar). Subdivisi tersebut disebut tessellation. GLU menyediakan kumpulan fungsi yang melakukan tessellation. Perhatikan bahwa fungsi tesselulasi GLU tidak dapat menangani poligon nonsimple; tidak ada metode OpenGL standar untuk menangani poligon tersebut.

Karena tesselulasi sering diperlukan dan bisa agak rumit, bagian ini menjelaskan fungsi tessellasi GLU secara rinci. Fungsi-fungsi ini mengambil sebagai poligon sederhana arbitrer input yang mungkin mencakup lubang, dan mereka mengembalikan beberapa kombinasi segitiga, jala segitiga, dan kipas segitiga. Jika Anda tidak ingin berurusan dengan jala atau penggemar, Anda dapat menentukan bahwa fungsi tessellation hanya mengembalikan segitiga. Namun, informasi jala dan kipas meningkatkan performa. Fungsi tesselulasi poligon triangulasi poligon cekuna dengan satu atau beberapa kontur.

Untuk menggunakan tesselulasi poligon

  1. Buat objek tessellation dengan gluNewTess.

  2. Gunakan gluTessCallBack untuk menentukan fungsi panggilan balik yang akan Anda gunakan untuk memproses segitiga yang dihasilkan oleh tessellator.

  3. Dengan gluBeginPolygon, gluTessVertex, gluNextContour, dan gluEndPolygon, tentukan poligon dengan lubang atau poligon cekuna yang akan dipesan.

    Ketika deskripsi poligon selesai, fasilitas tesselulasi memanggil fungsi panggilan balik Anda seperlunya.

    Anda dapat menghancurkan objek tessellation yang tidak diperlukan dengan gluDeleteTess.

Untuk informasi selengkapnya tentang menyimpan data tessellation, lihat Menggunakan Fungsi Panggilan Balik.