Diberikan daftar indeks segitiga, bagaimana tepatnya seseorang dapat mengubah itu menjadi daftar indeks dengan kedekatan untuk shader geometri?
Perhatikan bahwa kita benar-benar berbicara tentang indeks di sini - ada simpul, tetapi kita akan fokus hanya pada indeks, karena kita dapat menggunakannya untuk mencocokkan duplikat simpul tanpa harus masuk ke perbandingan titik mengambang dan epsilon - yang karya memiliki sudah dilakukan.
Saya tahu bahwa untuk setiap segitiga yang diberikan dalam daftar, indeks {0, 1}, {1, 2} dan {2, 0} (atau {n, n + 1}, {n + 1, n + 2}, { n + 2, n} jika Anda suka) dari itu membentuk tepi itu; daftar indeks terbentuk dengan baik dan menghormati urutan belitan dengan benar.
Saya tahu bahwa untuk setiap tepi yang diberikan tersebut, kita dapat mencari seluruh daftar untuk segitiga lain yang menggunakan dua indeks tersebut, dan indeks ketiga dari segitiga itu adalah yang digunakan untuk melengkapi segitiga yang berdekatan untuk tepi itu.
Saya tahu bahwa dalam daftar adjacency setiap segitiga asli diwakili oleh 6 indeks, indeks asli masuk ke slot 0, 2, 4; indeks baru untuk menyelesaikan adjacency masuk ke slot 1, 3, 5. Indeks untuk menyelesaikan edge {0, 1} masuk ke slot 1, indeks untuk menyelesaikan edge {1, 2} masuk ke slot 3, indeks untuk menyelesaikan edge {2, 1} masuk ke slot 5.
Apa yang sudah saya coba?
Saya sudah mencoba memaksakannya, dan ya, itu akan berhasil, tapi saya mencari pendekatan yang lebih elegan.
Saya sudah mencoba pembuat daftar tepi Eric Lengyel, tetapi (1) tampaknya tidak menghormati urutan segitiga asli, (2) tampaknya tidak menghormati urutan berkelok-kelok, (3) sejelas lumpur ke mana harus pergi selanjutnya setelah Anda membuat daftar tepi, dan (4) Saya mencurigai kode sampel yang memiliki kesalahan mencolok seperti "triangleIndex" versus "faceIndex" - apakah penulis bahkan menyusun kode, apalagi menjalankannya ke verifikasi itu?
Jadi - ada saran atau petunjuk dari sini?