RenderMan – Tools Behind Piper Short Animation
Piper adalah sebuah film pendek yang memukau, sebuah film yang memungkinkan anda untuk mengagumi keindahan gambar dan keajaiban teknologi. Seperti film Pixar lainnya, fokus film ada pada cerita yang luar biasa dan disini RenderMan (render engine milik Pixar) memungkinkan para artist menciptakan kreatifitas yang melebihi batas.
Piper berkisah tentang seekor burung pemberani yang mengatasi berbagai persoalan rumit dengan cara yang kreatif dan kolaboratif, ini adalah sebuah pararel antara tantangan dan solusi yang dihadapi oleh development team Piper.Untuk pertama kalinya, ini adalah project pertama Pixar yang berasal dari departemen teknis, yang bertanggung jawab dalam menciptakan teknologi untuk setiap gambar dalam film Pixar.
Piper merupakan satu-satunya short movies yang dimulai dibawah render engine REYES sebelum pindah ke RIS. Proses pengerjaanya pun dimulai dengan fitur raytracer hybrid yang dimiliki oleh REYES. Pada waktu itu, tim mendapatkan hasil yang bagus dan cara shading dan lighting tradisional baru saya muncul, seperti displacement maps, shadow maps, sub surface scattering dan point clouds untuk global illumination, tapi begitu tim produksi bekerja menggunakan render engine RIS semuanya berubah. “Hasil pertama kami dalam RIS sangat menjanjikan, karakter dan environment terlihat menyatu dan berasal dari dunia yang sama”, kata Erik Smith lighting TD (Technical Director) dalam Piper. “Kita tidak lagi membuat pencayahaan terpisah untuk setiap karakter dalam shot, ini membuka kebebasan dalam ber kreatifitas karena kami punya waktu lebih dalam menyelesaikan sebuah shot”.
(Tampilan di viewport Houdini (atas) dan hasil akhir (bawah))
Tim juga mampu membuat cahaya dalam shot dan menentukan shading berdasarkan perilaku di dunia nyata. “beberapa cara untuk mengatasi kesulitan teknis akhirnya berubah menjadi sesuatu yang benar-benar berbeda”, contohnya dalam membuat pasir pantai. “Biasanya kami akan membuat displacement maps dan beberapa shading untuk mendapatkan pasir pantai yang detail”, ujar Brett Levin, tools developer. “Tapi kami memutuskan untuk melihat sejauh mana kemampuan RIS”, “dan RIS berhasil, akhirnya team bisa mengisi pantai tersebut dengan butiran pasir yang detail”
Setiap shot dalam film Piper, terdapat jutaan butiran pasir. Masing – masing butiran pasir memiliki 5000 poligon. Butiran pasir tidak dibuat dengan bumps atau displacement maps melainkan dengan bantuan procedural generator model Houdini. Displacement merupakan opsi pertama dalam membuat pasir, namun setelah berkali-kali tes, kami membutuhkan setidaknya resolusi pasir sebesar 36 kali dari ukuran normal (ukuran normal 1024×1024), cara ini tidak efisien, sehingga kami mulai memikirkan cara lain untuk membuat butiran pasir.
(setiap butiran debu di buat model-nya secara terpisah)
Butiran pasir dibuat dengan software Mudbox yang menghasilkan sebuah displaced mesh, kemudian di generate di Houdini menggunakan Poisson Distribution Model. Butiran pasir disimulasikan menggunakan solver dalam Houdini yang menghasilkan sebuah layer pasir diatas mesh tersebut. Cara ini dihasilkan dengan kombinasi angle dan jarak kamera, sehingga membuat variasi ketebalan pasir untuk efisiensi yang lebih baik.
(hasil dari Poisson Distribution Model)
RenderMan Primvars membantu kami dalam membuat variasi shading pasir dari parameter kering ke basah, ini memberikan tim shading untuk mengkontrol shading dengan hanya 12 jenis butiran pasir. Butir pasir diperbanyak dengan bantuan geo instance dan point clouds, dua fitur itu bisa ditemui di Pixar USD (Universal Scene Description) yang sekarang bisa dinikmati sebagai open source.
(beberapa bagian tepi pantai)
“Render sebuah data set sebesar ini merupakan tantangan tersendiri, tapi kami mampu mempermudah dengan membuat raydepth 128, yang mana mustahil dilakukan dengan teknologi sebelumnya” kata Brett Levin. Ini membuat render terlihat sangat realistis tapi tidak memakan resource terlalu banyak, RIS memungkinkan kami dalam mengerjakan sebuah scene yang sangat besar. “Kami bisa mencoba cara baru dan inovatif dalam menyelesaikan setiap masalah di setiap shot menggunakan pendekatan fisik, mempercayakan hal ini ke RIS merupakan keputusan yang sangat penting”.
Warna pasir diambil dari palet yang di generate lewat foto pantai di siang hari, dari gambar itu kami membuat berbagai jenis shader, bervariasi antara shell, stone dan refractive glass. Diantara itu juga harus ada shader untuk butiran pasir yang kering sampai basah untuk mensimulasikan butiran pasir yang realistis.
(cahaya dari pasar di simulasikan menggunakan Light Transport)
Tantangan lain ada di bagian Mach Bands yang merupakan sebuah ilusi optik yang melebih-lebihkan perubahan pada kontras, sehingga menghasilkan gambar pasir yang tidak bagus. Tim kemudian membuat solusi menggunakan teknik dithering (membuat warna & shading tambahan dari palet yang ada dengan menyebar pixel dengan warna yang berbeda).
Berdasarkan garis pantai setiap butiran pasir dapat berbeda satu sama lain. Membuat perbedaan pada butiran pasir merupakan tantangan yang menarik. Tim kami akhirnya memisahkan pasir menjadi tiga kategori utama yakni pasir basah, lembut dan kering.
(perbandingan butiran pasir CG (kiri) dan foto (kanan))
Kami juga menciptakan constraint pada tiap butiran pasir untuk mengatur tingkat kelengketan-nya, namun memungkinkan kami dalam mendapatkan efek pasir yang bisa terpecah. Setelah memanipulasi berbagai macam solver dalam software Houdini, kami berhasil memisahkan perbedaan antara keduanya untuk di simulasikan dan dianimasikan menjadi hasil yang dapat di prediksi.
(beberapa referensi tingkat ‘kebasahan’ pasir pantai)
Untuk membuat air dan busa, kami menggunakan Houdini FLIP Solver, untuk timing ombak tim kami menganimasikan sebuah bentuk ombak sederhana yang nantinya akan dijadikan acuan partikel dalam bergerak. Kemudian dengan bantuan FX, kami mengatur ketebalan arus air. Barulah kami mencoba simulasi air resolusi rendah dengan bantuan FLIP. Terakhir, beberapa area dari ombak akan dipilih sebagai wadah sebagai tempat simulasi resolusi tinggi. Kadang kala retiming ombak diperlukan untuk menjaga sifat artistik dari ombak itu sendiri.
(perbedaan ‘tension antara pasir kering (atas) dan basah (bawah))
Shading busa dibuat dengan bantuan volume surface shader, yang dirender dengan lebih dari 100 ray depth bounce. Ini memberikan efek refraksi cahaya pada partikel busa supaya terlihat realistik dengan gelembung. “RenderMan sangat menyukai tantangan ini, kami benar-benar menggantungkan semuanya kepada cahaya untuk menghasilkan busa dan pasir yang realistis. RIS benar-benar bagus dalam memproses sesuatu yang kompleks”, jawab Erik Smith.
Beberapa solusi untuk gelembung yang meletus digunakan juga seperti GIN, Pixar system untuk membuat sebuah bidang dalam bentuk 3D, begitu juga pattern untuk busa-nya. Gelembung kecil ini kemudian akan dibawa ke permukaan air. Untuk menambahkan densitas pada gelembung, kami membuatnya dengan menumpuk beberapa gelembung yang identik.
(Piper Water Simulation Breakdown)
Beberapa trik shading yang kami gunakan dalam mengatasi berbagai problem di simulasi air menimbulkan sebuah efek yang kami sebut sebagai Meniscus, dimana ada bentuk yang tidak di inginkan bertemu di pantai. Untuk bisa mengatasi masalah ini, tim membuat duplikat geometri pantai secara keseluruhan dengan menggunakan dynamic IOR untuk transisi antara pasir basah dan lembut. Cara ini mengatasi ketidakpresisian dalam membuat lipatan air yang natural.
(Piper Foam Simulation Breakdown)
Dengan mengkombinasikan air yang dibuat secara prosedural di Houdini, tim kami dapat memakai hasilnya untuk membuat pattern gelombang sebagai sebuah gambar displacement di Katana. Cara ini memberikan sentuhan artistik pada bagian lepas pantai.
(Water Ripple Displacement Houdini to Katana)
Piper sesungguhnya dibuat dengan kamera makro dan tim akan menggunakan DoF di Nuke dengan bantuan Deep Compositing Workflow, tapi akhirnya kami sadar bahwa RenderMan dapat me-render DoF dengan sangat baik, bahkan dengan tingkat akurasi tinggi yang sulit ditandingi oleh kemampuan post production. Untuk beberapa shot yang menggunakan DoF secara berlebihan, kombinasi beberapa teknik juga diperlukan, dimana kami akan menaruh hasil render kedalam geometri USD dan menambahkan blur dengan Deep Image Data sehingga menghasilkan gambar yang lebih stylize.
(Piper dipengaruhi oleh fotografi Makro)
Terakhir, untuk menghilangkan noise hasil raytracing, tim produksi dengan senang hati menggunakan fitur RenderMan terbaru yakni Denoise. Biasanya, permukaan dengan refraksi dan DoF yang tinggi membutuhkan sampling yang lebih tinggi untuk menghasilkan gambar yang jernih, tapi dengan Denoiser tim kami mampu meningkatkan kualitas refraksi dan DoF tanpa harus mengorbankan waktu render.
Akhir cerita, Piper berhasil mendorong RenderMan RIS technology ke level yang lebih tinggi sehingga membuka jalan baru bagi Pixar dalam berkarya.