Asumsikan model 3D saya adalah piramida dengan basis persegi panjang dan saya menghitung empat sudut dasar dengan 1, 2, 3, 4 dan memberikan 5 ke titik teratas. Jika saya memproyeksikan piramida ini menjadi objek berbentuk bintang 2D, tidak akankah keempat titik terluar bintang dikaitkan dengan titik nomor 5 dalam model 3D?
uv-mapping
Abdul Al Hazred
sumber
sumber
Jawaban:
Cara itu biasanya didefinisikan, setiap simpul dalam mesh sesuai dengan koordinat UV, dan harus ada tepat satu koordinat tersebut per verteks, karena itulah cara penyaji mengambil texels. Jadi tidak mungkin untuk memiliki beberapa koordinat UV untuk satu titik kecuali jika Anda memiliki beberapa parameterisasi untuk mesh Anda.
Namun, jerat sering terpisah selama parameterisasi dan simpul yang sama dapat berakhir di beberapa lokasi, seperti pada contoh Anda. Paling sering, simpul-simpul itu hanya direplikasi saat memuat / merender sehingga pemetaan vertex-ke-uv tetap 1-ke-1 atau banyak-ke-1. Jadi renderer kemungkinan akan menafsirkan contoh Anda sebagai berikut (v5 dibagi menjadi 4):
sumber
Saya hanya perlu menambahkan sedikit ke jawaban ap_.
Tentu saja Anda dapat memiliki beberapa UV untuk satu titik, ini disebut lapisan UV. Ini adalah bagaimana mesin telah menampilkan peta cahaya dan peta Albedo pada saat yang sama, sejak munculnya peta cahaya. (Mesin gempa pada tahun 1996 mungkin?)
Anda dapat memiliki lebih banyak lapisan UV, jika Anda ingin melakukan multitexturing seperti untuk medan, peta cahaya, albedo besar, detail albedo, peta normal ...
Sayangnya, rasterizer tidak akan pernah memilih lapisan UV tergantung pada primitifnya. Penyaji seperti itu dapat dilakukan dengan buffer indeks tambahan (primitif ke buffer pemetaan lapisan UV) tetapi tidak ada kartu grafis dan tidak ada API grafis yang mendukung ini. Ini adalah pelanggaran yang tidak perlu untuk KISS.
Jadi, apa yang akan dilakukan seseorang dalam hal ini adalah memisahkan puncak piramida Anda menjadi 4 simpul berbeda selama waktu desain. Pokoknya alasan pertama untuk ini, bukan UV yang membuka tetapi sebagian besar definisi normal. Jika Anda ingin tepi yang tajam, Anda perlu memecahkan bayangan, oleh karena itu Anda harus memiliki normals yang berbeda, mereka juga, seperti UV, biasanya didefinisikan 1-1 dalam aliran vertex.
Saran terakhir, mungkin Anda benar-benar tidak ingin menggunakan bungkusan ini, saya lebih suka menyarankan ini:
Dengan cara ini Anda memiliki kontinuitas mulus untuk penyaringan dan terlihat di tepi dan di puncak.
sumber