Tekstur, atau apa yang perlu Anda ketahui untuk menjadi Artis Permukaan. Bagian 4. Model, normals, dan sapuan

Model, Normal, dan Sapu


Menurut pendapat saya yang sederhana, seorang seniman tekstur harus bertanggung jawab atas pengungkapannya. Bukan untuk pemindaian itu sendiri (itu harus dilakukan oleh seniman 3D atau bahkan spesialis UV individu pada umumnya), tetapi penataannya. Ini harus menentukan bagaimana pulau-pulau harus ditempatkan, bagaimana mereka harus berbalik, dan berapa banyak mereka dapat ditarik dalam situasi tertentu tergantung pada persyaratan.

Artis berdasarkan tekstur (dan kemudian, berdasarkan permukaan) yang harus menentukan skala (skala) dari pulau-pulau (lebih lanjut tentang itu nanti).

Pada bagian ini, kita melihat model, sweep, dan normals. Buat tekstur untuk model penuh pertama (walaupun sederhana) dan konfigurasikan di Unreal Engine 4.

Perhatian Diasumsikan bahwa pada titik ini Anda mengetahui peta yang normal, dan mengapa Anda membutuhkannya. Karena dalam tutorial ini kita akan sering membicarakannya.

Bagian 1. Pixel di sini .
Bagian 2. Topeng dan tekstur di sini .
Bagian 3. PBR dan Materi di sini .
Bagian 4. Model, normal dan pemindaian - Anda membacanya.
Bagian 5. Sistem material di sini .

Model dan PBR. Berlatih


Saya tidak akan berbicara tentang cara membuat model atau cara membersihkan / membangun kisi. Informasi ini dapat diperoleh dari banyak kursus, yang keduanya dalam domain publik dan berbayar. Tugas kami sekarang adalah untuk menganalisis batasan spesifik dalam struktur model untuk permainan dan solusi apa yang ada saat ini.

Tapi pertama-tama, kita akan tekstur model, dan untuk satu melihat keterbatasan pertama. Kami akan mengerjakan toko ini:

gambar

Untuk melakukan ini, kita perlu mengunduh mesh itu sendiri dan peta normal yang sudah disiapkan sebelumnya untuk itu (di bawah ini saya akan menjelaskan dengan jelas mengapa kita menyiapkannya). Tautkan di sini .

Saya juga ingin membuat alasnya dari kayu dan kakinya terbuat dari logam. Nah, sedikit kotoran menyebar. Karena itu, kita membutuhkan 2 bahan:

  1. pohon itu
  2. logam mesin.

Kami tidak akan mengeluarkan kotoran dalam bahan terpisah, tetapi menggunakan generator di Substance Painter dan membuat kotoran di dalam program.

Mari kita mulai latihan dan membuat proyek standar, tentukan bangku, tekstur dan jalankan:

gambar

Harap dicatat bahwa saat ini kita perlu menentukan Format Peta Normal - OpenGL. Saya sudah menulis di bagian terakhir bahwa peta normal dibaca secara berbeda oleh program yang berbeda. Dan kartu ini dihasilkan untuk program yang menggunakan OpenGL.

Kami telah memuat 9 tekstur + jala utama.

Sekarang kita tidak akan membuat layer dan folder, tapi mari kita lihat toko sedekat mungkin. Kami terutama tertarik pada tepi objek:

gambar

Sebagai contoh, saya menyoroti satu sisi bangku. Sekarang dia sesempurna mungkin. Artinya, kedua belah pihak bersatu dalam satu tulang rusuk dan menciptakan sudut yang sempurna. Tidak peduli berapa banyak kita membawa sendi ini lebih dekat, itu akan selalu sempurna. Pada kenyataannya, tidak ada sudut yang ideal, dan bahkan ujung pisau cukur akan bulat jika diperbesar dengan benar. Itu sebabnya tulang rusuk tidak terlihat sinematik sekarang. Model seperti itu terlihat sangat lemah, dan ketika kita melihatnya di dalam game, kita langsung merasakan semua kelemahan gambar visual, bahkan jika kita tidak melihat sudut ini secara langsung pada model.

Ini adalah batasan pertama dari model.

Sebelumnya, ketika sumber daya kartu video tidak memungkinkan pemrosesan jutaan simpul dalam satu bingkai, solusinya adalah dalam tekstur kartu normal. Mereka menunjukkan bagaimana cahaya harus mulai dipantulkan sehingga ada perasaan bahwa perbatasan ini memiliki pembulatan. Khusus untuk bangku ini, peta normal seperti ini terlihat seperti ini:

gambar

Bahkan hanya dengan melihat seperangkat parameter dalam bentuk peta ini, Anda dapat merasakan bagaimana peta normal akan memuluskan sudut-sudutnya.

Sekarang mari kita tunjukkan peta normal ini sebagai yang utama (yaitu, ia akan selalu melekat pada hasilnya, seperti lapisan terendah tanpa topeng). Untuk melakukan ini, kita perlu membuka pengaturan untuk tekstur utama objek dan menentukan tekstur kita dalam parameter peta normal:

gambar

Dan lihat hasilnya:

gambar

Ini adalah metode pertama yang paling terkenal dan sering digunakan untuk berurusan dengan tepi tajam - untuk memanggang chamfer di peta normal. Artinya, modelnya masih kaku, tetapi peta normal di tepinya mulai mendistorsi cahaya, yang menciptakan ilusi bevel lembut yang indah. Di Internet, Anda dapat menemukan banyak informasi tentang cara melakukan ini. Untuk objek sederhana seperti bangku ini, Anda tidak dapat membuat model poly-tinggi (dan tidak membuat sesuai dengan itu), tetapi menghasilkan peta normal dengan chamfers dalam program. Misalnya, program Modo dapat melakukan ini. Bangku kami memiliki peta normal yang dihasilkan di Modo.

Tapi kami menghilangkan topik membuat kue bevel dan terus mengolah bangku.

Jika normalnya cekung
Jika chamfer Anda tidak semulus milik saya, tetapi ilusi palung muncul, maka saat membuat proyek di Substance Painter Anda lupa mengubah format tampilan normal dari DirectX ke OpenGL.

Sekarang buat 2 folder untuk layer, buat dan transfer 1 layer untuk masing-masing dan masukkan semua peta tekstur ke setiap layer. Jangan lupa tentang penamaan, jadi Anda tidak bingung:

gambar

Sekarang hierarki lapisan tidak penting bagi kita, karena bahan-bahan ini (logam dan kayu) tidak akan bersinggungan satu sama lain - kita tidak akan memiliki situasi di mana logam mulai muncul melalui pohon dan sebaliknya. Tapi kita masih membutuhkan topeng, jadi sekarang kita perlu membatasi visibilitas layer di pulau yang berbeda, jadi sekarang tambahkan topeng hitam ke kedua folder:

gambar

Dan sekarang kami akan menunjukkan pulau pindai mana yang harus ditutup putih dan mana yang harus hitam. Untuk melakukan ini, pilih topeng dan beralih ke mode pemilihan pulau:

gambar

Klik pada model di bangku utama (jika Anda memilih topeng pohon) dan dapatkan hasil berikut:

gambar

Seperti yang dapat Anda lihat di tangkapan layar, topeng telah diperbarui, dan sekarang memiliki strip putih besar, yang terletak di pulau itu. Jadi kami mengecat seluruh bangku di sekitar:

gambar

Bahan pohon itu sendiri bukan yang paling berhasil, tetapi tujuan kami sekarang bukan untuk melakukan segala hal seindah mungkin, tetapi untuk memahami prinsip-prinsip kerja.

Kami akan melakukan hal yang sama dengan topeng untuk logam, mencatat zona yang terlihat dengan pulau-pulau kaki. Pilih topeng logam dan tentukan bagian yang diperlukan dari objek:

gambar

Juga penting untuk masuk ke tempat-tempat yang sulit dijangkau di persimpangan dan menandai pulau-pulau yang kita butuhkan di sana untuk kayu dan logam:

gambar

Jika Anda teliti dengan teliti, Anda akan melihat keterbatasan model yang kedua .
Pemindaian tidak dilakukan dengan benar, dan pola baja antara sisi-sisi kaki tidak konsisten - teksturnya diarahkan ke arah yang berbeda, yang secara visual mencolok (arahnya ditandai dengan panah):

gambar

Ini justru merupakan batasan, yang dapat diatasi dengan meratakan pulau-pulau dan merentangkannya. Sekarang pulau tempat panah bawah digambar terlihat seperti ini (disorot dengan warna oranye):

gambar

Untuk memperbaiki masalah ini, pulau perlu diluruskan dalam satu baris:

gambar

Kemudian kita akan mengatasi batasan ini, tetapi kita akan memiliki yang lain - tarikan:

gambar

Tarikan tidak mengerikan jika tidak terlalu terlihat, atau tekstur pada mereka tidak memberikannya. Tetapi Anda harus berhati-hati dengan mereka, dan kadang-kadang Anda harus menerima kenyataan bahwa mungkin ada ketidakkonsistenan dalam materi.

Secara umum, masalah jahitan pada objek tetap belum terpecahkan sampai akhir. Di masa mendatang, kami akan mempertimbangkan opsi lain untuk menghilangkan jahitan dan bahkan mencoba metode yang sangat keren di bagian selanjutnya.

Perkelahian di bangku

Seperti yang kita tahu, cepat atau lambat, cat, atau potongan-potongan material, mulai pecah pada semua wajah dari semua hal. Sejumlah besar goresan dan keripik muncul di sana:

gambar

Karena itu, mari kita membuat topeng yang memungkinkan kita untuk menampilkan pertunjukkan, goresan, dan keripik yang sama di bawahnya di masa depan.

Untuk melakukan ini, buka pengaturan tekstur utama (di mana kami menunjukkan peta normal), pilih Bake Mesh Maps di sana .

Di jendela yang muncul, hapus semua tanda centang yang tidak perlu, hanya menyisakan Lengkungan dan memanggangnya dengan mengklik Bake [nama tambahan] Peta Mesh :

gambar

Ketika pembuatan tekstur selesai, itu akan tersedia di rak di bawah tag Proyek:

gambar

Dan juga tekstur ini akan secara otomatis terhubung sebagai parameter Kelengkungan utama dalam pengaturan tekstur. Kami menghapusnya dari sana:

gambar

Jika kita membuat layer baru di bagian atas hierarki dan mengatur tekstur yang dihasilkan sebagai parameter Warna Dasar, kita akan melihat hasil berikut:

gambar

Sekarang hapus layer ini, karena kami hanya membutuhkannya untuk memahami.

Selanjutnya, buat folder, sebut saja Folder Dirt dan letakkan di folder tree OVER layer tree. Di folder ini, buat layer yang disebut LowLayer_Dirt, dan pada folder itu sendiri buat topeng hitam sehingga layer tidak tumpang tindih hasilnya:

gambar

Kami menunjukkan bahwa topeng lumpur harus terdiri dari efek Isi untuk menambahkan tekstur yang kami buat (lengkungan) dan efek "Level" tambahan.

Mengapa kita membutuhkan efek Level sekarang? Anda mungkin memperhatikan bahwa masker wajah terlalu terang? Sekarang kita perlu memotong warna sedemikian rupa sehingga meninggalkan bintik-bintik putih terang di tepi, dan melakukan sisanya benar-benar hitam.

Hasil akhirnya harus sebagai berikut:

gambar

Dengan cara ini, kami menciptakan " batas " untuk kotoran. Sekarang kita perlu membatasi kotoran itu sendiri. Untuk melakukan ini, terapkan topeng hitam ke lapisan LowLayer_Dirt itu sendiri. Setelah itu, tambahkan efek Fill, dan di dalamnya tentukan mask Dirt4, yang disembunyikan di bawah tag Prosedural:

gambar

Di atas dalam tangkapan layar, parameter tambahan dari topeng Dirt 4. dilingkari.Faktanya adalah bahwa ini bukan tekstur dalam format yang digunakan untuk menyajikannya. Ini adalah pembangkit angka acak menurut aturan tertentu. Dengan kata lain, tekstur prosedural di mana piksel memiliki intensitas yang dihasilkan. Anda dapat bermain-main dengan parameter, misalnya, memutar Saldo dan Kontras untuk mencapai hasil yang diinginkan. Sekarang ubah parameter Tinggi di lapisan LowLayer_Dirt ke -0,35 dan lihat hasilnya:

gambar

Saya ulangi Sekarang tujuan kami bukan pada lukisan kualitatif yang sempurna dari bangku, tetapi bekerja dengan dasar-dasar dan pelatihan untuk bekerja dengan topeng.

Sekarang pekerjaan rumah

Secara umum, kami sekarang telah memeriksa cara menerapkan masker dengan cepat untuk bahan tertentu yang tidak saling bersinggungan. Seperti yang Anda duga, untuk menerapkan pernis ke pohon - kita perlu membuat layer di folder dengan pohon. Tetapi sekarang kita tidak akan melakukan ini, dan tugas itu sendiri tetap untuk pekerjaan rumah:

  • pernis sebatang pohon
  • membuat goresan pada pernis (goresan yang terlihat hanya pada sudut, karena mereka mendorong pernis, tetapi tidak merusak kayu)
  • buat goresan di bawah pernis

Lemparkan kerajinan Anda ke dalam komentar - yang menarik =)

Total

Kami telah membahas cara membuat model tekstur menggunakan topeng. Cara mengoleskan kotoran, keripik, dan goresan.

Agar di masa depan Anda memiliki ide sederhana tentang bagaimana semuanya bekerja, ingat aturan - satu bahan - satu folder untuk bekerja dengannya. Jadi Anda bisa lebih mengontrol topeng dan lapisan Anda. Misalnya, dengan menempatkan lapisan kotoran di folder dengan materi, Anda masih mengontrol pada tingkat topeng folder visibilitas total bahan ini, dan sekarang juga kotoran di atasnya (atau lapisan di bawahnya). Misalnya, pada kenyataannya, tekstur lain mungkin terletak di bawah tekstur (bahan) - plastik dapat bersembunyi di bawah lapisan logam. Dalam hal ini, logam adalah lapisan utama, dan plastik adalah lapisan tambahan di bawah logam (walaupun dalam tutorial di atas kami menempatkan lapisan dengan chip dan ditempatkan di atas pohon, sebenarnya itu adalah lapisan yang lebih rendah dalam hierarki. Dengan kata lain, ini adalah kesalahan).

Lapisan bahan, hierarki mereka harus dihitung sebelum Anda mulai membuat tekstur. Ini penting, karena tata letak lapisan yang salah pada akhirnya dapat mengarah pada fakta bahwa Anda harus memulai dari awal lagi dan menghabiskan berjam-jam memeriksa mengapa tekstur Anda hanya menampilkan lapisan logam.

Secara umum, pada ini kita menutup topik besar tentang bagaimana tekstur objek untuk game dalam kerangka PBR. Yang lainnya adalah teknologi. Tugas saya adalah untuk memberi tahu esensi, dasar dari semua ini, sehingga Anda tidak memiliki pertanyaan lebih lanjut seperti "Apa perbedaan antara kartu Roughness dan peta Metalik dan Normal?" (Saya akan langsung menjawab tanpa apa-apa), dan muncul pertanyaan - β€œBagaimana ini bisa diperbaiki? Bagaimana melakukan lebih baik dan lebih efisien? "

Kami telah melihat beberapa keterbatasan yang memiliki solusi.

  • Chamfering.
  • Pembatasan lokasi pulau.

Kedua batasan dapat dielakkan dengan satu atau lain cara. Dalam kasus pertama, kita membuat peta normal yang mensimulasikan tikungan, dalam kasus kedua kita menggambar pulau dan mengorbankan detail (membuat tarikan) demi gambaran besar.

Dalam kasus kedua, Anda juga perlu mengingat arah pulau-pulau - mereka harus dikerahkan secara terkoordinasi, seperti arah pola dalam bahan. Kalau tidak, kesulitan yang dijelaskan di atas akan muncul.

Pindai


Sisihkan untuk sementara waktu sebagai Pelukis Zat. Jangan tutup proyek, nanti akan berguna ketika kita mengekspor tekstur ke Unreal Engine 4.

Dalam bagian tutor ini, kita akan memeriksa sapuan benda, kepadatan pulau, dan akhirnya mempelajari fenomena kepadatan texel.
Dan mulai dengan texel.

Texel

Texel adalah pixel tekstur (ba-dum-s).

Kepadatan texel dan pulau-pulau

Agar tidak membingungkan piksel monitor (elemen fisik dari dunia nyata, yang selalu merupakan ukuran tetap) dengan piksel tekstur (kotak yang divisualisasikan yang dapat mengubah ukurannya pada layar monitor dan umumnya menjadi terdistorsi secara umum), piksel tekstur disebut texel (Tekstur dan piksel).

Ada artikel yang cukup lengkap tentang hal ini di sini . Dan terjemahannya ada di sini .

Namun, kita akan sekali lagi mempertimbangkan fenomena ini, karena di masa depan, jika kita tidak menyadari keseluruhan gagasan tentang texels, maka akan sulit bagi kita untuk bekerja lebih jauh. Dan terlebih lagi akan sulit untuk menjadi seniman permukaan.

Mulai saat ini, kita mulai berbicara dengan benar - sebuah pixel dan sebuah texel. Pixel adalah elemen monitor. Texel adalah elemen tekstur.

Jadi, mari kita ulangi masa lalu, texel adalah unit imajiner tampilan informasi. Itu hanya ada dalam angka (array angka dari berbagai saluran), tetapi untuk memudahkan kita bekerja dengan parameter render, tekstur diperkenalkan sebagai pengganti visual untuk array angka. Saya pikir tidak ada yang akan senang melukis pesawat ruang angkasa dengan angka saja, mengingat gagasan bahwa texel di baris 8 dan di kolom 453 harus 1 kurang dari texel di baris 284 dan kolom 112. Lebih mudah untuk menyodok kuas di Photoshop.
Render (sistem visualisasi) membaca angka-angka ini dan menampilkannya sebagai kuadrat (texels). Menampilkan texel dalam bentuk kotak adalah masalah bersyarat. Dan itu tergantung terutama pada kepadatan dan ketegangan model pulau-pulau menyapu.

Kami akan berbicara tentang kepadatan pulau-pulau menyapu sedikit nanti, tapi sekarang kita akan berurusan dengan ketegangan pulau.

Bayangkan sepotong kain (jika sulit dibayangkan, ambil sepotong kain yang bisa diregangkan). Dalam keadaan tenang, pola (atau pola material) di atasnya tetap tidak berubah, seperti yang dimaksudkan pabrikan. Tetapi jika kita mulai meregangkan kain, maka polanya akan mulai meregang juga. Efek yang sama terjadi ketika kita meregangkan (atau mengompres) pulau pemindaian model:

gambar

Pemindaian sisi kiri dan kanan terletak seperti ini:

gambar

Contoh menunjukkan bahwa, setelah mengompresi representasi (pulau) dari sisi kiri, kami merentangkan texels sehingga sekarang ditampilkan di sisi kiri kubus dalam bentuk batang persegi panjang memanjang. Artinya, sebuah texel pada suatu objek tergantung pada bagaimana objek itu dibuka. Seringkali dalam editor 3D objek ada peluang untuk melacak seberapa banyak pulau pindai dikompresi atau diregangkan. Misalnya, dalam Autodesk Maya, tampilannya seperti ini:

gambar

Di mana merah menunjukkan kompresi kuat, dan peregangan biru.

Kepadatan pulau

Pulau menyapu harus diluruskan dengan benar tanpa membuat screed. Namun pulau-pulau tersebut harus ditingkatkan skalanya di antara mereka sendiri. Artinya, area yang ditempati oleh pulau harus sesuai dengan area pulau lain. Jika tidak, ternyata satu pulau dengan luas nyata 20 sq. Cm akan menempati 20% dari ruang tekstur, dan pulau dengan luas nyata 100 sq. Cm akan menempati 5% dari ruang tekstur. Dan dari sini kita mendapatkan ketidaksepakatan dalam menampilkan jumlah texels di pulau:

gambar

Pulau di sisi kanan kubus sangat kecil dan hanya dapat menampilkan 25 texels, di mana ia berada. Dalam hal ini, render meningkatkan texels sesuai dengan area pulau, dan kami melihat kotak besar.

Di sebelah kiri, pulau ini sangat besar - menutupi sebagian besar ruang tekstur dan mampu menampung lebih banyak texels, yang terjadi di layar. Sisi atas memiliki ukuran rata-rata.

Artinya, agar model bertekstur dengan benar, Anda perlu menyelaraskan area semua pulau sehingga mereka sama dalam hubungannya satu sama lain:

gambar

Di atas adalah gambar dari sebuah artikel oleh habrochanin Osmandos . Artikelnya ada di sini . Bacaan yang disarankan.

Ukuran Tekstur

Jika kita kembali ke kubus kita, kita akan melihat bahwa texels di atasnya (kotak hitam dan putih, dalam contoh ini) sangat besar (sekali lagi, kondisional. Bayangkan bahwa dalam tekstur saat ini kotak adalah texels). Bahkan jika kita menyelaraskan semua pulau, kita masih melihat kotak hitam dan putih di sisi kubus:

gambar

Ini memberitahu kita bahwa ukuran tekstur saat ini tidak berkualitas cukup tinggi, jadi kita melihat texels. Tapi benarkah begitu?

Bayangkan bahwa tekstur saat ini (biasanya disebut "Pemeriksa" - tekstur untuk memeriksa pengaturan pulau yang benar) memiliki dimensi 63 x 63 texels.Dan sekarang kita melihat texel dengan ini, karena objek terletak sangat dekat dengan kamera kita sehingga ukuran satu texel menempati area 30x30 piksel monitor (dengan syarat).

Dan jika kita memindahkan kubus dari kamera?

gambar

Cobalah untuk melihat texels pada kubus ini sekarang?

Sekarang 1 texel memiliki ukuran yang sama dengan 1 pixel (tapi ini tidak akurat). Dan ukuran tekstur seperti itu sangat ideal, karena memungkinkan Anda untuk menampilkan semua texels Anda, dan juga tidak menampilkan sesuatu yang berlebihan dan tidak menyembunyikan apa pun yang berlebihan. Ini adalah ukuran ideal untuk jarak seperti itu.
Artinya, ukuran tekstur sangat tergantung pada area yang ditempati oleh model sweep dan pada jarak objek ke kamera. Jika objek berada pada jarak yang cukup jauh dari kita, tidak ada gunanya memberikan tekstur 8k pada kuku. Bahkan jika Anda membuat tekstur untuk film tersebut, tidak seorang pun akan melihat strip putih pada kuku seorang gadis yang tangannya mengambil 3% dari area layar.

Total

Penting untuk memahami skala model dan di mana mereka akan ditempatkan relatif terhadap kamera untuk ukuran tekstur yang benar. Sangat sering saya melihat permainan dari pengembang indie yang mengabaikan aturan sederhana ini, dan sebagai hasilnya, teksturnya tidak berkualitas terbaik.

Jangan lupa untuk menyelaraskan pulau relatif satu sama lain - ini penting dan sangat mempengaruhi persepsi. Jika Anda membuka, misalnya, permainan Fallout 4 dan memulai dialog dengan beberapa NPS, Anda akan melihat bahwa kualitas tekstur pada pakaian karakter meninggalkan banyak yang diinginkan, dan wajah memiliki ukuran tekstur maksimum:

gambar

Perlu diingat bahwa dalam permainan sering kali secara khusus meremehkan ukuran tekstur dalam. untuk kinerja. Dan siapa yang melihat pakaian ketika seorang tokoh memiliki wajah yang menarik dengan bekas luka?

Ukuran besar tekstur menempati ruang yang besar (dalam memori, maksud saya). Oleh karena itu, banyak pengembang membuat keputusan yang sulit - apa yang harus dipotong, dan apa yang akan pergi, jika saja gim tidak melambat pada PC / konsol / telepon Anda. Namun, kami akan kembali ke masalah ini dan mempertimbangkan teknik terbaru yang memungkinkan kami untuk menghindari masalah seperti itu.

Kue tekstur


Apa itu baking tekstur?

Memanggang tekstur adalah ketika sebuah paket untuk membuat tekstur mulai menghitung hasil akhir dan menyimpannya dalam file terpisah, dengan bantuan yang modelnya kemudian dicat di mesin permainan.

Secara kasar, dalam Substance Painter kita menerapkan lapisan demi lapisan melalui topeng dan trik lain untuk mencapai hasil akhir. Kami sedang mengerjakan bagaimana model akhir akan terlihat, mencampur berbagai pilihan bahan. Tetapi, jika Anda perhatikan - semakin sulit kombinasi lapisan, masker dan material Anda, semakin sulit untuk memproses perubahan Anda pada program. Faktanya adalah bahwa Pelukis Substance (program texturing lainnya) memeriksa setiap perubahan Anda dan menghitung dalam waktu nyata SEMUA lapisan dan saluran yang Anda buat (dan saya ingatkan Anda bahwa Anda juga dapat menambahkan saluran Anda sendiri ke lapisan untuk apa saja-apa saja) ) yang jatuh pada texel.

Dan ketika kami puas dengan hasilnya dan siap mengunggahnya ke mesin game, kami meminta Substance Painter untuk membuat perhitungan terakhir dan membuat tekstur dengan parameter untuk warna setiap piksel, dan 3 tekstur tambahan dengan parameter Metallic, Roughness, dan Normal Map. Ini akan memungkinkan kami untuk tidak mengunggah berton-ton topeng dan bahan tambahan ke dalam gim, tidak memaksa mesin untuk menghitung ulang semuanya, tetapi sediakan saja dengan hasil yang selesai, yang akan dikonversi menjadi tekstur untuk model.

Secara umum, kami menemukan tekstur kue. Namun, kita perlu melihat bagaimana parameter diturunkan ke tekstur, sehingga kita belajar bagaimana kita dapat mengontrol saluran tekstur mana data akan pergi. Ini penting karena hanya ada 4 saluran dalam standar gambar. Dan kita harus dapat memilih saluran mana parameter akan pergi, sehingga kita dapat dengan cepat menghubungkannya nanti.

Sekarang kami kembali ke Substance Painter, di proyek kami, dan mulai membongkar tekstur. Untuk melakukan ini, buka jendela untuk mengekspor tekstur (File - Ekspor tekstur):

gambar

Ini adalah tampilannya dari awal. Jika kami memperluas set tekstur, kami akan melihat daftar file yang akan diunggah sebagai ekspor:

gambar

Seperti yang Anda lihat, ada 4 file tekstur yang harus diekspor, dibandingkan dengan 9 file yang kami unduh.

Tetapi mereka tidak menarik bagi kami, karena ini adalah pengaturan standar, tetapi kami membutuhkan pengaturan kami sendiri (atau sesuai dengan standar studio tempat Anda bekerja). Karena itu, kita akan pergi ke jendela Konfigurasi :

gambar

Pertama, buat preset baru dan pilih agar tidak merobohkan yang sudah selesai:

gambar

Sekarang perhatikan panel di sebelah kanan:

gambar

Input Maps adalah daftar saluran yang kami gunakan. Sebagian besar dari mereka memiliki nama, karena digunakan untuk PBR untuk tujuan tertentu. Ada 8 saluran (0 hingga 7) yang dapat diedit, tetapi Substance Painter tidak tahu mengapa Anda membutuhkannya, sehingga saluran tersebut memiliki nama standar User0 - User7.

Peta yang Dikonversi adalah daftar tekstur yang bergantung pada jenis render. Misalnya, Peta Normal tergantung pada mesin. Dan kita perlu tahu API mana yang digunakan mesin - DirectX atau OpenGL, untuk memilih peta normal yang benar. Karenanya, Substance Painter memilih kartu-kartu ini dalam kategori yang terpisah, karena hasil akhirnya akan tergantung pada apa yang Anda pilih.

Mesh Maps - tekstur yang Anda muat dengan objek atau dihasilkan saat bekerja di atasnya. Kami mengunduh 9 tekstur. 8 dari mereka milik lapisan (bahan), dan peta normal ke-9 untuk bevel sudah berhubungan langsung dengan objek. Selain peta normal, kami juga membuat peta Kurvatur untuk overlay chip di atasnya. Kartu-kartu ini berhubungan khusus dengan objek dan tidak dapat digunakan sebagai dasar untuk bahan, oleh karena itu mereka dimasukkan ke dalam daftar terpisah.

Sekarang perhatikan panel pembuatan tekstur:

gambar

Ini adalah tombol, dengan mengklik di mana Anda membuat 1 file tekstur (lebih tepatnya, mempersiapkan semuanya untuk pembuatannya).

Abu - abu - menciptakan tekstur dengan satu saluran. Dalam saluran ini kita dapat menempatkan salah satu pengaturan kita - Kekasaran, logam, specular, memancarkan. Semua pengaturan itu berfungsi dalam satu saluran.

RGB - menciptakan tekstur dengan 3 saluran yang terhubung. Artinya, ini dimaksudkan untuk parameter seperti warna (BaseColor), peta normal. Artinya, untuk semua parameter yang menggunakan 3 saluran untuk sepenuhnya mewujudkan diri.

R + G + B - Membuat tekstur dengan 3 saluran yang tidak terhubung. Artinya, kami memiliki tekstur dengan tiga saluran Grey. Kita dapat menentukan parameter dengan 1 saluran di setiap saluran tekstur secara terpisah. Ini sering digunakan untuk ORM - (Occlusion-Roughness-Metallic). Yaitu, Ambient Occlusion disimpan di saluran pertama, Roughness disimpan di saluran kedua, dan Metallic di saluran ketiga.

RGB + A - Anda dapat menebaknya - 3 saluran terhubung dan 1 tidak terhubung.

R + G + B + A - empat saluran yang tidak terhubung.

Sekarang, mengetahui hal ini, pikirkan tentang berapa banyak file yang kita butuhkan untuk mengunggah semua informasi tentang bagaimana seharusnya tekstur akhir untuk objek.

Itu benar, setidaknya 3 tekstur:

  1. RGB - BaseColor
  2. R + G + B - ORM
  3. RGB - Peta Normal

Klik pada tekstur yang Anda butuhkan satu per satu, dan Anda mendapatkan daftar berikut:

gambar

Jangan lupa memberi nama tekstur dengan benar, jika tidak kita tidak akan tahu di mana dan bagaimana.

Sekarang kita perlu menunjukkan parameter mana di saluran yang akan disimpan. Untuk melakukan ini, cukup transfer parameter dari Input Maps ke saluran yang diinginkan. Peta normal perlu dimigrasikan ke DirectX, karena UE4 menggunakan format membaca normal ini.

Hasilnya, kami mendapatkan perangkat berikut:

gambar

Sekarang kembali ke Ekspor. Di sana kami adalah:

  • Kami menunjukkan jalur tempat menyimpan.
  • Pilih preset yang kami buat di opsi Config.
  • Pilih jenis tekstur - Targa.
  • Klik Ekspor.

gambar

Dan voila - tekstur ekspor sukses. Buka tekstur BC (BaseColor) di Photoshop dan lihatlah:

gambar

Apakah Anda ingat bagaimana kami membuat 2 bahan berbeda di berbagai lapisan? Substance Painter melipat semua layer, menghitung hasil versi final dari tekstur yang akan menutupi objek, dan "memanggang" semua texels persis seperti yang Anda sembunyikan. Dia melakukan hal yang sama dengan Normal Map, Roughness, dan Metallic.

Jika kita membuka peta ORM di Photoshop, pergi ke mode tampilan saluran dan pilih yang terakhir (biru), maka kita akan melihat peta Logam yang dipanggang:

gambar

Dari peta ini Anda bisa membayangkan di mana pulau-pulau harusnya terbuat dari logam, dan di mana - bukan dari logam.

Total

Kami belajar cara membuat tekstur siap pakai untuk mesin game.

Itu penting. Sekarang kita telah belajar cara memanggang tekstur, melakukan seluruh perhitungan untuk menciptakan tekstur ini di Substance Painter. Yaitu, kami melakukan segalanya untuk mendapatkan tekstur siap pakai, yang sekarang dapat kami gunakan di mesin yang berbeda (dengan peringatan pada pemrosesan beberapa parameter PBR). Kelemahan dari pendekatan ini - jika kita perlu mengubah sesuatu secara radikal - kita harus kembali ke program dan mengulangi teksturnya.

Untuk menghitung cara menampilkan warna dan cahaya dengan benar dari texel - kartu video perlu membuat perhitungan untuk setiap texel. Dan itu tidak akan tergantung pada berapa banyak piksel yang Anda miliki di monitor. Ini akan tergantung pada berapa banyak texels yang digunakan dalam pembentukan tekstur (kami menggunakan pengaturan standar dalam staker, yang berarti kami menggunakan 1024 * 1024 texels). Yaitu, untuk menampilkan tekstur dengan benar, pelukis perlu menghitung setiap piksel, dan memperhitungkan semua lapisan yang Anda buat di dalamnya. Ini adalah tugas yang memakan waktu, jadi sebelumnya (dan sekarang) tekstur PBR dibuat terutama dalam program texturing.

Mesin tidak nyata 4


Dan terakhir, bongkar objek kami di UE4 dan lihat hasilnya. Saya tidak akan menjelaskan cara membuka UE4, cara membuat proyek, cara menginstalnya sama sekali, dan tombol apa yang harus ditekan di sana. Ada kursus yang sangat bagus dari Flakky untuk ini . Semua program berada di situsnya uengine.ru .

Sekarang kami hanya akan mempertimbangkan impor dari toko kami dan tekstur yang dihasilkan, penciptaan shader primitif dan untuk meringkas.

Pertama, buka proyek dan buat folder "Bench" di dalamnya, di mana kita akan meletakkan semua tekstur dan objek kita. Untuk mengimpor semua tekstur - cukup transfer dari browser ke proyek. Mereka diimpor tanpa masalah dan tidak akan meminta pengaturan tambahan. Sedangkan untuk objek, ketika mengimpornya, Unreal Engine akan meminta Anda untuk menentukan beberapa pengaturan. Secara umum, tidak ada yang perlu diubah kecuali 2 parameter. Mereka harus dinonaktifkan:

gambar

Parameter ini bertanggung jawab untuk mengimpor tekstur, dan kami menyimpannya secara terpisah.

Akibatnya, di folder kami ada 3 tekstur dan 1 objek:

gambar

Sekarang di ruang kosong di browser proyek, klik RMB dan pilih Bahan:

gambar

Beri nama M_Bench.

Buka dan seret semua tekstur kita ke dalamnya. Kami mendapatkan gambar berikut:

gambar

Ini adalah wadah Node yang memungkinkan Anda untuk memvisualisasikan pengaturan sehingga bahkan lebih nyaman bagi pemula untuk bekerja dengannya (terima kasih banyak atas keberhasilan implementasi node Epic Games. Tanpa sistem dan node Blueprints khususnya, banyak yang akan membakar kepala dari angka dan kode). Pin putih (output dan input) pada tekstur (node ​​di sebelah kiri) menunjukkan bahwa tiga saluran diumpankan sekaligus. Tetapi merah, hijau dan biru - masing-masing saluran secara terpisah. Yang keabu-abuan terakhir adalah saluran alfa, tetapi tidak di tekstur kami, jadi kami tidak akan menggunakan pin ini. Di sebelah kanan adalah simpul besar yang mengambil parameter, meringkasnya dan membuat materi lengkap.

Seluruh prinsip pekerjaan tekstur dalam Substance Painter digunakan di sini (dan di mesin permainan lainnya) - Anda menunjukkan parameter apa yang diperlukan untuk apa, dan program memberikan hasilnya. Dalam hal ini, Pelukis Substansi mengambil alih sebagian besar perhitungan, sedangkan Mesin Unreal hanya menjumlahkan hasil akhir dari Pelukis dan menciptakan shader (bahan) siap pakai yang dapat diletakkan di bangku.

Kami hanya perlu menghubungkan pin dengan benar dan meminta mesin menghitung hasilnya untuk kami:

gambar

Dan mengapa saya tidak menempel saluran merah dari tekstur ORM di Ambient Occlusion? Saya sudah menyebutkan bahwa AO dianggap usang, karena AO sering dihitung secara real time. Dan di simpul material ada pin Ambient Occlusion, tetapi tidak bekerja. Bahkan tidak diperhitungkan. Ditinggalkan di sini karena suatu alasan. Saya kira diperlukan sejumlah besar pekerjaan untuk menghapusnya.

Jadi Kami memiliki shader (material) paling sederhana yang siap, dan akhirnya kami bisa mengecat toko kami. Untuk melakukan ini, buka toko di UE4 dengan mengkliknya 2 kali dengan LMB. Dan seret materi dari browser proyek ke dalam slot materi:

gambar

Baik di sini. Sekarang Anda telah menerima objek jadi pertama Anda.

Anda dapat melihat hasilnya sendiri, tetapi saya hanya akan meringkas.

Total

Dalam bentuk yang sangat sederhana, kami belajar cara membuat shader pertama di mesin UE4. Anda bertanya - mengapa ini disebut Material, dan bukan shader di mesin itu sendiri? Lebih mudah untuk menjelaskan seperti apa format bangunan tekstur ini - ini adalah bahan yang ditumpangkan pada objek, dan objek menjadi indah. Tetapi kemampuan shader jauh lebih besar (jauh, ratusan kali lebih banyak) daripada hanya menampilkan tekstur.

Offtop. Memecahkan Masalah Talang

Di atas, saya mengidentifikasi masalah dengan chamfer dan bagaimana menyelesaikannya. Tetapi ada cara kedua, yang tidak akan kita pertimbangkan sepenuhnya di bagian ini - ini adalah menciptakan chamfer pada model dan menyelaraskan normals sehingga permukaan mesh menciptakan ilusi bevel yang indah. Talang seperti itu dibuat dengan menyelaraskan normals dari simpul (garis singgung). Dan metode ini bahkan sedikit lebih ekonomis untuk kinerja daripada metode dengan peta normal, dan tingkat keindahannya sangat tinggi dalam kaitannya dengan tekstur chamfer biasa. Berikut adalah contoh pintu yang ada di salah satu proyek game kami (belum diumumkan):

gambar

gambar

Saya menemukan informasi tentang topik ini hanya pada sumber daya berbahasa Inggris. Di sini

Keuntungan dari metode ini adalah kita menciptakan segi yang indah, sementara jumlah simpul tidak bertambah banyak, karena tepi yang keras selalu 2 simpul pada satu titik, dan tepi lunak adalah 1 simpul, dan jumlahnya meningkat segitiga untuk menggambar:

gambar

Perlu diingat bahwa kita membutuhkan peta normal untuk sebuah objek dalam 99% kasus untuk membuat chamfer. Dan peta normal untuk materi dan beberapa elemen individu adalah topik yang sedikit berbeda.

Total

Ohhhhh. Nah, yang paling penting adalah yang ini. Tapi itu perlu untuk sepenuhnya mencakup topik texturing standar. Dan tentang ini kita bisa berhenti.

Sebenarnya, kami telah beralih dari elemen piksel yang nyaris tidak terlihat pada monitor Anda menjadi skema topeng kompleks yang menentukan visibilitas lapisan material yang tidak kalah rumit. Akhirnya, kami membagi kata pixel menjadi dua - texel dan pixel. Dan kami belajar memanggang dan menghubungkan semua ini di mesin game. Pada langkah ini, Anda dapat menggambar garis tebal panjang dan mengatakan bahwa kami telah menjadi seniman tekstur nyata. Segala sesuatu yang lain - keindahan chipping pada objek, sinematografi representasi visual - ini semua adalah akumulasi waktu dan keinginan konstan untuk mempelajari teknik dan metode baru.

Anda dapat menonton lebih banyak pelajaran dan meningkatkan keterampilan Anda. Misalnya, di Substance Designer terdapat banyak generator, yang bisa Anda gunakan sebagai generator layer. Dan semua topeng yang dibuat untuk kotoran, tidak lagi dibuat secara manual, tetapi diimplementasikan pada tingkat fungsi yang akan melakukan segalanya dengan indah untuk Anda.

Anda harus selalu ingat bahwa kami mempertimbangkan rentang nilai dari 0 hingga 1. Ini penting karena tekstur standar memiliki 8 bit per saluran, dan tekstur HDR memiliki saluran yang lebih luas (dari 16 bit atau lebih), yang berarti bahwa kisaran jumlah ada banyak lebih besar dari 0 hingga 255. Tetapi ini masih berkisar dari 0 hingga 1.

Dan segala sesuatu tampaknya menjadi batasnya. Kami telah mencapai tingkat pemahaman yang tinggi tentang bagaimana tekstur dibuat. Anda bisa membuang semuanya dan mulai bekerja sebagai artis tekstur untuk perusahaan mana pun yang berbagi pemodelan dan tekstur (seperti yang kita lakukan, misalnya).

Tapi benarkah begitu? Sudahkah kita benar-benar mencapai batas dalam tekstur dan akankah itu gagal lagi?
Atau masih ada lagi yang tumbuh?

Ya! Dan kami memiliki satu tutor lagi yang tersisa, yang akan membawa tekstur ke lompatan teknologi baru dan, menurut pendapat saya, akan mewakili generasi tekstur berikutnya.

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


All Articles