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”.