Daftar isi dan navigasi:
- Perkenalan dan fokus tutorial
- Persiapan
- Memahami frekuensi detail, sifat-sifat alami dan membuat batu atau tebing
- Memulai Zbrush
- Menggunakan Wrap Mode di Zbrush
- Proses sculpting
- Brush
- Proses Baking
- Xnormal
- Proses Texturing di Photoshop setelah Baking
- Hasil di game engine
Perkenalan dan fokus tutorial
Tutorial ini akan mengajarkan anda bagaimana cara membuat seamless texture dari zbrush. Yang bisa digunakan untuk 3d model low poly, baik untuk next gen ataupun mobile.
Kita akan membuat seamless texture di zbrush seperti gambar di bawah ini
Dimana dari hasil bake aset di atas, kita dapat menghasilkan beberapa 2d map dasar yang akan kita gunakan untuk texturing seperti normal map, cavity map, height map, occlusion map dan foto textur.
A. Normal map, informasi yang sangat penting untuk pembuatan textur ini, dengan normal map kita bisa mendapatkan cavity map gambar B, diffuse, dll.
B. Cavity map bisa di dapat dari normal map, buat yang suka memainkan game seperti DOTA, Warcraft, pasti melihat batu-batu yang highlight pinggirnya sangat khas seperti dilukis atau digambar, sebenarnya bisa di dapat menggunakan cavity map.
C. Depth map, texture ini sangat banyak perannya untuk film, yang kita lebih kenal sebagai displacement map. Di game texture ini bisa dipakai untuk berbagai macam masking seperti menggabungkan batu dengan rumput seperti gambar judul di atas atau sebagai displacement atau tessellation map, contohnya seperti gambar di atas.
D. Occlusion map digunakan untuk memperkuat karakter texture , memberi definisi dan sedikit pencahayaan untuk texture anda. Ini sangat banyak digunakan di game untuk mendapatkan efek cahaya yang memakan performa, di film efek ini lebih terlihat dari efek pencahayaan. Occlusion map juga sangat berguna untuk masking.
E. Textur foto, disini kita memisahkan textur frekuensi tinggi ( akan di jelaskan di bawah) dengan detail 3d yang kita buat, tujuannya agar pembuatan textur lebih fleksibel. Di game seperti DOta atau warcraft mereka tidak memakai textur foto, sedangkan di game AAA seperti Crysis mereka menggunakannya.
Jika semua di gabungkan elemen-elemen tersebut akan meghasilkan texture tebing/batu seperti di bawah ini.
Persiapan
Memahami frekuensi detail dan membuat batu atau tebing :
Mari kita ambil contoh beberapa gambar di bawah ini, manakah yang paling menarik dan efektif? mengapa demikian?
images from cgtextures.com
A. Textur ini dominan ke frekuensi detail yang sedang , sekilas kita dapat melihat definisi tebing dengan mudah nampak menarik dan sangat detail tapi sekarang anda coba menjauh dari layar komputer anda, maka detail batu ini nampak terlalu ribut dan kurang nyaman untuk dipandang terlalu lama.
B. Textur ini dominan frekuensi detail yang tinggi, maksudnya adalah kita dapat mendefinisikan batu ini hanya ketika melihatnya dari dekat. Ini contoh textur batu yang paling nyaman untuk dipandang mata, cukup detail untuk dilihat dari dekat dan tidak mengganggu pandangan ketika di lihat dari jauh. Namun semua detail kecil-kecil yang anda lihat itu akan nampak terlalu rata jika dilihat dari jauh, batu tersebut akan lebih terlihat seperti warna abu-abu yang rata dan tidak punya karakter.
C. Textur ini lebih dominan frekuensi detail rendah, kita melihat detail yang lebih enak dipandang ketika kita menjauhkan mata dari gambar, tapi definisi dan karakter batu ini akan sangat susah di mengerti jika dilihat dari dekat.
Dari pembelajaran referensi di atas, sebenarnya dapat disimpulkan textur apa yang paling cocok untuk kita :
- Yang enak di pandang dari dekat maupun jauh.
- Yang mempunyai karakter dan definisi jika dipandang dari dekat dan jauh
Kedua syarat itu hal yang ideal untuk selalu pahami dalam teknik dasar komposisi desain dan seni. Berikut ini perbandingan game dengan 2 style yang sangat kontras, uncharted vs Dota dan World of Warcraft
Referensi portofolio mereka bisa dilihat disini:
http://www.hb-3d.com/ - Bradford Smith
http://fafart.blogspot.ca/p/wow.html - Fanny Vergne
Di game Uncharted mengunakan textur yang memiliki banyak menggunakan detil frekuensi tinggi, sehinga lebih terlihat realistis. Disini mereka sangat memanfaatkan depth map untuk masking, juga ambient occlusion agar batu terlihat lebih detail.
Sedangkan di warcraft lebih memprioritaskan textur frekuensi rendah, yang harus nampak bagus di jarak jauh, disini detail frekuensi medium hampir tidak ada, dan detail frekuensi tinggi sama sekali tidak ada.
Kedua game ini menggunakan cavity map agar batu terlihat seperti di gambar atau paint dan menggunakan bantuan 3d sebagai dasar untuk pembuatan textur tersebut.
Memulai Zbrush
Langkah pertama membuat object dasar di zbrush yang akan dipakai untuk seamless highpoly sculp adalah menggunakan Plane 3d yang sudah tersedia di zbrush
Mulailah dengan project baru, kemudian pilih Plane3d sebagai tool anda, dan pilih make Polymesh3d untuk memulai proses sculpting
Plane3d di zbrush memiliki ukuran yang tepat untuk proses pembuatan tiling, yaitu 2x2 unitdimana ukuran tersebut yang dipakai sebagai acuan tiap repetisi textur yang digunakan oleh fungsi Wrap Mode di zbrush yang akan dijelaskan dibagian berikut.
Menggunakan Wrap Mode di Zbrush
Wrap mode adalah fungsi zbrush yang dapat membuat repetisi ukiran secara otomatis dalam jarak tertentu, yang berguna jika anda mau membuat pattern atau pola di ukiran anda :),
Untuk mengaktifasi fungsi Wrap Mode pada brush, bisa di dapatkan di menu : Brush > Curve > Wrapmode > ubah slider dari 0 ke 1
Nah, mari kita lihat apa yang terjadi jika kita mulai mengukir Plane3d tersebut menggunakan fungsi ini. Gambar di bawah ini adalah perbedaan mengukir Plane3d tanpa wrap mode ( gambar 1 ) dan dengan wrap mode ( gambar 2) dimana brush itu otomatis membuat sambungan ke sisi lainnya, karena itu wrapmode adalah salah satu fungsi penting di zbrush untuk membuat tile-able sculp.
gambar 1 no wrap mode
gambar 2 with wrap mode
Ingat, setiap brush yang kita gunakan harus memakai fungsi wrapmode termasuk smooth brush. Misalnya anda memakai blob, clay, claybuildup dan claytubes semua brush tersebut harus dinyalakan wrapmodenya.
Jadi apakah semua cukup dengan cara ini , dan kita bisa memulai untuk membuat textur di zbrush? Jawabannya adalah belum.
Yang bisa kita lihat dari hasil uji coba di bawah adalah bagian pinggir Plane3d sudah tidak lagi sejajar karena proses 3d sclup yang kita lakukan tadi, walaupun sudah menggunakan wrap mode sekalipun.
Jadi apa yang harus kita lakukan agar dapat menghindari seam yang cacat seperti ini?
Cara yang paling mudah adalah membesarkan ukuran dari Plane3d itu sendiri , mengapa?
Karena fungsi Wrapmode yang dijelaskan tadi adalah mengulangi pola di tiap kelipatan ukuran 2x2 itu artinya jika kita memiliki object plane3d yang lebih besar dari itu maka secara teori kita akan melihat repetisi lebih dari 1 kali .
Agar memiliki detail dan geometri yang konsisten, mungkin kita harus membuat plane baru daripada sekedar memperbesar Plane3d di zbrush. Ini bisa dilakukan di program aplikasi 3d seperti 3dsmax. maya, atau blender etc.
Gunakan plane ukuran 3x3 unit atau meter, dengan 48x48 Segment, posisikan plane baru itu diposisi : 0.0.0, putar 90 derajat menghadap depan ( seperti layaknya zbrushplane ) dan expor plane baru tersebut menggunakan Goz atau exporter yang ada.
Sekarang kita akan coba lagi untuk membuat ukiran di plane yang baru ini ( dengan wrap mode tentunya) :
Jika anda akan melakukan subdivision untuk pertama kali jangan lupa mematikan smooth mode ( SMT)
Pilih Divide kemudian nyalakan SMT kembali ( ini sangat penting diingat)
Perbedaannya yang sekarang adalah jumlah repetisi berubah dari 1 kali menjadi 1.5 kali, dengan ini dijamin tidak akan mendapatkan seam yang tidak diinginkan.
Sekali lagi perlu diingat, setiap brush yang kita gunakan harus memakai fungsi wrapmode termasuk smooth brush.
Proses sculpting
Bagi yang sudah merasa percaya diri dengan kemampuan sculptingnya untuk membuat batu yang seperti di bawah ini bisa melewatkan bagian ini, karena konsep sculpting batu itu simpel dan sama.
Kita akan mencoba formasi batu yang desainnya seperti ini
example from cgtextures.com
Persiapan teknik-teknik dasar
Brush
Brush yang akan sering dipakai untuk membuat batu ini adalah
Clay tubes : baik untuk blocking di lowpoly maupun hipoly
Trim Smooth Border : bisa di dapatkan di "Light Box" - “Brush” - “Trim” - “Trim Smooth Border” brush ini sangat berguna untuk membuat bentuk batu yang natural.
video demonstrasinya bisa dilihat di
https://www.youtube.com/watch?v=Auk3mKdKEwg
Flatten : untuk meratakan permukaan
Dam standard: digunakan untuk membuat garis definisi untuk detail dan sering di gunakan juga untuk membuat lekukan keriput pada wajah manusia atau lipatan baju.
1. Mulailah dengan blocking out, Plane yang sudah kita sediakan tadi dengan menggunakan claytubes ( ingat wrap mode harus di -set ke 1 ). Maka hasilnya akan seperti ini
2. subdivide ke tingkat 3 atau 4 dan gunakan brush trim smooth border , flatten brush dan smooth brush
3. Mulai membuat potongan-potongan desain dengan menggunakan dam standard brush
4. Di langkah ini kita bisa mulai detailing dengan smooth trim border, anda harus sabar dan mengerjakannya dengan akurat, zoom in , dan perlahan mulai mengukir menggunakan smooth trim borders , perhatikan perbedaan batu antara kiri dan kanan, yang kiri sudah mulai perlahan terlihat seperti batu.
5. Teruskan di semua bagian, dan sesekali melihat bentuk keseluruhannya.
6. Ini preview pattern yang akan saya dapatkan jika menggunakan model ini
7. Hasil pola diatas masih terasa terlalu repetitif, mungkin kita bisa koreksi kembali, mari kita analisa mengapa terasa terlalu repetitif.
Kalau melihat bagian yang kontras gelap di gambar itu kita bisa langsung menduga pola yang terlalu kentara dan kurang natural seperti ini
8. saya menggunakan claytube untuk menyempurnakan pola pola tersebut.
dan mengulangi langkah 4
9. Walaupun terlihat sedikit berantakan , kita tidak perlu khawatir, karena ini sangat mudah diperbaiki. Masuklah ke subdivision paling tinggi, perbaiki dengan menggunakan trim smooth borders, smooth dan flatten. Hasilnya akan terlihat lebih natural
10. teruslah mempoles menggunakan smooth brush, trim smooth borders, dam standard brush, dan flatten brush hingga mendapat hasil yang cukup memuaskan
Untuk tutorial ini mari kita anggap gambar di atas adalah final. Kemudian di bagian xnormal nanti saya akan menggunakan aset lama, konsep pembuatannya sama dengan yang dijelaskan pada langkah-langkah zbrush sebelumnya.
Claypolish
Setelah selesai membuat bentuk batu yang kita suka, kita bisa mulai proses finishing dengan menggunakan claypolish. Apa itu claypolish? claypolish akan mendeteksi sudut-sudut penting di model anda, dan menajamkan sudut itu serta menghaluskan permukaan yang tidak penting, ini sangat berguna untuk membersihkan jejak-jejak brush secara cepat. sehingga model 3d anda akan terlihat lebih kontras dan rapi.
Caranya ke Tool > Geometry > Claypolish
Di bawah ini adalah setting yang saya pakai untuk claypolish , max 83 sharpness 27 kadang jika hasilnya terlalu tajam bisa dikurangi angkanya.
hasil sebelum dan sesudah clay polish
sebagai catatan Clay polish, tidak semua orang menyukai hasil dari fungsi ini, jadi tidak merupakan keharusan anda menggunakan Claypolish untuk finishing.
Proses Baking
Sudut-sudut terluar high poly kita mungkin terlihat tidak sempurna tapi jangan khawatir karena baking area kita dimana posisi PLane3d 2x2 tetap aman.
Ada dua cara baking texture dari hipoly ke lowpoly , pertama yaitu menggunakan fitur 2.5D di zbrush, kedua adalah menggunakan xnormal.
Mana cara yang paling mudah dan tepat? sebenarnya dua duanya memiliki kelebihan dan kekurangan, tapi mari kita mencoba cara kedua dulu, yaitu menggunakan xnormal. Mengapa? karena prosedurnya lebih jelas dan terintegrasi, terutama saat kita membuat occlusion map nanti.
Xnormal
xnormal bisa diunduh disini http://www.xnormal.net/1.aspx
pembuatan texture melalui xnormal bisa dipelajari lebih jauh disini http://www.xnormal.net/Tutorials.aspx
Kita perlu meng-export Plane3d ( 2x2) dan batu ( 3x3) yang baru kita buat tadi
namakan hi_poly_rock untuk batu yang kita ukir tadi dan lo_poly_rock untuk plane3d.
Di tab high definition meshes click kanan dan pilih add meshes
kemudian geser slider di bwah untuk melihat pilihan lebih jauh
ganti smooth normal dari use exported normal menjadi average normal
Mengapa ? kira-kira gambarannya seperti ini, xnormal tidak mengerti informasi smoothing group file obj yang di kirim dari zbrush , ini akan mempengaruhi kualitas baking yang akan kita lakukan.
Untuk low definitionbisa di import lo_poly_rock nya tanpa perlu mengubah exported normal menjadi average normal, karena bentuk Plane 3d sudah rata dan tidak akan ada perbedaan jika diganti ke averaged normal.
Sekarang mari kita melakukan proses baking.
Cawang semua yang kita perlukan : Normal Map , Height map , dan Ambient occlusion
( untuk cavity map,bisa diproses setelah kita mendapatkan hasil normal map)
untuk ambient occlusion klik tanda … hijau untuk masuk ke pilihan lebih lanjut, matikan limit ray distance, karena terkadang fungsi itu membuat hasil baking menjadi terlalu putih.
Semua informasi ambient occlusion di xnormal bisa dibaca lebih lengkap disini
http://www.donaldphan.com/tutorials/xnormal/xnormal_occ.html
setelah semua langkah dilakukan silahkan menekan generate map
Tergantung resolusi gambar, proses baking normal map dan height map tidak akan memakan waktu lama, tapi ambient occlusion bisa memakan waktu lumayan lama, sabar saja, :) setelah proses baking selesai ,check output foldernya, kita akan mendapatkan 3 map dari gambar di bawah ini yaitu A , C , dan D
Untuk map B yaitu cavity map bisa didapat dengan menggunakan tool di xnormal dan map E adalah foto batu biasa yang bisa di dapatkan di http://www.cgtextures.com/ atau website texture gratis yang lain :).
Saya sarankan untuk menggunakan texture yang high-frequency saja, agar tidak mengganggu pandangan kalau di zoom out.
membuat cavity map
Kembali ke xnormal, dengan memilih Tools > Tangent space normal map to cavity map
Disini ada beberapa pilihan seperti swizzle coordinates, bisa di coba terutama koordinate y- atau Y+ dapat memberi sedikit perubahan pada hasilnya. Metode yang harus dipakai adalah EMB seperti yang tertera di gambar ini.
- klik kanan untuk paste atau copy normal map ke tool ini
- klik kanan untuk generate cavity map dikanan
- klik kanan juga untuk save-cavity map
Proses Texturing di Photoshop setelah baking
Disini kita akan belajar melakukan komposisi dari hasil texture yang telah kita bake tadi, Usahakan untuk menggunakan Grouping dan warna agar proses texturing lebih terorganisir dan rapi.
mari kita mulai dari grup Diffuse atau color map
Normal map sebagai Base
Kita bisa memulai dengan menggunakan textur normal map yang telah kita dapat, ada dua cara untuk mendapatkan textur dasar yang akan kita pakai
a. Jika kita melihat channel ada red green blue, dimana kita bisa menggunakan salah satu channel tersebut sebagai basic texture batu yang telah di bake.
b. Atau menggunakan efek black & white, dengan cara ini kita bisa mengatur intensitas tiap warna yang dihasilkan normal map menjadi hitam dan putih. sehingga kita lebih memiliki kontrol kearah mana cahaya yang kita inginkan.
Cavity
Intensitas cavity bisa dimodifikasi di photoshop dengan menduplikasi dan menggunakan overlay sebagai basis layer blending
untuk menebalkan garis-garisnya bisa menggunakan gaussian blur
jika di gabungkan dengan black and white dari base layer hasilnya akan semakin kelihatan. Map seperti diatas adalah typical texture yang dipakai di game stylized seperti Dota atau Warcraft.
Ambient occlusion
Fungsi dasar ambient occlusion menggunakan blending yang simpel seperti multiply
Photo Texture
Photo texture adalah pilihan, bisa dipakai atau tidak, dan layer blendingnya juga tergantung selera, disini kita memakai overlay dan Fill nya diturunkan sedikit karena terlalu kuat warnanya
Color Correction
Color correction adalah layar untuk memanipulasi warna dan efek-efek photoshop , gunakan grup ini untuk memanipulasi warna, kontras dan lainnya. anda bisa memiliki lebih dari satu group color correction.
Sedikit saran, jangan takut untuk ber-experimen membuat layar efek di antara grup yang lain, yang penting semua tergantung kreatifitas dan selera :)
Depth
Depth texture bisa digunakan sebagai masking, bahkan akan lebih bagus jika digabung dengan ambient occlusion. Caranya adalah dengan meng-copy dan paste image depth dan occlusion anda di alpha channel.
Hasilnya kita bisa membuat dua jenis textur, ini adalah konsep dasar weight blending yang digunakan di game engine AAA. masking ini juga bisa di aplikasikan ke grup lain, seperti color correction.
tapi di tutorial ini kita tidak akan membuat efek lumut seperti diatas. ( boo :( )[a]
Normal Map
Grup ini digunakan untuk menyimpan hasil normal map bake yang telah kita buat tadi.
Kita bisa menambahkan normal map dari textur foto untuk detail frekuensi tinggi atau detail-detail kecil dengan cara kembali ke xnormal ,masuk ke heightmap to normal map tool.
Masukkan textur foto di kolom kiri, klik kanan dan generate di kolom kanan, kemudian copy atau save normal map.
Letakkan normal map yang baru kita buat diatas layar normal map utama, ganti blending modenya ke overlay , maka hasilnya akan seperti ini
Spec Map
Grup ini digunakan untuk membuat specular map untuk 3d kita nanti, biasa saya hanya menggunakan hue / saturation dan kemudian level grupnya bisa diletakkan setelah diffuse map agar lebih praktis dalam pembuatan specular.
Nah sekarang save lah setiap group ke masing-masing folder seperti
- menyimpan gambar diffuse : hide grup yang lain
- gambar spec : tampakkan diffuse sama spec lalu save
- dan normal : tampakkan gambar normal saja lalu save
Kita akan punya 3 map baru ; diffuse normal , spec yang akan di gunakan untuk 3d rendering. Jangan lupa depth yang bisa digunakan untuk displacement map.
Hasil di game engine
Jika semua map di gabungkan depth atau displacement, normal map, albedo( diffuse atau color), specular dan inilah hasil yang bisa kita dapatkan, jangan lupa teruslah memodifikasi textur hingga mendapatkan hasil yang pas di 3d.
contoh lain penggunaan depth map adalah vertex weight blending with depth map di Unreal 4
jadi jika semua map itu dibuat akan sangat banyak kegunaannya untuk berbagai macam shader di 3d, Semoga cukup bermanfaat untuk menambah wawasan anda tentang texturing game.