Tutorial : Bagaimana caranya pasang Heightmap di Unreal Engine 4

Pengen doonk sekali-sekali (bahkan harus dalam beberapa kasus game) kita bisa pasang heightmap di objek mesh kita supaya game terasa lebih realistik. Lalu heightmap itu apa? Berbeda dari bump map yang hanya menampilkan visual bayangan, heightmap justru menampilkan ketinggian yang aktual dari sebuah objek mesh (elevasi). Heightmap bisa diaplikasikan ke mesh yang ingin menampilkan ketinggian gunung atau daratan misalnya. Di game, heightmap digunakan untuk menampilkan detil ‘tonjolan’ tanpa harus modeling sedemikian rumit.

Untuk lebih detilnya bisa dibaca disini : https://en.wikipedia.org/wiki/Heightmap

Langsung saja, untuk membuat heightmap, lo harus buka aplikasi 3d, bisa dari 3ds Max, Maya dan lain-lainnya. Tapi untuk tutorial ini kita pake 3ds Max aja ya.

Di 3ds Max. Simpel aja, coba bikin plane dengan ukuran terserah, misalnya 500 x 500 dengan segmen masing-masing 4.

1

Klik dropdown Modifier list dan pilih Tesselate.

Masukkan nilai : Itterations = 2, Tension= 0 (disini lo bisa eksperimen sendiri nilainya. Setau gue, semakin tinggi nilainya, elevasi mesh akan semakin detil).

Kemudian export ke .OBJ atau .FBX terserah.. Oh iya jangan lupa di unwrap dulu ya.

Langkah berikutnya adalah memasang tekstur ke objek tadi. Disini gue merekomendasikan lo bisa memasang tekstur ke objek tadi. Untuk pasang tekstur bisa lewat Substance Painter, Photoshop, 3d Coat dan lain-lain. Tapi untuk tutorial ini okelah kita coba googling.

Buka browser, coba cari gambar “heightmap” dan pilih sesuka lo.

2

Catatan : Gambar dari Google diatas sebenarnya adalah image yang sudah heightmap ready. Kalo lo pengen tau gimana caranya bikin heightmap sendiri, coba sekarang googling “Mud texture”. Disana nanti akan tampil image lumpur yang coba kita generate menjadi heightmap. Save salah satunya saja. Gue pilih yang ini.

Mud texture or wet brown soil as natural organic clay and geological sediment mixture as in roughing it in a dirty muddy country road bog after the rain or rainy season found in a damp moist climate

Ada beberapa cara membuat Heightmap, kalo gue lebih seneng pake aplikasi CrazyBump namanya. Lo coba bisa download disini.

Setelah save, buka CrazyBump. Trial 30 hari gapapa lah buat latihan.

Di CrazyBump, pilih image mud yang barusan lo download. Kemudian pas ditanya ini (seperti gambar dibawah), pilih aja salah satu.

3

Cuss mantap, kalo berhasil berarti akan muncul bola material yang sudah dikalkulasi oleh CrazyBump, diantaranya Normal map udah masuk, heightmap masuk dan lain-lainnya masuk.

Pindah tab ke Displacement (tab nya ada dibawah aplikasi CrazyBump). Nah disitu ada setting yang udah secara default disetting sama CrazyBump. Lo bisa seting sesuai kehendak lo dan bisa liat hasilnya di bola 3d tadi, atau image disebelahnya.

Kalo udah selesai, klik save. Jangan sungkan-sungkan, Save All Texture aja sekalian.

Sip, lo bisa buka hasil save tadi, disana ada COLOR, Displacement, Normal, Occlusion dan lainnya. Simpen ini jangan dibuang.

Sekarang buka Unreal Engine. Gue rekomendasikan lo udah ngerti sebelumnya dengan Unreal Engine, karena kalo gue jelasin disini bakal kepanjangan scope tutorial nya.

Intinya, Bikin New Project, kemudian pilih yang Blueprint dan pilih First Person atau Third Person template.

Import Mesh yang udah lo bikin di 3ds Max sebelumnya. Biasanya Material bakal ngikut kedalam Unreal, tapi kalo misalnya ngga, maka lo harus bikin material di Content Browser Unreal. Caranya klik kanan, kemudian pilih Material.

Selanjutnya import semua texture hasil kita buat tadi di CrazyBump.

Buka Material dengan cara double click di Material yang barusan kita buat di Unreal.

Klik base root material disebelah kanan untuk mengaktifkan panel Details di sebelah kiri. Kemudian scroll kebawah hingga lo nemu tab ‘Tesselation’. Aktifkan 4 opsi sesuai gambar diatas.

Pasang texture kedalam base root material. Pasang COLOR ke Base Color, NRM ke Normal, SPEC ke Specular, OCC ke Ambient Ocllusion.

(Naming convention diatas adalah output dari CrazyBump. Kalau Anda masukkan texture dari software lain pasti akan ada perbedaan nama. Namun intinya, Color/Albedo/Base color selalu sama. Normal ke Normal Map selalu sama. AO ke Ambient Occlusion selalu sama. Dan sebagainya).

Sejauh ini udah oke, hanya ada satu pekerjaan lagi.

Biar cepet, ikuti alur dari gambar diatas. Displacement texture dipasang diantara VertexNormalWS dan Multiply. dan dirangkai ke World Displacement pada root material.

Tekan ‘1’ pada keyboard kemudian klik kiri mouse. Pasang ke Multiply B dan masukkan nilai Material Expression Constant ke 5 atau 10. Semakin tinggi nilai nya maka akan semakin tinggi efeknya.

Tekan ‘1’ dan klik kiri mouse lagi untuk pasang node ke Tesselation Multiplier dan pasang value 2 disana.

Jika langkah Anda benar, maka material sudah terpasang efek heightmap. Segera pasang Material tadi ke mesh, dan pasang mesh ke world level Anda.

 

3d Coat Tutorial

Some of my works done in 3d Coat for retopo and texturing. Its fast and easy. This tutorial may not cover all the software features but hope this might help. You can buy or give it a try here. I’ve made the Mustang for this tutorial, please download the Mustang free here

Now after you install the software, All you need to do is import your mesh. You can import it before you unwrapped it but please keep in mind, an automatic unwrap system on 3d Coat may not giving results as you want. This tutorial I using my own model, complete with unwrapped in 3ds Max.

Any mesh you can import from low to high for game or movie whatsoever. If you Photoshop user, then you might not have any technical difficult on 3d Coat, its almost same.

In this case study pretend I want to have this Mustang done for video game assets. So I imported it in .obj format.

Click File > Import > Model for Per Pixel Painting

Next pop-up window is the option whether for texture size or any software preset you need. But this tutorial I leave them as default options checked already and choose 2048 x 2048 for texture size. Hit OK to continue.

1.PNG

UV Set Name from picture above are the same material slot name on 3ds Max or Maya or anything else you using. You can rename it.

After your model appear on the screen, you may have a flat white on it. First thing I usually to do is adding Occlusion to express the shadow around my object.

Click Textures > Calculate Occlusion

Leave the default options but you can change any light count number. I using 1024 will be okay. Then hit OK to continue. Let 3d coat calculate for you for a sec.

2.PNG

And this is my Mustang after occlusion applied.

3.PNG

Pay attention the layer on the right bottom side on your screen (default position), there’s a layer automaticaly added ‘AmbientOcllusion’ since you did previous step. If you need more dark Occlusion then you can add once more or just copy and paste on the layer name ‘AmbientOcclusion’, click Duplicate icon on the layers window below.

4.PNG

New layers added as a copy and your models appears more dark.

Next step I want to add basic color to my car. Add a new layer above ‘layer 1’ by pressing add a new layer next on the trash icon. Double click and rename it ‘base color’. Base color are best to put on the bottom of all layers.

Now before you spill out a base color, make sure you’re not activate any of the smart materials. To do so, just click the ‘X’ close on the Smart Materials tab

5.PNG

Now pay attention on the left bar on your screen. Make sure you activate only the color mode, as seen on image below. This green ball means you only apply colors, no roughness (represented by black ball) and Normals (blue ball).

6.PNG

On the image above, pick color you like. For this example I pick green.

On the same toolbar, pick Fill Tool. This will fill all your car body in one UVW’s.

7.PNG

Click on the car body that you want to fill up. Notice that not all the body covered in green paint when you fill it. This is good because you don’t want your car glasses to be green too right? This fill tools read the same UVW’s, that’s why you need to unwrap before painting in 3d Coat. This is my car progress so far.

8.PNG

Your car is still so dull and flat, even you have painted before. Add new layer above your base color layer and rename it ‘roughness’.

9.PNG

We only add roughness effect on this step, meaning all colors and normal should be off. Make sure you activate the black ball that represent for roughness, than switch off for normal and color ball as seen image below.

10.PNG

Now on the Smart Material tab on the right side, choose anything that represent a glossines of a car. This example I want to make my Mustang looks old, so I pick Copper_old from Smart Material tab. To be honest there’s no car shader available on 3d coat, so you need some research.

11.PNG

With your Roughness layer selected, paint your car body above the base color. Should look like this.

12.PNG

Your roughness look so bright, so you need to decrease the value of it. To do this, stay at tha Roughness layer, then change your Roughness Opacity value from 100% to 50%

13.PNG

Of course you can add more roughness, depend on your need.

Add more layer for more effects, like tires, glass, plastic or anything that fit on your car. The rest of the process will be the same like we did previous step on this tutorial.

Please keep in mind to stay alert with your layers and always rename anything paint job. Opacity value keep the color bright or dull, Depth Opacity holds Normal map and Roughness Opacity holds how strong the materials.

14

Before you paint anything to the object, you can also change the size of the texture, rotate or move. To do this, click anything in Smart Material slot and Fill Tool. Then on the toolbox Preview Options appear, you can change by click and dragging

15.PNG

After you done all your paint job. You can change the background or rotate it. To do that, on the toolbar, click tha panorama icon to change the background. Or set the brightness next on the panorama icon. You can also drag the lightning to adjust the position of light source. Anything else on this toolbar can be self explanatory, but for now, save your work.

16.PNG

Here’s my work done all from 3d Coat.

17.PNG

To export all the materials you’ve done, click File > Export object & textures. Change your outpput mesh and textures. Don’t forget to check Color, Roughness, Metallness and AO and hit OK.

In the next tutorial we apply these textures and model to Autodesk Maya. Stay tuned. And thanks for reading.

If you found something useful with this tutorial please donate to : paypal.me/indrapermanahadi

 

Tutorial : Mengaplikasikan PBR #5 (Blender Complete Map)

Sebelum baca yang ini, pastikan dulu kamu baca tutorial saya #4 bagaimana mengaplikasikan PBR di Blender.

Dengan tutorial yang ini bedanya apa? Disini kita akan ambil complete map di Blender untuk kemudian jadi satu map. Ini termasuk pencahayaan yang masuk dan bayangan yang di bake di Blender, kemudian dibuat jadi complete map nya.

Dengan pemahaman tadi, berarti pencahayaan yang kamu pasang di Blender akan sangat berpengaruh dengan map yang akan di bake.

Tapi tenang, di tutorial ini gue bakal praktekin se simpel mungkin.

Siapkan objek yang sudah kamu pasang di Blender, lengkap dengan COLOR, ROUGHNESS, NORMAL dan METALNESS, gue ngga jelasin lagi disini ya, kamu bisa baca di tutorial sebelumnya.

  • Pilih objek, kemudian ganti ke Edit Mode, atau cukup tekan TAB pada keyboard
  • Buat layar baru disebelahnya, dan ganti dari 3d View ke UV/Image Editor. Jika langkah kamu benar maka akan muncul seperti gambar dibawah (sori guys gue pake objek yang berbeda dari tutorial sebelumnya, tapi intinya sama saja).

Capture.PNG

  • Klik Ctrl + A di layar UV/Image Editor tadi hingga semua objek terpilih berwarna kuning seperti gambar dibawah.

Capture2.PNG

  • Klik icon ‘+’ Create a New Image yang terletak dibawah layar UV/Map Editor kemudian masukkan nama yang relevan, atau apa aja sih, ngga ngaruh

Capture3.PNG

  • Masih dalam keadaan objek terpilih dalam Edit Mode, pastikan objek dalam 3D View dan di UV/Map dalam keadaan terpilih
  • Selanjutnya klik icon kamera di pojok kanan layar

Capture4.PNG

  • Scroll kebawah hingga kamu nemuin rollout BAKE
  • Pilih Bake Type ke ‘Combined’, matiin (kosongkan) Margin bila perlu

Capture5.PNG

  • Jika semuanya sudah, tekan ‘Bake’ dan tunggulah hingga proses baking selesai
  • Jika langkah Anda benar, maka akan tampak seperti gambar saya dibawah. Ingat, dalam 3d view harus ada pencahayaan dan kamu harus atur pencahayaan sesuai dengan keinginan. Proses ini biasanya berulang-ulang dan makan waktu lumayan lama.

rear armor complete map.png

Gambar saya diatas adalah contoh Complete map dengan memanfaatkan COLOR, ROUGHNESS, NORMAL dan METALNESS untuk kemudian dirender jadi satu. Gambar diatas juga sudah saya berikan pencahayaan agar tampak lebih realistis.

Sementara gambar saya dibawah adalah gambaran di 3d View nya.

Capture6.PNG

Jangan lupa, complete map kamu tadi sebenarnya belom di SAVE. Masuk ke UV/Image Editor, kemudian temukan tombol ‘Image’ dan pilih Save As Image atau tekan F3.

Kalo ini udah jadi sih udah enak. Nanti ketika kamu export ke 3ds Max, kamu bisa aja load hasil complete map nya sebagai diffuse. Tapi inget, semua pencahayaan dan banyangan hasil complete map sifatnya ‘mati’ alias ngga bisa diedit dengan pencahayaan sekitar 3ds Max (atau apapun aplikasinya itu).

Tutorial : Mengaplikasikan PBR #4 (Blender)

Udah selesai di 3d Coat sekarang kita export material untuk segera di pake ke beberapa aplikasi. Yang saya pake adalah 3ds Max, Maya, Blender dan Unreal. Untuk tutorial kita kali ini akan menggunakan Blender. Anda bisa unduh gratis disini.

Pastikan file mesin terakhir Anda sudah jadi di 3d Coat, selanjutnya Anda hanya perlu export semuanya.

Klik File > Export Objects & Textures.

Di jendela Export, Pastikan lokasi tempat Anda menyimpan mesh sudah ditentukan.

exportJadi.PNG

Jangan lupa untuk menyertakan Color, Roughness dan Metalness dan AO dalam keadaan tercentang. Nonaktifkan Create Padding dan klik Ok.

Pertama, saya akan input ke Blender. Harap diingat bahwa hanya Blender seri terbaru yang support PBR. Jika Anda menggunakan Blender versi lama, Anda harus menggunakan plugin khusus.

Buka aplikasi Blender Anda (catatan, saya mengasumsikan Anda sudah bisa menggunakan Blender sebelumnya. Saya tidak menjelaskan detil cara kerja Blender), kemudian import file .obj mesin yang kita export dari 3d Coat pada langkah sebelumnya. Kalau perlu, Anda scale menjadi lebih kecil setidaknya tidak melewati batas grid di Blender.

Buat layar kerja Anda menjadi horizontal atau setidaknya buatlah menjadi dua workdesk seperti pada gambar. Jangan lupa untuk ganti editor kedua menjadi Node Editor seperti pada layar dibawah.

blender1.PNG

Ubah Blender Render menjadi Cycles Render. Klik icon material (sebelah kanan). Kemudian pada material ID ‘Kabel’, pada rollout Surface, klik dan pilih Principled BSDF. Maka akan muncul seperti gambar dibawah.

blender2.PNG

Kemudian di workdesk Node Editor, tekan Shift + A dan pilih Image Texture.

image-texture.jpg

Buatlah node Color di Image Texture ke Base Color di Principled BSDF, kemudian klik Open dan pilih texture untuk kabel yang sudah kita buat di 3d Coat. Ingat, texture ini adalah apa yang Anda export dari 3d Coat.

Lakukan hal yang sama untuk memasang node di Metallic dan Roughness. Metallic adalah texture Metalness, Roughness ke texture Roughness. Jangan lupa untuk mengganti Roughness dan Metallic ke Non-Color Data. Perhatikan gambar dibawah.

node.PNG

Khusus untuk Normal Map, buatlah Image Texture, ambil texture Normal map untuk Kabel. Setelah itu, tekan Shift + A dan pilih Vector > Normal Map. Pasang node seperti gambar dibawah.

node2.PNG

Jangan lupa untuk ganti Color ke Non-Color Data.

Lakukan hal yang sama untuk Mesin atas, Tabung dan Mesin Bawah. Harap diperhatikan letak nama yang sesuai, Roughness untuk texture Roughness dan sebagainya. Jika Anda benar, maka akan tampak seperti gambar dibawah.

node3.PNG

Anda bisa menambahkan HDRI kedalam scene Anda agar lebih realistik. Masuk ke situs free http://www.mrbluesummers.com/category/downloads

Pilih HDRI yang sesuai dengan keinginan Anda dan unduh gratis dari sana.

Untuk mengaplikasikan HDRI ke dalam Blender, pastikan salah satu dari file HDR itu sudah Anda unduh. Selanjutnya klik icon bola dunia (bumi), kemudian klik tombol New, pada rollout Surface klik tombol disebelah kanan Color, kemudian pada menu pop-up klik Image Texture. Selanjutnya klik Open. Pilih file yang barusan Anda unduh dengan format .hdr.

hdr.PNG

Jangan lupa untuk ganti Display Method ke Rendered

rendered.jpg

Jika langkah Anda sejauh ini benar, maka akan tampak seperti ini.

render1.PNG

Di tutorial berikutnya, kita akan coba aplikasikan ke 3ds Max, Maya dan Unreal Engine 4.

 

Tutorial : Mengaplikasikan PBR #3

Yay, udah masuk kita ke tutorial ke-3 bagaimana mengaplikasikan PBR di sejumlah aplikasi. Setelah kita test drive di 3ds Max dan DDO, sekarang tiba saatnya masuk ke 3d Coat. Jangan lupa bahwa ini adalah lanjutan dari tutorial kita sebelumnya, jadi besar harapan saya jika Anda memulainya dari awal.

Setelah kita mendapatkan apa yang kita mau dari Quixel DDO, sekarang saatnya memasukkan ketiga elemen tekstur dan mesh kedalam 3d Coat. Jika Anda ingat, kita sempat export keseluruhan mesh mesin kedalam format .obj sebelum masuk ke dalam 3d Coat. Jika belum, Anda bisa mengulang di tutorial kita #2.

Buka 3d Coat Anda, jika Anda belum menginstal nya, bisa diunduh disini untuk versi trial nya.

Di aplikasi 3d Coat, klik File > Import > Model for Per Pixel Painting. Load objek yang Anda export sebelumnya. Jika Anda mengikuti tutorial sebelumnya, maka UV Set Name akan sama seperti gambar dibawah.

import 3d coat.PNG

Klik Ok untuk melanjutkan

Untuk navigasi, klik kiri + drag untuk rotate layar/objek. Klik tengah + drag untuk pan objek. Klik kanan + drag untuk zoom in/out.

Dan seperti inilah objek Anda di 3d Coat, masih mentah, tapi sebentar lagi kita akan buat jadi epic!

mentah.PNG

Untuk cek apakah material ID sudah masuk ke dalam mesh Anda, klik ‘UV’ di layar bagian atas 3d Coat. Jika Anda benar, maka pada bagian Surface Material terdapat beberapa nama yang mewakili ID yang sudah kita buat sebelumnya di 3ds Max pada tutorial #2 disini. Hasilnya akan seperti tampilan dibawah.

ID.PNG

Balik ke mode ‘Paint’, klik ‘Paint’ di layar bagian atas 3d Coat. Sebelum mulai, cek ke Textures > Texture Export/Import Workflow >. Roughness Metallness.

Selanjutnya klik Textures > Import > Color / albedo Map. Kemudian di menu pop-up Import Texture, pastikan bagian mana dulu yang mau Anda beri tekstur. Dalam tutorial ini saya pilih ‘Mesin_atas’ kemudian klik Ok

import texture.PNG

Cari texture yang mewakili albedo atau color. Hasil dari file ini adalah output dari DDO yang Anda export sebelumnya. Jadi klik albedo yang Anda hasilkan dari DDO sebelumnya.

albedo1.PNG

Jika langkah Anda benar maka albedo pertama Anda sudah masuk dalam objek. Selamat. Jangan lupa perhatikan layer di 3d Coat.

layer.PNG

Secara otomatis, 3d Coat akan membuatkan Anda layer baru seperti milik saya pada gambar diatas.

Selanjutnya, lakukan hal yang sama untuk import texture lain, klik Textures > Import, seperti External AO untuk Ambient Occlusion, Roughness untuk Roughness, Metalness Map untuk Metallic, Normal Map untuk Normal.

importTexture.PNG

Jika Albedo, AO, Roughness, Metallness dan Normal sudah masuk, kini saatnya masuk ke texture untuk ID yang lain. Lakukan langkah yang sama, namun kali ini pilih ‘Mesin_bawah’ seperti yang saya lakukan.

import2.PNG

Import Albedo, AO, Roughness, Metallness dan Normal seperti yang kita lakukan sebelumnya, namun kali ini yang khusus output dari DDO untuk material ID yang lain, yaitu Mesin_bawah. Jika sudah, maka hasilnya akan seperti ini.

import3.PNG

Lalu bagaimana jika kita tidak memiliki albedo? Tenang, saya sengaja tidak membuat albedo untuk dua material ID lainnya, seperti ‘Tabung’ dan ‘Kabel’. Yang saya lakukan hanya import AO dan Normal nya saja, maka hasilnya akan seperti ini.

tanpa albedo.PNG

Bagian yang saya beri petunjuk merah pada gambar diatas adalah AO dan Normal tanpa albedo, roughness dan metallness. Meskipun kita tidak import tiga elemen tadi, kita tetap bisa bekerja dengan baik di 3d Coat dan menciptakan sendiri texture disana.

Sekarang segalanya sudah siap, kini tinggal texturing di 3d Coat. Kalau Anda biasa menggunakan Adobe Photoshop seharusnya di 3d Coat tidak ada kendala. Hampir elemen kerja, brush dan layer mirip dengan Photoshop.

Pastikan Anda berada di mode ‘Paint’. Tekan dan tahan tombol spacebar, di menu pop-up yang muncul, pilih Paint Bucket seperti gambar dibawah.

paintbucket.jpg

Ingat, ada baiknya Anda membuat layer baru jika ingin brushing atau painting di 3d Coat. Di bagian bawah layer, klik Add a new layer seperti gambar dibawah.

layer2.PNG

Selanjutnya, plih Smart Materials dan pilih beberapa preset material yang sudah disediakan. Untuk kasus kita yang berupa objek mesin, ada baiknya saya pilih metals, rust, scratches dan dirt.

smartMaterial3.PNG

Jika Anda sudah suka dengan pilihan Anda, klik di objek 3d pada viewport. Pilihan Paint Bucket tadi akan ‘menumpahkan’ cat/material kedalam objek. Pastikan Anda berada di layer yang sudah dibuat tadi. Jangan lupa memberikan nama spesifik tiap layer agar nantinya Anda bisa dengan mudah memodifikasi.

Seperti yang sudah saya tulis sebelumnya, 3d Coat hampir mirip dengan Photoshop. Anda juga bisa mengatur filter yang sudah disediakan. Masih dalam keadaan layer terpilih, klik tombol drop-down (disebelah Opacity) dan pilih beberapa filter yang Anda inginkan.

filter.jpg

Jangan lupa, Anda juga bisa mengganti Paint Bucket dengan Brush atau Eraser. Tekan tahan Spacebar dan pilih beberapa menu pilihan, misalnya Brush.

Buat layer baru, kemudian pilih beberapa Smart Materials dan brush di objek 3d Anda. Gambar dibawah adalah percobaan saya untuk painting menggunakan brush. Ingat, ada baiknya Anda menambahkan albedo atau texture basic kemudian menumpahkan beberapa efek ke objek, daripada Anda harus paint satu persatu dari nol.

painting1.PNG

Jika tidak ada albedo pada objek, gunakan Paint Bucket dan tumpahkan sebagai albedo Anda di 3d Coat.

Jika Anda ingin melihat sementara hasil Anda dalam render, klik mode ‘Render’. Jangan lupa untuk cek Reltime Render untuk melihat hasilnya.

render.PNG

Anda juga bisa mendambahkan cahaya. Caranya klik totmbol ‘Add Light’. Namun pastikan dalam keadaan ini Realtime Render dalam keadaan uncheck. Anda bisa atur letak posisi cahaya dengan mengaturnya dari Ritation Angle, Light Height atau Light Scattering.

lihgt.PNG

Anda juga bisa ganti panorama untuk hasil yang berbeda pada objek yang Anda render. Panorama memungkinkan pantulan cahaya menjadi lebih variatif manakala Anda ganti latar belakang objek. Klik tombol ‘Panorama List’ untuk mencari latar belakang yang Anda inginkan. Jangan lupa, beberapa tombol disebelahnya juga memungkinkan Anda untuk atur tingkat pencahayaan, rotasi atau kontras.

panorama.jpg

Untuk menciptakan Ambient Occlusion di 3d Coat, pindah ke mode ‘Paint’, kemudian pilih Textures > Calculate Occlusion. Maka akan muncul window baru seperti gambar dibawah.

calculateOcclusion.PNG

Masukkan nilai 1024 sesuai ukuran texture, pastikan setting Lihting Render Target ke ‘Into New Layer’ agar 3d Coat membuatkan layer khusus baru untuk hasil AO. Kemudian tekan tombol Ok.

Segera setelah itu, sistem akan mengkalkulasi bayangan untuk menciptakan AO langsung dari 3d Coat dan 3d Coat akan menciptakan layer baru khusus untuk AO.

Berikut adalah hasil yang sudah saya kerjakan. Harap diingat bahwa masih banyak sekali fitur 3d Coat yang belum bisa saya bahas disini karena scope nya terlalu lebar. Gunakan beberapa variasi dengan mengganti brush preset, tambahkan albedo kedua untuk menambahkan texture lain, menggonta-ganti filter pada layer dan sebagainya.

Capture.PNG

Di tutorial berikutnya, kita akan export hasil 3d Coat ke dalam sejumlah aplikasi untuk mengaplikasikan PBR di Maya, Blender dan Unreal 4. Stay tuned.

Tutorial : Mengaplikasikan PBR #2

Jangan lupa baca tutorial yang pertama ya disini karena tutorial ini adalah lanjutannya.

Setelah semua lowpoly Anda bake (total ada 4 lowpoly), sekarang tiba saatnya masuk ke aplikasi Quixel DDO atau 3d Coat (apabila ingin melewati DDO).

Ada perbedaan di texture apabila Anda ingin mengaplikasikan keduanya di DDO atau 3d Coat. Di DDO Anda harus import terpisah parts per parts. Jika di 3d Coat Anda bisa masukkan semuanya langsung. Namun sebelum memulai keduanya, mari kita pasang Diffuse map di 3ds Max supaya 3d Coat mengenali.

Buka Material Editor di 3ds Max. Kemudian drag atau pasang salah satu slot ke objek mesin Anda. Ingat, semua mesin harus jadi satu objek, terlebih dahulu Anda harus Attach semuanya menjadi satu objek.

Masih di Material Editor, di slot yang Anda pilih dan pasang di objek, klik tombol Standard dan pilih Multi/Sub-Object.

multi.PNG

Pilih Discard old material dan klik OK pada pop-up window yang muncul.

Sekarang semua objek Anda menjadi hitam. Tenang, tidak ada yang salah disini. Jika Anda ingat, kita hanya memiliki 4 parts pada objek mesin. Masing-masing parts sudah saya beri material ID sebelumnya, dan material ID tersebut adalah 20, 21, 22 dan 23.

materialID2.PNG

Klik Delete hingga menyisakan 4 material ID seperti gambar diatas kemudian masukkan angka nya. Ingat, masing-masing angka diatas bukanlah sembarang angka, itu akan berperan besar dalam menngaplikasikan material.

Kegunaan material ID adalah apabila Anda memiliki objek besar yang di unwrap secara terpisah, namun tetap menginginkan objek itu sebagai satu kesatuan, maka material ID akan memisahkan tekstur-tekstur tadi namun Anda tetap akan menggunakan satu material slot.

Dimulai dari angka 20, klik tombol ‘None’ disebelahnya, kemudian di window pop-up Material/Map Browser pilih Standard

standard.PNG

Seketika warna objek di viewport menjadi abu-abu. Di bagian ini, kasih nama yang sesuai dengan objek Anda. Nantinya nama ini akan dikenali di 3d Coat supaya Anda mudah memasukkan tekstur kedalam objek disana.

name.PNG

Untuk balik ke atas, cari dan klik tombol ‘Go to parent’.

Lakukan langkah yang sama untuk 3 objek sisanya. Perhatikan seperti gambar dibawah.

namanama.PNG

Selanjutnya, attach semua objek Anda menjadi satu objek mesin. Kemudian export ke obj. Nantinya kita akan butuh ini di 3d Coat.

Sekarang, buka aplikasi Quixel DDO Anda.

openDDO.PNG

Di window DDO tadi, klik tombol “D” seperti pada gambar diatas.

Di Window DDO, klik Mesh kemudian cari file “lowpoly1” Anda. Jangan lupa untuk menyertakan Normal dan AO (Ambient Occlusion) dari hasil XNormal yang Anda buat di tutorial sebelumnya.

openDDO2.PNG

Kemudian di bagian bawah, tentukan alamat tempat dimana file kerja DDO akan disimpan, kemudian klik “CREATE”

SaveDDO.PNG

Jika langkah Anda benar, maka akan muncul window pop-up. Sekarang masih di DDO, klik tombol bertuliskan “3” atau 3DO seperti gambar dibawah.

3DO.PNG

Tunggu beberapa saat, aplikasi akan memuat file 3d Anda. Jika sudah, maka akan muncul tampilan 3 dimensi dari objek mesin lowpoly1 Anda seperti punya saya pada gambar dibawah.

3DO2.PNG

Untuk navigasi, klik tahan tombol tengah mouse untuk pan layar. Tombol Alt + klik kiri untuk memutar objek. Tombol Alt + klik kanan untuk zoom in/out. Dan yang terakhir tombol Alt + Shift + klik kanan untuk memutar cahaya.

Anda bisa menggunakan preset HDR untuk panorama dengan memilih tombol drop down disebelah Direct Light Intensity jika Anda mau, atau Anda bisa mengatur seberapa kuat cahaya yang aktif disana.

panoramaPreset.PNG

Oke sekarang saatnya kita kasih material pada objek. Perhatikan sudut bawah window DDO Anda, cari dan klik ‘Add Smart Material’ seperti yang saya beri tanda merah pada gambar dibawah.

smartMaterial.PNG

Jika langkah Anda benar, maka akan muncul window Smart Material seperti gambar dibawah.

smartMaterial2.PNG

Oleh karena objek kita sifatnya adalah benda metal, maka saya akan cari tekstur bernuansa besi tua yang sudah termakan usia. Untuk itu saya akan memilih ‘Stained Steel’ kemudian klik “Create”.

Segera setelah Anda klik Create, DDO akan generate tekstur pilihan Anda kedalam mesh. Untuk proses ini sedikit memerlukan waktu. Namun inilah hasil yang saya dapatkan dari material tadi

stainedSteel

Namun rupanya saya tidak terlalu suka dengan material tadi. Untuk itu saya bisa modifikasi beberapa layer yang tidak saya butuhkan. Pada bagian layer DDO, saya bisa uncheck beberapa nama, misalnya Coarse Rust dan Rust Miscoloration.

uncheck.PNG

Biasanya material yang kita aplikasikan di DDO akan memiliki child atau sub material di dalamnya. Dalam contoh kasus material yang saya pasang, saya bisa uncheck beberapa sub material yang tidak saya butuhkan. Anda juga bisa melakukan hal yang sama dan tahap ini membutuhkan waktu lama untuk sekedar mencari material yang pas sesuai selera Anda. Dan berikut adalah material yang saya inginkan.

hasil.PNG

Ingat, Anda bisa memasang material lain kedalam sub material dengan mengklik tombol Add Smart Material seperti yang sudah saya lakukan atau tombol Add Material biasa. Untuk keluar dari child list, Anda cukup klik tombol segitiga atau ‘Go Back’ untuk masuk ke parent dari material Anda.

Sejauh ini saya suka dengan material ini, selanjutnya yang saya butuhkan adalah eksport material tadi untuk nantinya kita pasang di 3d Coat. Untuk eksport material sangatlah mudah, klik ‘Open the exporter’ seperti pada gambar dibawah.

exporter.PNG

Tentukan alamat material yang ingin Anda save, export target ke UE4 atau Unreal Engine 4 kemudian tentukan juga format yang Anda inginkan. Dan jangan lupa klik tombol ‘Export All Materials’.

save material DDO.PNG

Lakukan hal serupa untuk semua part objek. Ingat, kita memiliki 4 part objek yang semuanya adalah low poly. File yang saya pakai untuk DDO adalah file yang sama yang saya load kedalam XNormal sebelumnya untuk menghemat ruang harddisk.

Oke, di tutorial berikutnya kita akan aplikasikan hasil dari XNormal dan DDO kedalam 3d Coat. Stay tuned.

Tutorial : Mengaplikasikan PBR #1

Prolog : Balik lagi nih guys setelah lama juga ngga nulis dimari. Sori, banyak kerjaan dikantor dan sampe rumah udah keburu tepar. Tapi oke, hari ini sempet-sempetin bikin tutorial gimana caranya mengaplikasikan PBR dari 3ds Max/Maya kemudian balik lagi ke mereka setelah kita ‘ramu’ kedalam beberapa aplikasi.

Apa sih PBR itu? PBR atau Physically based rendering boleh dibilang trend baru di realtime game rendering. Seperti kita tahu, pencahayaan dan bayangan adalah kunci dari seni komputer grafis untuk mendapatkan scene re-realistis mungkin. PBR mengikuti aturan main alam dalam pencahayaan semirip mungkin untuk kemudian dipantulkan ke objek. Jika dijabarkan lebih panjang tentunya sudah bukan masuk ranah artist/seniman lagi, tapi sudah kalkulasi matematika. Sebenarnya PBR bukan mainan baru di komputer grafis, cuma mungkin kita baru mengenal banyak di industri game dikarenakan dulu game-game belum siap untuk mengaplikasikan teknologi ini (coba lihat perbedaan grafis Playstation 1 dengan konsol masa kini). Banyak aplikasi yang sudah mengikutsertakan teknik PBR, seperti Unity 5, Unreal Engine 4, 3ds Max, Maya, Fox Engine, Frostbite, Marmoset dan yang terbaru Blender versi 2.79 dan lainnya. Tidak hanya diaplikasikan dalam game, PBR juga berjalan sangat baik di industri perfilman.

Apa aja yang dibutuhkan untuk menciptakan PBR? Sebenarnya pertanyaan ini rada general, tentu saja Anda butuh komputer, bukan kompor. Namun saya mengerti maksud Anda. Untuk menciptakan PBR sebenarnya secara mendasar membutuhkan 3 texture, yaitu Albedo, Roughness dan Metalness. Nah loh apa lagi itu. Generaly speaking, itu hanyalah texture yang kita pakai di aplikasi 3d untuk menciptakan PBR. Namun dimana Anda mendapatkan 3 texture itu? Aplikasi seperti 3d Coat, Quixel atau Substance Painter bisa menghasilkannya untuk Anda dan di tutorial ini kita akan pergunakan 3d Coat dan Quixel DDO.

Apa saja yang Anda butuhkan? Untuk model desain bisa unduh dari yang saya bikin disini. Untuk tutorial ini kita tidak modeling. Jika Anda punya mesh sendiri, pastikan sudah di unwrap terlebih dahulu. Tidak peduli Anda membuatnya di Maya, 3ds Max, Blender atau lainnya yang penting kita membutuhkan format .obj untuk kemudian di bake lebih cepat menggunakan XNormal nanti. Saya sudah pernah bikin tutorial bake di 3ds Max disini.

Berikut aplikasi yang akan kita pakai; 3ds Max, Maya, Blender, XNormal, Photoshop, Quixel DDO, 3D Coat, Substance Painter, Crazy Bump. Beberapa aplikasi tadi tidak semuanya dipakai alias ada yang opsional. Namun saya coba jelaskan apabila Anda membutuhkan beberapa diantara software tersebut di workflow Anda.

Sebelum mulai, Anda bisa unduh file 3d buatan saya disini sebagai bahan latihan. Saya tidak tahu itu sebenernya mesin apa, so yeah!

lowpoly.PNG

Jadi dimana saya bisa memulainya? Berikut workflow nya ketika saya mengaplikasikan PBR di kantor untuk kebutuhan game Second Life dan pekerjaan hobi. Pertama, tentu Anda mendesain objek yang ingin dipasang material PBR. Saya sertakan 2 objek, satu yang low-polygon dan satunya yang high-polygon untuk kemudian saya bake di next step. Harap diingat bahwa low-poly harus sudah di unwrap. Kedua, menggunakan aplikasi XNormal yang bisa diunduh gratis disini. Hasil dari XNormal berupa 2 tekstur saja yang saya pakai, yaitu Ambient Occlusion dan Normal Map. Berikutnya di langkah ketiga saya buka aplikasi Quixel DDO dimana Anda bisa unduh disini. Output dari DDO akan menghasilkan Albedo/Color, Ambient Occlusion, Metallic, Normal Map dan Roughness. Keempat saya buka aplikasi 3d Coat untuk detailing teksturing menggunakan output yang saya dapatkan dari Quixel DDO. Sebenarnya DDO hanya opsional ketika saya malas untuk bikin material albedo yang digunakan di 3d Coat meskipun di software tersebut sebetulnya Anda bisa membuatnya sendiri. Anda bisa unduh 3d Coat disini. Terakhir atau kelima, saya export dari 3d Coat ke Blender, atau Maya, atau ke Unreal Engine dan saya mendapatkan hasil yang saya mau. Beberapa aplikasi tambahan seperti Crazy Bump tetap saya butuhkan untuk modifikasi Normal Map atau Ambient Occlusion apabila output dari DDO atau 3d Coat belum sesuai selera saya. Step diatas akan saya jabarkan di artikel ini meskipun tidak meng-cover keseluruhan fitur per aplikasi secara komplit (karena scope nya terlalu besar).

Di tutorial ini nanti kita akan belajar; bagaimana mengaplikasikan material ID di 3ds Max, bagaimana mem-bake menggunakan XNormal, bagaimana membuat folder kerja yang mudah, bagaimana membuat color ID di Photoshop, kemudian bagaimana membuat tekstur di DDO. Hingga akhirnya bagaimana kita mengaplikasikan PBR di Maya dan Blender.

Setelah file berhasil Anda unduh, Anda bisa membuka nya di 3ds Max. Perlu diingat bahwa model ini adalah low-poly, artinya jumlah poligon sangat terbatas dan sesuai pada game engine saat ini. Poligon dengan jumlah yang banyak memungkinkan lebih berat sistem untuk bekerja dan tidak sesuai dengan game engine dan spesifikasi komputer. Jika Anda bergerak di dunia game development, seharusnya tahu akan isu seperti ini.

Setelah Anda buka, untuk memastikan saja, satu objek tersebut dibagi menjadi beberapa parts. Nanti parts akan di bake satu persatu.

Export parts demi parts tersebut ke dalam sebuah folder dengan nama “to XNormal”. Maksudnya adalah objek-objek tadi akan kita pakai ke aplikasi XNormal. Sebenarnya aturan penamaan ini hanyalah kebiasaan saya saja mengingat nanti akan ada banyak objek, saya harus memberi nama yang cukup relevan. Kasih nama objek per objek tadi misalnya; “lowpoly1”, “lowpoly2” dan seterusnya. Export bisa menggunakan export selected (pilih objek > File > Export > Export Selected). Export semuanya ke .obj

export.PNG

Berikutnya untuk mendapatkan hasil ambient occlusion yang pas, Anda membutuhkan setidaknya 2 plane atas dan bawah objek. Buatlah 2 plane di 3ds Max dan tempatkan di bagian atas dan bawah objek seperti pada gambar dibawah. Berikanlah jarak yang rada jauh diantara kedua objek. Export kedua objek plane tadi dan beri nama “plane”. Langkah export sama seperti kita export objek mesin sebelumnya.

plane.PNG

Pertanyaan kemudian muncul: “Kenapa kita membutuhkan high-poly dan bukannya low-poly untuk mendapatkan ambient occlusion?”. Dalam beberapa kasus, misalnya kita membutuhkan retakan pada objek, retakan tersebut cukuplah ada di high-poly untuk kemudian kita ambil bayangannya. Jika retakan tadi (yang cukup banyak memiliki tris/poligon) diaplikasikan juga dalam low-poly, game yang Anda ciptakan akan semakin berat dan tidak efektif. Sebetulnya sah saja Anda mem-bake dengan kedua objek low. Namun semua balik lagi ke desain Anda. High poly bisa dibuat di ZBrush, misalnya Anda ingin membuat tekstur monster untuk kulit monster low-poly Anda. Kemudian output Zbrush tadi dikenal dengan high-poly dan di bake ke low-poly objek. Hasil low-poly yang sudah di bake tersebut akan memiliki bayangan yang serupa dengan high-poly tadi tanpa melibatkan poligon yang berlebih. Di akhir tutorial ini, saya akan memberikan objek gratis untuk Anda coba menggunakan high-poly sungguhan, sebagai bahan latihan Anda.

Sekarang, untuk mendemonstrasikan low-poly bisa di bake ke low-poly, pilih semua objek tadi di 3ds Max Anda. Pilih semuanya, bukan parts per parts seperti yang kita lakukan sebelumnya. Jika semua objek mesin tadi sudah terpilih, klik File > Export > Export Selected dan export ke .obj seperti yang sudah kita lakukan sebelumnya. Kemudian beri nama “highPolyTest”

Oke, sekarang buka aplikasi XNormal Anda. Di pojok kanan atas, klik ‘High Definition Meshes’. Klik kanan di area kosong/hitam kemudian pilih Add meshes. Oleh karena Anda memilih High Definition Meshes, Anda butuh objek untuk dipantulkan bayangannya ke objek low-poly Anda. Pilih file obj yang kita jadikan high-poly dengan nama “highPolyTest” yang kita buat sebelumnya.

xnormal.PNG

Kemudian masih di area hitam yang sama, klik Add meshes sekali lagi dan import “Plane” yang sudah kita buat sebelumnya.

Sekarang masih di XNormal, pindah ke “Low Definition Meshes”. Klik kanan di area kosong kemudian pilih Add meshes, kali ini kita akan ambil low-poly mesh. Pilih file “lowpoly1” seperti yang kita buat sebelumnya.

Masih di XNormal, sekarang di sebelah kanan, klik “Baking options”. Centang “Normal Map” dan “Ambient Occlusion” di list sebelah kiri. Tentukan ukuran/size yang ingin Anda hasilkan (saya menggunakan 1024 x 1024) dan tentunya lokasi tempat dimana hasil bake tersebut saya save. Saya men-save nya kedalam folder bernama “from XNormal” agar suatu saat saya mudah mencari nya. Pastikan padding = 0.

Jika sudah, cek kembali kemudian klik tombol “Generate Maps” dibawah. Anda akan membutuhkan waktu agar semuanya selesai. Jadi, mari kita seruput kopi dan ngerokok dulu.

hasil ao1.PNG

Jika langkah Anda benar, maka tampilan seperti gambar diatas akan muncul. Ya, itu hasilnya. Beberapa image diatas tampak sepertinya kepotong bukan? Itu karena ada parts lain bertubrukan selama proses rendering tadi. Oleh karena high-poly kita menggunakan banyak parts jadi satu, maka XNormal akan mengenali nya dan mem-bake keseluruhan parts menjadi satu kedalam low-poly. Masih bingung? Sekarang coba langkah dibawah.

Jika, Anda membuat high-poly yang terpisah pula dan bukan keseluruhan objek, maka hasil seperti dibawah akan Anda dapatkan.

hasil ao2.PNG

Terlihat bedanya bukan? Sebenarnya terserah Anda mau menggunakan yang mana. Namun dalam beberapa kasus, mungkin Anda ingin menggeser beberapa parts. Jika Anda menggunakan yang pertama, maka hasilnya akan kacau. Ingat, itu adalah bayangan pasif, Artinya dengan Anda menggeser, bayangan tadi sudah berupa file PNG atau JPG. Namun jika Anda tidak memiliki niat untuk menggeser parts pada mesin tadi, sebenarnya sah saja menggunakan hasil bake pertama.

Permasalahan : Jika saya menggunakan hasil bake kedua dimana semua parts low dan high dipisah, itu artinya tidak ada bayangan pada objek yang bertubrukan. Beberapa aplikasi seperti 3d Coat memiliki fitur untuk generate Ambient Occlusion. Ketika di export, bayangan yang sudah ada sebelumnya (hasil dari XNormal) juga akan ikut di generate menjadi lebih hitam di 3d Coat. Permasalahannya adalah, sesuai pengalaman saya, beberapa sudut akan terlihat jauh lebih gelap dari yang lain (karena beberapa sudut ada yang di bake dan ada yang tidak). Alhasil bayangan-bayangan tadi menjadi tidak imbang. Sebenarnya, di 3d Coat Anda juga bisa melewati proses import ambient occlusion dan menciptakan sendiri AO dari 3d Coat. Jadi ini terserah Anda.

Jika sudah, klik Close karena file image tadi sudah di save.

Catatan : Jika hasil Anda terlalu gelap, mungkin plane Anda terlalu lebar atau terlalu dekat. Jauhkan dan kecilkan ukurannya kemudian export dan bake ulang di XNormal. Tentu ini akan membutuhkan waktu lama. Jadi kata siapa pekerjaan ini menyenangkan 🙂

Lakukan proses baking menggunakan XNormal untuk parts low-poly yang lain. Ingat untuk membuat nama file yang mewakili objek nya supaya Anda tidak bingung nantinya.

Nantikan kelanjutan tutorial ini di part kedua. Stay tuned dan jangan lupa share ke teman-teman Anda apabila mereka membutuhkan.