Sejak NVIDIA merilis VGA seri RTX dengan arsitektur Turing, ray tracing menjadi topik yang hangat untuk dibahas oleh kalangan gamer. Ada yang berpendapat bahwa ray tracing membuat atmosfer dalam game lebih terasa dan realistis. Di sisi lain, ada yang mengatakan bahwa peningkatan grafis yang diberikan oleh ray tracing tidak sebanding dengan penurunan performa yang ada. Mungkin perdebatan ini memunculkan banyak pertanyaan bagi Anda. Oleh karena itu, penting untuk memahami apa itu sebenarnya ray tracing dan bagaimana efeknya di dalam dunia gaming.
Apa Itu Ray Tracing ?
Sebelum mengenal lebih lanjut mengenai ray tracing, akan lebih mudah apabila Anda melihat contoh nyata ray tracing di dalam game. Berikut demo Battlefield V, salah satu game AAA pertama yang menggunakan ray tracing.
Pada dasarnya, ray tracing adalah teknik render yang bekerja dengan cara mensimulasikan sinar cahaya (ray) menggunakan algoritma untuk memperhitungkan jejak yang akan dilalui oleh sinar tersebut seperti pada dunia nyata. Karena real-time ray tracing masih dianggap belum optimal dalam dunia gaming, teknik rasterization masih luas digunakan sebagai teknik render dalam game. Meskipun demikian, keduanya memiliki keunggulan masing-masing.
Rasterization ini mampu me-render suatu objek 3 dimensi ke dalam layar 2 dimensi dengan waktu yang cepat dan hasil yang bagus. Berbeda dengan rasterization, ray tracing dapat memberikan bayangan, pantulan cahaya, dan pembiasan cahaya yang sangat realistis. Grafik yang realistis inilah yang membuat ray tracing luas digunakan dalam film-film modern.

Meskipun demikian, teknik ray tracing ini membutuhkan komputer “bertenaga” besar. Oleh karena hal itu, umumnya kedua teknik ini digunakan bersama-sama dalam film. Daerah/ objek yang sering dilihat atau menjadi objek utama dapat di-render dengan menggunakan ray tracing, sedangkan objek lainnya yang kurang penting dapat di-render menggunakan rasterization.
Mengetahui Sejarah Singkat Ray Tracing
Sebenarnya, ray tracing sudah mulai muncul dalam dunia komputer sejak tahun 1960-an. Seiring berjalannya waktu, banyak ide-ide yang telah disampaikan mengenai implementasi ray tracing dalam dunia komputer. Ide-ide tersebut akan kita bahas pada bagian cara kerja ray tracing.
Penggunaan ray tracing untuk pertama kalinya muncul dalam film Compleat Angler (1979) yang diproduksi oleh Turner Whitted, seorang insinyur di Bell Labs. Meski demikian, ray tracing belum dipakai sepenuhnya dalam pencahayaan film-film besar. Pencahayaan dalam skala besar umumnya masih menggunakan bantuan lampu dalam studio.

Pada tahun 2013, film Monsters University yang diproduksi oleh Pixar akhirnya mampu menerapkan ray tracing untuk semua efek cahaya dan bayangan. Namun di balik efek yang realistis tersebut, Susan Fong, direktur bagian technical rendering, mengatakan bahwa untuk merender beberapa frame diperlukan 29 jam untuk setiap framenya. Semua itu dilakukan menggunakan super komputer dengan 55.000 core. Hal ini tentu menunjukkan seberapa beratnya teknik rendering menggunakan ray tracing.
Selain berat, penggunaan ray tracing pada film bukanlah real time. Mereka dapat me-render frame-frame dengan waktu yang lama sebelum akhirnya dirilis menjadi satu film yang lancar.
Berbeda dengan film, apabila ray tracing ingin diterapkan pada video game, rendering harus dilakukan secara real-time. Maksudnya, semua proses rendering dengan teknik ray tracing harus dilakukan dalam sekejap agar kita memperoleh performa yang layak.
Setelah 10 tahun lamanya NVIDIA melakukan penelitian mengenai real-time ray tracing ini, pada tahun 2018 impian NVIDIA dapat terwujud. Dengan dirilisnya VGA seri RTX, orang awam akhirnya dapat merasakan real-time ray tracing di dalam game seperti Battlefield V, Metro Exodus, Call of Duty: Warzone, dll.
Bagaimana Cara Kerja Ray Tracing?
Hal penting yang perlu Anda ketahui mengenai ray tracing ini adalah cara kerja sinar yang “dibalik”. Kita dapat melihat suatu objek karena sinar dari sumber cahaya bergerak memantulkan cahaya ke mata kita. Akan tetapi, di dalam ray tracing ini, kita melacak pergerakan sinar tersebut dari mata kita ke sumber cahaya.
Cara kerja dari ray tracing sebenarnya sudah lama dicetuskan oleh Arthur Appel pada tahun 1968. Ide dari Apel tersebut dapat Anda lihat melalui ilustrasi berikut.

Ray tracing bekerja dengan mengikuti jejak dari mata pengamat/ kamera (Rays from the eye) melalui pixel-pixel dalam suatu layar. Layar ini berbentuk bidang datar dan tegak lurus dengan arah mata pengamat/ kamera. Selanjutnya komputer akan memperhitungkan warna dari objek yang terlihat melalui pixel pada layar tadi.
Pada ilustrasi di atas, Anda akan melihat tanda panah atas (view ray) mengenai bola lalu dipantulkan ke sumber cahaya. Karena mengenai sumber cahaya, maka warna dari bola tersebut dapat Anda lihat. Sebaliknya, pantulan tanda panah pada bagian bawah (shadow ray) tertutup oleh bola sehingga terbentuk bayangan.
Meskipun Appel sudah menjelaskan idenya mengenai cara kerja ray tracing, penggunaan sinar (ray) dalam membentuk gambar objek mengalami perkembangan. Ada 3 teori yang menjelaskan cara sinar dapat menggambarkan suatu objek yang dikenainya.
Classical Ray Tracing
Ide pertama adalah Classical Ray Tracing pada tahun 1980. Berikut ilustrasi ray tracing dari teori tersebut.

Classical Ray Tracing menekankan 2 hal dalam penerapannya, yaitu refleksi (pemantulan) dan refraksi (pembiasan) dari sinar (ray). Dari mata pengamat, sinar akan disorotkan ke objek. Pada titik di mana sinar mengenai objek, sinar akan dilanjutkan lagi menuju ke sumber cahaya. Hal inilah yang akan menentukan apakah objek akan menampilkan warna (sinar ke sumber cahaya tidak terhalang apapun) atau membentuk bayangan (sinar ke sumber cahaya terhalang oleh suatu objek). Selanjutnya, di titik yang sama sinar akan dipantulkan dan dibiaskan. Kedua hal ini bergantung pada tekstur permukaan benda.
Pada ilustrasi di atas ketika sinar mengenai kaca untuk pertama kalinya, cahaya dipantulkan ke bawah sekaligus di biaskan ke sisi kaca yang lainnya. Sinar juga disorotkan ke sumber cahaya tanpa ada halangan apapun, sehingga bagian depan kaca dapat terlihat jelas. Hal lain yang perlu Anda lihat adalah sinar yang dipantulkan oleh “diffuse box” menuju ke sumber cahaya. Sinar tersebut tidak sampai ke sumber cahaya karena terhalang oleh sebuah objek. Terhalangnya sinar ini akan memberikan bayangan pada objek “diffuse box” tersebut.
Distributed Ray Tracing
Selanjutnya, muncul teori Distribusi oleh Cook Stochastic pada tahun 1984. Perbedaan teori Distribusi ini dengan Classical Ray Tracing hanyalah jumlah sinar (ray) yang disorotkan ke ojek.

Dasar dari Teori Distribusi ini adalah menembakkan sejumlah sinar (ray) pada objek yang sama. Dengan demikian, kita dapat melihat lebih detail permukaan suatu benda serta memungkinkan efek motion blur.
Pada ilustrasi di atas, Anda dapat melihat bahwa objek disorot dengan 3 sinar (ray) yang kemudian dipantulkan ke arah sumber cahaya. Satu dari 3 sinar (ray) tersebut terhalang oleh objek lainnya, sedangkan yang lainnya tidak. Dari sini kita dapat memperkiran bahwa objek tersebut memiliki efek bayangan yang halus. Keuntungan dari teori Distribusi ini adalah kualitas tekstur dan warna yang lebih baik dari metode ini (Distribusi). Akan tetapi semakin banyak sinar (ray) yang digunakan dalam ray tracing semakin besar pula kemampuan perangkat keras komputer yang dibutuhkan.
Path Tracing
2 tahun setelah Stochastic mencetuskan idenya, mucul teori “Kajiya-Style Diffuse Interreflection” oleh James Kajiya. Metode yang dimiliki oleh Kajiya ini sering juga dikenal dengan “Path Tracing”. Teori dari James ini diilustrasikan sebagai berikut.

Dengan metode Kajiya ini, sinar (ray) akan ditembakkan ke titik-titik yang berdekatan pada suatu objek. Karena setiap sinar (ray) akan memantul ke arah yang berbeda ,maka hasil yang diperoleh juga berbeda (ada yang terkena cahaya dan ada yang membentuk bayangan). Setiap lokasi titik-titik yang disorot cahaya tadi disimpan sebagai sampel pixel (kotak di sebelah kiri mata pengamat pada ilustrasi). Dari data pada kotak pixel tadi, komputer dapat memperhitungkan warna, tekstur, dan bayangan dengan tepat pada suatu objek tanpa harus menggunakan semua sinar (ray) pada ruangan/ area tersebut.
Dengan ketiga teori di atas, ray tracing terus berkembang hingga saat ini real-time ray tracing mampu direalisasikan oleh NVIDIA. VGA pada kelas konsumen tentu tidak memiliki kemampuan sebesar komputer-komputer yang digunakan untuk me-render film. Oleh karena itu, real- time ray tracing pada game digunakan untuk objek-objek yang utama/ sering terlihat saja. Objek-objek lain tetap menggunakan teknik rendering rasterization seperti pada game-game umumnya. Dengan cara ini, VGA tidak memperoleh beban yang sangat berat seperti komputer pada dunia perfilman.
Kesimpulannya, ray tracing dilakukan dengan menyorot sinar (ray) dari pengamat dan jejak dari sinar tersebut akan memberikan data bagi komputer mengenai suatu objek (warna, tekstur, bayangan). Karena jumlah sinar (ray) dalam suatu adegan/ scene yang sangat banyak pada umumnya, maka NVIDIA membuat real-time ray tracing terwujud dengan mengolah ray-tracing pada objek penting saja. Oleh karena itu, kedua teknik render ini (rasterization dan ray-tracing) digunakan bersama-sama dalam mengolah grafik dalam game.
NVIDIA membuat serangkaian video berisi tentang ray tracing yang diisi oleh Eric Haines, salah satu insinyur ternama NVIDIA. Untuk penjelasan lebih detail, Anda dapat melihat playlist video “Ray Tracing Essential” di bawah ini.
Mengapa Penggunaan Ray Tracing Masih Sangat Terbatas ?
Untuk saat ini, real-time ray tracing masih sangat terbatas pada VGA NVIDIA seri RTX dan VGA arsitektur Volta. Meskipun pada update driver WHQL 425.31 NVIDIA memberikan akses ray tracing pada VGA seri Pascal (kecuali GT 1030, GTX 1050, dan GTX 1060 3GB), arsitektur yang belum mendukung real-time ray tracing akan menmberikan dampak performa yang besar. Hal ini disebabkan oleh tidak adanya ray tracing (RT) core pada VGA-VGA sebelumnya. Ray tracing (RT) core ini memiliki peran yang spesifik untuk mempercepat kinerja VGA dalam me-render grafik dengan teknik ray tracing ini. Apabila Anda ingin mengetahui secara detail kinerja dari Ray tracing Core tersebut, Anda dapat mengunjungi video NVIDIA mengenai perangkat keras ray tracing.
Di samping ray tracing core, kelancaran real-time ray tracing ini juga dapat dipengaruhi oleh Tensor Core yang saat ini hanya dimiliki oleh VGA RTX dan Volta. Dengan adanya tensor core ini, NVIDIA mampu menggunakan teknologi DLSS ke dalam VGA.
DLSS atau Deep Learning Super-Sampling ini bekerja dengan menggunakan super komputer dari NVIDIA. Super komputer ini akan dilatih untuk mengolah suatu game pada resolusi yang sangat tinggi, lalu “mengepaknya” menjadi file berukuran kecil (beberapa megabyte) untuk nantinya dimasukkan dalam update driver NVIDIA. Singkatnya, DLSS ini dapat mendongkrak performa VGA RTX dan Volta termasuk dalam menjalankan ray tracing.
Perbandingan Performa VGA dalam Ray Tracing
Dengan rilisnya update driver WHQL 425.31 yang memperbolehkan VGA GTX untuk menyalakan real-time ray tracing di dalam game, NVIDIA juga melakukan test perbandingan performa di dalam 3 game. Ketiga game tersebut adalah Battlefield V, Metro Exodus, dan Shadow of The Tomb Raider.
Battlefield V

Metro Exodus

Shadow of the Tomb Raider

Dari ketiga game di atas, kita dapat melihat bahwa performa pada VGA GTX memiliki performa yang lebih rendah. Dalam hal ini, kita bisa melihat bahwa GTX 1080 Ti, salah satu VGA GTX terkuat, tidak dapat mengalahkan performa dari RTX 2060 ketika setting ray tracing (DXR) dinyalakan.
Hal lain yang mungkin cukup menarik adalah GTX 1660 dan GTX 1660 Ti. Meskipun keduanya telah menggunakan arsitektur Turing, kedua VGA tersebut tetap memiliki performa yang serupa dengan VGA seri Pascal. Alasan dari hal tersebut adalah tidak adanya ray tracing core di kedua VGA tersebut. Oleh karena itu, penting untuk diketahui bahwa tidak semua VGA Turing memiliki ray tracing core.
FAQ Seputar Ray Tracing
Catatan: Ray tracing yang dimaksud dalam FAQ ini adalah real-time ray tracing.
Apakah semua VGA NVIDIA bisa menjalankan ray tracing?
Tidak, hanya VGA NVIDIA GTX 1060 ke atas (kecuali GTX 1060 3GB) yang sudah memperoleh akses untuk menggunakan ray tracing pada game-game melalui update driver WHQL 425.31. Akan tetapi, performa yang diberikan oleh VGA NVIDIA non-RTX seringkali kurang baik.
Apakah VGA AMD Radeon juga bisa menjalankan ray tracing?
Ya, seperti VGA NVIDIA Pascal, AMD Radeon juga tetap dapat menjalankan ray tracing di dalam game. AMD telah memberikan support DXR melalui update driver pada Juli 2019 lalu. Kompatibilitas suatu VGA dengan ray tracing di dalam game ini tidak ditentukan oleh jenis VGA tersebut (RTX atau non-RTX), tetapi API yang digunakan (DXR).
Mengapa performa (FPS) game berkurang secara signifikan ketika menggunakan ray tracing?
Seperti yang sudah dijelaskan di atas, ray tracing membutuhkan resource VGA yang besar. Hal ini mengakibatkan penurunan performa yang cukup besar. Namun, perlu diingat juga bahwa optimisasi game itu sendiri juga berpengaruh. Sebagai contoh, game Battlefield V telah mengalami peningkatan performa untuk ray tracing yang cukup kentara saat ini dibandingkan pada saat waktu dirilis.
Demikian artikel mengenai hal-hal yang perlu diketahui seputar ray tracing. Semoga artikel di atas dapat membantu Anda untuk memahami lebih baik tentang ray tracing ini. Apabila Anda memiliki pertanyaan, mari berdiskusi di kolom komentar berikut.
Sumber Gambar: NVIDIA, The Verge
Referensi:
- What’s the Difference Between Ray Tracing and Rasterization? – NVIDIA
- You can now enable ray tracing on GTX cards, but performance is low – PCGamer
keren banget dah mantap