tedypratomo.files.wordpress.com€¦ · Web viewContoh Ray Tracing Sederhana. Ada dua konsep yang...
Transcript of tedypratomo.files.wordpress.com€¦ · Web viewContoh Ray Tracing Sederhana. Ada dua konsep yang...
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”.