Ini adalah norma - 3: tipe peta normal

Bagian 1: apa peta normal dan bagaimana cara kerjanya

Bagian 2: bagaimana peta normal dipanggang

Seperti banyak hal lain di industri kami, peta normal telah berkembang selama bertahun-tahun, dan hari ini ada beberapa jenis yang dapat terlihat berbeda. Dalam artikel itu saya akan daftar yang saya ingat, tapi mungkin ada yang lain.

Peta normal ruang tangen (Peta normal ruang tangen ): jenis yang paling umum saat ini, peta normal; itulah yang kami bicarakan di artikel sebelumnya. Ini memodifikasi arah normals model berdasarkan pada arah normals dari verteksnya (yaitu, kita perlu mengontrol normals dari verteks dari model lowpoly).

gambar

Peta normal ruang singgung Mikk (peta normal ruang singgung Mikk). Tidak semua editor 3D menghitung rata-rata vertex normals sama. Ini mengarah pada kenyataan bahwa tampilan peta normal berbeda di mesin yang berbeda, jadi kita perlu memanggang peta normal menggunakan metode yang sama dengan yang digunakan program rendering (ini disebut "menggunakan alur kerja yang disinkronkan ( alur kerja yang disinkronkan )")

Mikk mengusulkan cara untuk menghitung vertex normals, yang seharusnya bersifat universal sehingga semua program menghitungnya dengan cara yang sama. Dari sudut pandang alur kerja, ini berarti bahwa Anda dapat menggunakan model poli rendah dengan semua normalnya rata-rata (dengan satu kelompok pemulusan atau dengan menghaluskan semua wajah), memanggang peta normal dalam ruang singgung Mikk, dan itu akan terlihat persis sama seperti model poli tinggi, tanpa perlu menghilangkan kesalahan perataan atau memisahkan tepi yang keras di UV. Di masa depan saya akan menulis tutorial tentang cara melakukan ini.

Ingat bahwa ini masih merupakan peta normal dari ruang singgung, tetapi normal model dihitung secara universal dan model dapat digunakan dalam program yang berbeda.

gambar

Dua -channel tangen space normal map: ternyata menggunakan informasi yang tersimpan dalam dua dari tiga saluran peta normal, komputer dapat menghitung yang ketiga, mengurangi jejak memori dengan biaya meningkatkan jumlah perhitungan. Karena memori biasanya dalam kekurangan yang lebih besar, optimasi ini sering digunakan dan beberapa mesin mengeksekusinya secara otomatis (misalnya, Unreal Engine, ketika kita mengatur parameter "peta normal" untuk mengompres tekstur normal). Setelah membebaskan satu saluran dari peta normal, kita dapat mengurangi ukuran tekstur atau menggunakan saluran ini untuk kekasaran / kekasaran / opacity ...

Biasanya, saluran biru dari peta normal dihilangkan, sehingga tekstur seperti itu terlihat kuning. Karena optimasi ini kadang-kadang dilakukan secara otomatis oleh beberapa mesin, Anda dapat melihat tekstur seperti itu di proyek Anda.

gambar

Peta normals ruang dunia (World space normal map): kartu ini normal, alih-alih mengubah arah normals verteks, mengabaikannya sepenuhnya dan mengubah cara pantulan cahaya model lowpoly di ruang dunia (ruang dunia) (ketika dipanggang ia menganggap vertek normals itu sebagai peta). sejajar dengan sumbu dunia).

Kita dapat mengatakan bahwa peta normal ruang singgung memberi tahu model "Anda harus memantulkan cahaya ke kanan," dan peta normal ruang dunia - "Anda harus memantulkan cahaya ke timur."

gambar

Peta normal seperti itu lebih berwarna dan memiliki gradien yang lebih nyata; mereka digunakan karena dalam hal ini Anda tidak perlu memikirkan normals dari simpul lowpoly, tetapi mereka memiliki kelemahan - Anda tidak dapat memindahkan model karena akan terlihat aneh (kami mengatur wajah sehingga selalu memantulkan cahaya ke timur. Jika kami mengubahnya, maka ujungnya akan terus memantulkan cahaya ke timur.).

gambar

Saat ini, normalan ruang dunia jarang digunakan dalam permainan, tetapi masih dapat digunakan untuk membuat tekstur yang indah, misalnya, saluran biru menunjukkan bagaimana model harus memantulkan cahaya yang jatuh di atas model, sehingga Anda dapat menggunakannya untuk menambahkan pencahayaan warna pada tekstur.

Perlu juga diingat bahwa koordinat dunia dalam aplikasi yang berbeda diimplementasikan secara berbeda: di Unreal, 3D Studio Max, Blender, sumbu Z diarahkan ke atas, dan di Maya, Modo, dan Cinema4D, sumbu Y diarahkan. Ini berarti bahwa ketika mentransfer normal dunia antar aplikasi ruang bisa memburuk.

Ruang Obyek Peta Normal(Objek peta normal ruang): Ini adalah versi yang disempurnakan dari jenis peta sebelumnya, dan sangat mirip dengan itu. Idenya adalah bahwa ketika Anda memindahkan model di dunia, peta ruang dunia normalnya harus direorientasi relatif terhadap objek.

Ini dapat digambarkan sebagai "wajah ini harus memantulkan cahaya ke kanan model." Jika Anda memutar model di dunia, maka peta normal akan berubah sesuai dengan perubahan ini. Namun, ini tidak bekerja dengan jerat yang dapat dideformasi, karena dalam peta tersebut hanya pergerakan objek yang diperhitungkan. Karena alasan inilah peta normal ruang singgung paling umum saat ini.

Peta Normal Cenderung(Bent normal maps): pada intinya, mereka menggabungkan informasi AO dan peta normal, memiringkan arah normal sehingga cahaya cenderung memantulkan ke bagian-bagian model yang terkena cahaya.

Kartu tersebut digunakan untuk meningkatkan Ambient Oclussion dan untuk menghindari efek yang disebut "kebocoran cahaya," di mana model dapat memantulkan cahaya di bagian yang tidak dapat dijangkau. Secara pribadi, saya tidak pernah menggunakannya, tetapi saya akan mengeksplorasi kemampuan mereka jika saya menemukan "kebocoran cahaya" yang nyata. Informasi lebih lanjut dapat ditemukan di sini , di sini dan di sini .

Peta normal 16-bit(16 bit peta normal): kadang-kadang ketika ada gradien yang sangat halus pada peta normal, kita dapat melihat tampilan garis-garis. Garis-garis ini disebabkan oleh kurangnya warna untuk mewakili gradien yang halus, biasanya disebabkan oleh kompresi tekstur.

Tetapi dalam kasus permukaan yang besar dan halus, masalah seperti itu dapat muncul bahkan dengan tekstur yang tidak terkompresi. Dalam situasi ini, Anda dapat menggunakan peta normal 16-bit, biasanya dalam format file .tga, yang memiliki lebih banyak warna dan lebih besar daripada peta normal 8-bit.

Anda dapat mempelajari lebih lanjut tentang peta normal 16-bit di tutorial god sendiri - Gempa Bumi .

gambar

gambar

Harus juga diperhitungkan bahwa ada teknik lain untuk mengurangi konsekuensi dari masalah ini, misalnya, sepenuhnya menghilangkan peta normal (hanya geometri yang digunakan untuk mewakili permukaan halus ini), mentransformasikan lowpoly sehingga lebih mirip highpoly sehingga gradien kurang terlihat, atau penggunaan dithering.

Jadi tipe mana yang harus kita gunakan?

Dalam 90% kasus, solusi terbaik adalah peta normal ruang singgung Mikk. Tidak seperti opsi menggunakan peta normal ruang dunia atau objek, model akan dapat berubah bentuk, dan arah normals akan tetap benar.

Anda harus memanggang peta normal di ruang singgung yang sama seperti dalam program rendering. Ruang singgung yang paling umum adalah Mikk, jadi gunakanlah kapan pun memungkinkan.

Jika pixelasi muncul di peta normal Anda, pertimbangkan untuk menggunakan 16 peta normal atau salah satu solusi yang disebutkan di atas.

Sebenarnya, ini semua jenis peta normal yang bisa saya ingat. Jika Anda mengetahui jenis lain, maka beri tahu saya tentang mereka dan saya akan menambahkannya ke tutorial ini!

Terima kasih telah membaca, semoga artikel ini bermanfaat bagi Anda. Terima kasih kepada Shnya untuk komentar dan bantuannya.

Source: https://habr.com/ru/post/undefined/


All Articles