Saya telah terjebak pada cara pendekatan ini untuk sementara waktu, jadi setiap saran akan sangat dihargai!
Saya ingin memetakan tekstur dalam bentuk segitiga euclidean kanan bawah ke segitiga hiperbolik pada Disk Poincare.
Inilah teksturnya (segitiga kiri atas teksturnya transparan dan tidak digunakan). Anda mungkin mengenali ini sebagai bagian dari Batas Lingkaran Escher I
Maaf, lihat komentar karena saya tidak diizinkan memposting lebih dari dua tautan!
Dan inilah bentuk poligon saya (berpusat pada titik asal, yang berarti bahwa dua tepi adalah garis lurus, namun secara umum ketiga tepi akan menjadi busur lingkaran):
Pusat poligon adalah incentre dari segitiga euclidean yang dibentuk oleh verteksnya dan saya UV memetakan tekstur menggunakan incentre itu, membaginya menjadi jumlah wajah yang sama seperti yang dimiliki poligon dan memetakan setiap wajah ke wajah poligon yang sesuai. Namun hasilnya terlihat seperti ini:
Jika ada yang berpikir ini bisa dipecahkan dengan menggunakan pemetaan UV saya akan dengan senang hati memberikan beberapa contoh kode, namun saya mulai berpikir ini mungkin tidak mungkin dan saya harus menulis fungsi pemetaan saya sendiri.
ASK dengan beberapa perbaikan jawaban @ Nathan di bawah ini karena baris AB, AC, BC mungkin sebenarnya busur bukan garis.
Metode: pilih sisi terpanjang, katakan BC, lalu bagikan ini menjadi beberapa bagian. Bagi dua sisi yang lain menjadi jumlah bagian yang sama. Maka garis yang menghubungkan ini (DE dalam jawaban di bawah) harus benar-benar juga menjadi busur, bukan garis lurus. Bagi busur baru ini sesuai kebutuhan, tambahkan segitiga baru sebagai wajah lalu UV memetakan segitiga kanan bawah tekstur ke wajah-wajah baru ini.