Ray Tracing untuk “Larva”

advertisement
Ray Tracing adalah suatu metode untuk merender obyek 3D yang haslnya realistic seperti
foto. Dalam grafik komputer Ray Tracing sendiri adalah teknik untuk menghasilkan sebuah
gambar dengan cara mengikuti jejak (tracing) suatu sinar (ray) melalui pixel dalam gambar..
Metode ini dilakukan dengan cara menelusuri sinar mata atau sumber cahaya, kemudian diperiksa
apakah sinar tersebut mengenai obyek atau tidak. Jika sinar yang ditelusuri tersebut mengenai
suatu obyek maka selanjutnya diperhitungkan intensitas pada obyek tersebut, yatu intensitas
ambient, diffuse dan specular. Hasil dai perhitungan intensitas inilah yang terlihat oleh mata.
Sekarang kita bandingkan bagaimana penggunaan Ray Tracing banyak digunakan dalam dunia
Animasi dan Game yang sekarang ini memiliki grafik yang sangat mirip dengan kenyataannya,
atau biasa kita kenal dengan Objek yang Realistik.
Contoh Ray Tracing Sederhana
Ada dua konsep yang menjadi dasar teori untuk ray tracing,yaitu :
Kita dapat melihat sebuah benda karena benda tersebut memantulkan cahaya. Cahaya yang
dipantulkan tersebut lalu akan ditangkap oleh retina mata dan diterjemahkan oleh otak menjadi
apa yang kita lihat.
Dalam perjalanan sebuah sinar, jika sinar tersebut menabrak suatu permukaan, dapat terjadi tiga
hal tergantung pada jenis permukaan yang ditabrak, yaitu penyerapan, pemantulan, dan pembiasan.
Sebuah permukaan dapat memantulkan semua atau sebagian dari sinar, baik ke satu atau banyak
arah. Permukaan tersebut juga dapat menyerap sebagian dari sinar, mengurangi intensitas sinar
yang terpantul atau terbias. Jika permukaan tersebut mamiliki sifat tembus cahaya
(transparency/translucent) maka permukaan itu akan membiaskan sebagian sinar dan menyerap
sebagian atau semua spektrum sinar, sehingga dapat mengubah warna sinar.
Tetapi pada ray tracing umumnya sinar berasal dari mata pengamat, sedangkan pada kenyataannya
sinar selalu berasal dari sumber cahaya, sehingga terjadi perbedaan mendasar antara konsep
tersebut dengan ray tracing. Sehingga berdasarkan konsep tersebut terdapat dua jenis ray tracing,
yaitu eye based dan light based. Eye-based adalah ray tracing dimana sinar berasal dari mata
pengamat atau yang biasa disebut backward ray tracing, sedangkan pada light-based ray tracing,
sinar berasal dari sumber cahaya atau yang biasa disebut forward ray tracing.
Berikut penjelasan mengenai Forward ray tracing, Backward ray tracing dan Hybrid ray tracing.
Forward Ray Tracing/Light Ray Tracing/Photon Tracing
Metode ini memperhitungkan semua sinar dari sumber cahaya,baik yang mengenai mata ataupun
tidak.
Kelebihan dari metode ini adalah dapat memperoleh jumlah sinar yang lebih banyak daripada
metode backward ray tracing dimana sinar tersebut tidak bisa didapat jika hanya ditelusuri dari
mata. Metode ini juga bagus dalam menentukan keakuratan warna setiap objek dengan tepat.
Kekurangan dari metode ini adalah terkadang perhitungan menjadi tidak efekti dan sia-sia. Sebab
sinar yang dipancarkan oleh sumber cahaya tidak hanya berjumlah puluhan atau ratusan tetapi
berjulah jutaan atau bahkan lebih. Semua sinar yang dipancarkan tersebut harus ditelusuri dan
dihitung satu persatu, namun apabila setelah proses penelusuran dan perhitungan dilakukan, sinar
yang ditelusuri tersebut tidak mengenai mata, maka sinar tersebut akan diabaikan, yang berarti
akan ada banyak sekali perhitungan yag sia-sia. Selain itu untuk menghasilkan gambar yang
diinginkan akan membutuhkan banyak waktu.
Contoh Forward Ray Tracing
Dari gambar diatas terlihat bahwa penelusuran warna dilakukan mulai dari sumber cahaya, yaitu
matahari menuju mata, sehingga semua warna yang ditelusuri harus diperhitungkan. Dinamakan
Forward Ray Tracing atau dari sumber diteruskan ke tujuan.
Backward Ray Tracing/Eye-based Ray Tracing
Untuk membuat Forward ray tracing agar lebih efektif, maka diperkenalkan metode
backward ray tracing. Backward Ray tracing menggunakan penelusuran sinar dari mata. Sinar
dipancarkan dari mata ke arah setiap pixel yang membentuk layar gambar dan kemudian
diteruskan ke obyek-obyek yang akan digambar. Jika sinar yang melalui suatu pixel tersebut
mengenai suatu obyek maka dilakukan perhitungan intensitas pada titik tabrak obyek tersebut.
Intensitas hasil perhitungan tersebut digunakan untuk memberi warna pada pixel tersebut.
Perhitungan intensitas yang dilakukan adalah dengan memperhitungkan warna benda dan nilai
pencahayaan yang mengenai benda tersebut. Jika pixel tidak mengenai benda maka akan diset
menjadi warna background, dimana default warna background adalah warna hitam.
Proses penelusuran ini dilakukan untuk setiap pixel dari ukuran layar penggambaran, sehingga
apabila penelusuran dilakukan pada layar penggambaran yang besar makan dibutuhkan waktu
yangg lama untuk melakukan perhitungan, begitupun sebaliknya.
Selain itu proses backward ray tracing yang harus dicermati adalah apabila sinar mengenai suatu
benda dan terdapat benda lain dibelakangnya, maka perhitungan akan dilakukan pada saat cahaya
menabrak benda yang pertama, karena jelas benda kedua yang letaknya dibelakang terhalangi oleh
benda pertama yang pasti tidak akan terlihat.
Contoh Backward Ray Tracing
Pada gambar ini tampak bahwa sinar yang berasal dari sumber cahaya terus ke mata dan kemudian
dari titik mata, sinar tersebut ditelusuri kembali. Sinar yang ditelusuri kembali ternyata menabrak
benda, pada saat menabrak inilah maka nilai pixel pada frame buffer akan dihitung dengan
memperhitungkan semua nilai ambient/diffuse/specular dari semua cahaya yang ada.
3. Hybrid Ray Tracing
Dari kedua contoh diatas yaitu forward ray tracing dan backward ray tracing memiliki
kelemahannya masing-masing. Baru-baru ini dilakukan penelitian untuk mengembangkan solusi
hybrid, dimana solusi ini memperbaiki performa kecepatan dan keakuratan dari metode forward
dan backward. Pada hybrid ini hanya pada tingkat tertentu saja forward tracing akan diterapkan.
Algoritma pada metode forward ray tracing akan menyimpan data, kemudian akan dilanjutkan
dengan menggunakan metode backward ray tracing. Pada akhir pewarnaan akan digunakan dua
metode forward dan backward, 3 solusi besar hybrid telah diusulkan selama bertahun-tahun, 3
gambar tesebut adalah produksi ulang dengan izin berdasarkan Stanford Computer Graphics.
Contoh Ray Tracing:

Pemantulan
Pemantulan pada Ray Tracing
Jika permukaan yang ditabrak sinar adalah permukaan yang memantulkan cahaya seperti
cermin, ray tracer harus menentukan warna titik perpotongan tersebut dengan
memperhitungkan warna permukaan dan warna yang terpantul pada titik tersebut. Hal itu
dilakukan dengan menentukan arah sinar pantulan dan membuat sinar baru yang bergerak
sesuai arah tersebut.

Tembus Cahaya
Pembiasan pada Ray Tracing
Tembus cahaya memiliki sifat yang mirip dengan pemantulan, tapi sinar tidak
dipantulkan pada permukaan, melainkan dibiaskan di dalam objek yang
bersangkutan. Arah sinar bias ditentukan berdasarkan indeks bias benda tersebut,
jumlahnya bisa lebih dari satu atau tidak ada sama sekali. Sinar baru akan dibuat
dengan arah sinar bias.

Bayangan
Pengecekan Bayangan pada Ray Tracing
Untuk menentukan apakah titik perpotongan dengan permukaan berada dalam suatu
wilayah bayangan dilakukan pemeriksaan antara titik tersebut dengan semua sumber
cahaya. Hal ini dilakukan dengan membuat sinar-sinar baru dari titik ke sumber cahaya.
Jika ada objek diantara titik dan sumber cahaya, maka titik tersebut tidak akan mendapat
cahaya dari sumber yang bersangkutan, dengan kata lain, titik tersebut berada dalam
bayangan. Contoh dapat dilihat pada gambar 4 diatas, titik pada objek 1 mendapat
bayangan dari sumber cahaya 2, dan mendapat cahaya dari sumber cahaya 1.
Ray Tracing dalam Animasi
Animasi dan kemajuan komputer mengalami kemajuan yang saling terkait akhir-akhir ini.
Kemajuan dalam komputer grafis termasuk perkembangang ray tracing telah membuka
kemungkinan baru dilapangan.
Secara tradisional animasi dibuat dengan menggambarkaan frame-frame dengan menggunakan
tangan,yang lambat laun digantikan oleh kemajuan komputer, sehingga komputer grafis memiliki
andil yang besar dalam proses perkembangan animasi saat ini.
Teknik Ray Tracing dapat sangat optimal untuk menambahkan efek “mewah” seperti refleksi dan
bayangan yang terkadang sulit dilakukan serta memakan banyak waktu.Teknologi grafis juga
mampu merendering gambar yang fotorealistik.
Contoh grafis komputer dan ray tracing dalam animasi modern adalah refleksi canggih, bayangan,
dan specularity.
Movie Rendering Requirements
Persyaratan render di industri film yang sangat penting:

Adegan geometri terlalu besar untuk masuk di memori tessellated bentuk.

Banyak permukaan dipetakan perpindahannya.

Ada mungkin ribuan tekstur untuk parameter refleksi kontrol dan perpindahan.

Tidak akan dapat biaya ribuan sumber cahaya.

Semua iluminasi dan permukaan refleksi karakteristik dikendalikan sepenuhnya oleh
program, kompleks shaders.
Selain itu, gambar yang biasanya diberikan pada resolusi tinggi dengan gerak kabur dan kedalaman
lapangan. Selain itu, tidak temporal atau spasial aliasing diterima: tangga tidak ada efek,
“crawlies”, popping, dll.
Banyak timbul pertanyaan “Mengapa Ray Tracing ?”
Dalam dunia animasi sendiri ada beberapa alasan mengapa para Direksi perfileman banyak yang
menggunakan Ray Tracing dalam membuat animasinya. Seperti di contoh kali ini penggunaan Ray
Tracing dalam film “Larva”
Beberapa alasan berikut ini mewakili pertanyaan tersebut, mengapa dalam animasi Larva
menggunakan Ray Tracing.
 Realistis dalam merefleksikan
 Memiliki bayangan yang tajam
 Dapat merefleksikan isyarat virtual untuk membentuk pantulan dari karakter larva
Karena ray tracing memungkinkan visualisasi yang nyata dari pencahayaan. Dengan cara ini, kita
menghitung hanya informasi yang dibutuhkan untuk membangun gambar. Untuk membuat
gambar menggunakan ray-tracing, prosedur berikut ini dilakukan untuk setiap pixel pada layar.
Ray adalah ditelusuri kembali dari posisi mata, melalui pixel pada monitor, sampai memotong
dengan permukaan. Kita tahu reflektifitas permukaan dari uraian materi, tapi kita belum tahu
jumlah cahaya yang mencapai permukaan itu.
Untuk menentukan pencahayaan total, kita melacak sinar dari titik persimpangan ke setiap sumber
cahaya di lingkungan (bayangan sinar). Jika ray untuk sumber cahaya tidak terhalang oleh objek
lain, maka kontribusi cahaya dari sumber yang digunakan untuk menghitung warna permukaan.
Namun jika permukaan yang mengkilap berpotongan atau transparan, kita juga harus menentukan
apa yang dilihat di atau melalui permukaan sedang diproses.
Dua langkah sebelumnya diulang dalam arah yang dipantulkan (dan dalam kasus transparansi,
ditransmisikan) sampai permukaan lain yang dihadapi bertumpu dengan warna pada titik
persimpangan selanjutnya dihitung dan faktor ke titik awal.
Jika permukaan kedua juga reflektif atau transparan, maka sinar-tracing mengulangi proses, dan
seterusnya sampai jumlah maksimum iterasi tercapai atau sampai permukaan tidak lebih banyak
yang berpotongan.
Sekarang kita bandingkan lingkungan pemetaan biasa dengan yang menggunakan ray tracing.
Kita lihat peta lingkungan di gambar sebelah (kiri) yang tidak menangkap refleksi seperti pantulan
badan larva di atas air seperti yang tampak pada gambar sebelah (kanan) yang menggunakan ray
tracing.
Gambar kanan merupakan objek dengan pemetaan lingkungan
dan sebelah kiri merupakan obejk dengan pemetaan lingkungan serta refleksi ray tracing.
Bayangan yang ada pada objek sebelah kanan memberi isyarat kuat tentang pencahayaan dan
penempatan objek relatif terhadap satu sama lain.
Dengan algoritma scanline tradisional menghitung bayangan menggunakan bayangan maps, dan
masih banyak kasus dimana peta bayangan merupakan cara yang paling efisien untuk
menghasilkan kualitas tinggi pada bayangan. Namun, beberapa adegan di film ‘Larva’
menggunakan set luas tetapi juga memiliki beberapa hal kecil tentang penerapan geografi.
Hal ini dapat menyebabkan masalah resolusi di bayangan maps. Selain itu, banyak adegan berisi
ribuan sumber cahaya, sehingga menjaga tracing file peta bayangan dapat menimbulkan suatu
masalah.
Seperti pada adegan dimana larva kuning yang bernama Yellow melihat sorotan sinar matahari.
Ini merupakan salah satu contoh dari adegan yang memerlukan perefleksian bayangan yang sangat
halus dan detail. Di adegan ini terdapat hampi puluhan sudut pemantulan cahaya, dan satu titik
sorotan cahaya yang bersar menjadi sumber cahaya. Dengan menggunakan ray tracing masalah
tersebut dapat diatasi.
Penggunaan lain ray tracing adalah untuk pemadatan ambien. Ambien oklusi adalah ukuran dari
seberapa banyak cahaya mencapai titik dari hemisfer yang seragam menyala. Pemadatan ambien
luas digunakan dalam produksi film karena memberikan indikasi yang baik dari lipatan pada
permukaan dan spasial kedekatan objek, dan .hanya memerlukan biaya yang sedikit. Ambient
kemacetan adalah biasanya dihitung dengan menembak banyak sinar untuk mencicipi cakupan
belahan di atas setiap titik.
Ray Tracing untuk “Larva”
Pada gambar dibawah ini menampilkan “Sisi Artistik” dari dua karakter film ‘Larva’ini. Gambar
ini menampilkan pantulan cahaya, bayangan, dan bagian lingkungan yang terhalang yang telah di
“Ray Tracing“.
Gambar: Karakter yang menggunakan efek ray tracing, karakter Yellow (kiri) dan Red (kanan)
Pada permukaan yang melengkung di bagian badan bawah larva, pantulan pada jarak yang jauh
tidak perlu hasil yang akurat. Apabila melakukan pengambilan gambar dengan jarak yang jauh
dan objek yang banyak, jarak cahaya yang dapat mengenai permukaan dapat kita atur sesuai
dengan hasil pantulan yang diinginkan, dan apabila kita buat jarak maksimumnya 10 meter. Maka
jika cahaya mengenai objek apapun dalam jarak tersebut akan menggunakan menggunakan peta
lingkungan yang tersedia.
Pada pantulan cahaya di dalam film biasanya dibatasi oleh pantulan cahaya satu tingkat. Hanya
beberapa scene saja yang menggunakan pantulan cahaya dua tingkat, pada scene
Pada gambar diatas, menampilkan beberapa karakter pada film ‘Larva’. Ini adalah contoh dari
scene yang sangat kompleks karena menampilkan banyak objek-objek yang berkilau. Dimana
masing-masing karakter menampilkan objek lainnya. Dimana masing-masing semut menampilkan
pantula semut lainnya, seperti yang terlihat pada objek semut terdepan. Pada gambar ini juga
menunjukan bayangan dan lingkungan yang telah di “ray tracing”.
Download