Mengapa peta normal lebih didominasi biru daripada warna acak?
Saya kira vektor normal dari objek 3D dapat menunjuk ke segala arah, seperti:
(1.0, 0.1, 0.5), (0.1, -0.5, 0.3), (-0.51, 0.46, -1.0) ...
Mengapa peta normal lebih didominasi biru daripada warna acak?
Saya kira vektor normal dari objek 3D dapat menunjuk ke segala arah, seperti:
(1.0, 0.1, 0.5), (0.1, -0.5, 0.3), (-0.51, 0.46, -1.0) ...
Jawaban:
Ada dua jenis peta normal yang biasa digunakan dalam pengembangan game. Cara Anda berpikir mereka harus bekerja adalah cara satu jenis bekerja (model-space normal maps), tetapi sebagian besar game menggunakan tipe lain (tangen-space normal maps) yang mengapa Anda mengaitkan sebagian besar tekstur biru dengan peta normal.
Dengan peta normal ruang-model , setiap saluran mengkodekan nilai presisi normal menggunakan sistem koordinat yang sama dengan simpul model yang digunakan. Ini berarti bagian-bagian berbeda dari peta normal akan memiliki rona yang berbeda, tetapi piksel yang berdekatan biasanya memiliki warna yang sama. Contoh peta normal ruang model muncul di atas ( sumber ).
Peta normal bersinggungan-ruang biasanya biru muda. Jenis peta ini mendefinisikan normals dalam ruang koordinat yang unik untuk setiap posisi pixel pada permukaan mesh. Menggunakan vertex (interpolasi) normal sebagai sumbu Z, dan dua vektor ortogonal lainnya, yang disebut garis singgung dan bitangen, sebagai sumbu X dan Y. Pada dasarnya, Anda dapat menganggap normals di peta sebagai "offset" dari normal untuk piksel yang dihitung dengan menginterpolasi normals verteks. Vektor tangen dan bitangent juga diinterpolasi dari data vertex, dan menentukan arah mana pada mesh sesuai dengan "atas" dan "kiri" di peta normal. Gambar yang disediakan dalam pertanyaan memberikan contoh yang sangat baik tentang seperti apa peta normal tangen-space normal, jadi saya tidak akan memberikan contoh lain di sini.
Komponen-komponen dari suatu normal biasanya (no pun intended) berkisar dari [-1, 1]
. Tetapi komponen warna dalam rentang gambar dari [0, 1]
(atau [0, 255]
tetapi biasanya mereka dinormalisasi ke [0, 1]
). Jadi normalnya diskalakan dan diimbangi sedemikian rupa sehingga yang normal (0, 0, 1)
menjadi warnanya (0.5, 0.5, 1)
. Ini adalah warna biru muda yang Anda lihat di peta normal, dan ini menunjukkan tidak ada penyimpangan dari vertex interpolasi normal ketika menggunakan norman ruang singgung.
Alasan mengapa tangen-space normals lebih disukai daripada norma- space model adalah karena fakta bahwa mereka lebih mudah untuk dibuat, dan dapat digunakan untuk banyak jerat. Selain itu, jika digunakan dengan mesh animasi, normalnya ruang singgung selalu digunakan, karena normalnya terus berubah.
bitangent
dan binormal
benar.
Peta normal sebagian besar menunjuk keluar dari permukaan. Dengan asumsi Anda pergi dengan pemetaan biasa komponen Z dari vektor normal XYZ menjadi arah "kedalaman" dan pemetaan ke komponen B dari ruang warna RGB, Anda akan berakhir dengan sebagian besar vektor normal menjadi biru.
Jika teksturnya, katakanlah, merah, maka itu berarti bahwa peta normal adalah permukaan yang sebagian besar mengarah ke kanan. Anda dapat melihat fitur itu pada gambar sampel Anda karena ujung paling kanan tonjolan memiliki warna kemerahan.
Permukaan lengkap warna kemerahan tidak masuk akal. Itu akan menunjukkan permukaan yang sepenuhnya menghadap ke kanan. Itu hanya akan dimodelkan dengan geometri, bukan bagian dari peta normal.