Mengapa monte carlo ray tracing bekerja lebih baik daripada tracing ray terdistribusi?

30

Saya pernah mendengar bahwa kualitas pelacak monte carlo ray (berdasarkan algoritma penelusuran jalur) jauh lebih realistis daripada mesin terdistribusi (stokastik). Saya mencoba memahami alasannya, tetapi saya baru saja mulai.

Untuk menyelami topik ini dan memahami dasar-dasarnya, dapatkah seseorang mengarahkan saya ke arah yang benar? Bagian mana dari algoritma yang mengarah ke hasil render yang lebih realistis?

p2atau
sumber
9
Saya ingin lebih dari "Rekomendasi buku yang solid" karena pertanyaan ini harus diberikan jawaban langsung oleh seseorang yang tahu tentang ini. Kita harus mencoba meletakkan informasi di situs alih-alih menunjuk ke luar situs.
Robobenklein
@robobenklein Pertanyaan diedit, sebaiknya hati-hati;)
p2atau
@ChristianRau Menghapus "Terima kasih" harus dibahas dalam meta, ini berbeda pada setiap situs pertukaran tumpukan ...
p2atau
1
@ maaf Tidak, tidak juga. Itu adalah sesuatu yang tidak pernah berubah. Dan selama kita tidak memiliki aturan khusus, kita tetap menggunakan SE umum. Tetapi bahkan kemudian, saya hampir tidak dapat membayangkan siapa pun untuk memilih ini diizinkan di sini. Saya belum pernah melihat ini menjadi praktik yang baik di situs SE lainnya.
Chris mengatakan Reinstate Monica

Jawaban:

31

Istilah "berkas ray tracing" pada awalnya diciptakan oleh Robert Cook dalam makalah 1984 ini. Pengamatannya adalah bahwa untuk melakukan anti-aliasing dalam pelacak sinar, pemberi render perlu melakukan upampling spasial - yaitu, untuk mengambil lebih banyak sampel (yaitu menembak lebih banyak sinar) daripada jumlah piksel dalam gambar dan menggabungkan hasilnya . Salah satu cara untuk melakukan ini adalah dengan memotret banyak sinar dalam pixel dan rata-rata nilai warnanya, misalnya. Namun, jika penyaji sudah melacak beberapa sinar per piksel untuk mendapatkan gambar anti-alias, maka sinar ini juga dapat "didistribusikan" di antara dimensi tambahan daripada hanya posisi piksel untuk efek sampel yang tidak dapat ditangkap oleh satu sinar. . Yang penting adalah bahwa ini datang tanpa biaya tambahan di atas penataan ruang, karena Anda sudah melacak sinar tambahan itu. Sebagai contoh,

Monte Carlo ray tracing adalah istilah yang sedikit ambigu. Dalam kebanyakan kasus, ini mengacu pada teknik rendering yang memecahkan persamaan rendering, diperkenalkan oleh Jim Kajiya pada tahun 1986, menggunakan integrasi Monte Carlo. Secara praktis semua teknik rendering modern yang memecahkan persamaan rendering, seperti penelusuran jalur, penelusuran jalur dua arah, pemetaan foton progresif dan VCM, dapat diklasifikasikan sebagai teknik penelusuran sinar Monte Carlo. Gagasan integrasi Monte Carlo adalah bahwa kita dapat menghitung integral dari fungsi apa pun dengan secara acak memilih poin dalam domain integrasi dan rata-rata nilai fungsi pada titik-titik ini. Pada tingkat tinggi, dalam penelusuran sinar Monte Carlo kita dapat menggunakan teknik ini untuk mengintegrasikan jumlah cahaya yang masuk ke kamera dalam piksel untuk menghitung nilai piksel. Misalnya, pelacak jalur melakukan ini dengan secara acak memilih titik di dalam piksel untuk menembakkan sinar pertama, dan kemudian terus secara acak memilih arah untuk melanjutkan di permukaan tempat ia mendarat, Dan seterusnya. Kita juga dapat secara acak memilih posisi pada sumbu waktu jika kita ingin melakukan gerakan blur, atau secara acak memilih titik pada aperture jika ingin melakukan kedalaman bidang, atau ...

Jika ini terdengar sangat mirip dengan penelusuran sinar terdistribusi, itu karena itu! Kita dapat menganggap ray tracing sebagai deskripsi yang sangat tidak resmi dari algoritma Monte Carlo yang mengambil sampel efek tertentu seperti bayangan lembut. Makalah Cook tidak memiliki kerangka matematika untuk benar-benar beralasan tentang hal itu dengan benar, tetapi Anda tentu bisa menerapkan penelusuran ray terdistribusi menggunakan renderer Monte Carlo sederhana. Patut dicatat bahwa penelusuran sinar terdistribusi tidak memiliki deskripsi efek penerangan global, yang secara alami dimodelkan dalam persamaan rendering (harus disebutkan bahwa makalah Kajiya diterbitkan dua tahun setelah makalah Cook).

Anda dapat menganggap pelacakan ray Monte Carlo sebagai versi yang lebih umum dari penelusuran ray terdistribusi. Monte Carlo ray tracing berisi kerangka matematika umum yang memungkinkan Anda untuk menangani hampir semua efek, termasuk yang disebutkan dalam kertas kalkir ray didistribusikan.

Saat ini, "berkas ray tracing" sebenarnya bukan istilah yang digunakan untuk merujuk pada algoritma asli. Lebih sering Anda akan mendengarnya bersamaan dengan "efek distribusi", yang merupakan efek sederhana seperti gerakan kabur, kedalaman bidang, atau bayangan lembut yang tidak dapat ditangani dengan raytracer sampel tunggal.

Benedikt Bitterli
sumber
5

Dalam penelusuran sinar terdistribusi , Anda secara stokastik mencicipi banyak sinar ke arah yang mungkin atau mungkin tidak disukai oleh BRDF. Sedangkan, dalam pelacakan ray Monte Carlo atau sekadar penelusuran jalur, Anda hanya mencicipi satu ray dalam arah yang disukai oleh BRDF . Jadi, ada dua keuntungan yang jelas dimiliki Path Tracing:

  • Komputasi lebih murah. Yang berarti dengan kekuatan komputasi yang sama Anda memiliki kebebasan untuk menghitung lebih banyak objek hit dibandingkan dengan penelusuran sinar terdistribusi di mana terdapat banyak sinar.
  • Lebih sedikit noise. Sampel ray tracing yang didistribusikan ke arah yang mungkin tidak disukai oleh BRDF, oleh karena itu memperkenalkan artefak yang tidak diinginkan.

Jadi, pelacakan jalur akan memberi Anda hasil yang lebih baik.

ranagraw
sumber
2
"Padahal, di penelusuran rayap Monte Carlo atau sekadar penelusuran jejak, Anda hanya mencicipi satu sinar ke arah yang disukai oleh BRDF." Per se, Anda tidak tahu bagaimana ray dipilih. Pendekatan naif menggunakan sinar acak. Mempertimbangkan BRDF adalah pengambilan sampel yang penting dan tidak melekat pada penelusuran rayap Monte Carlo atau penelusuran jalur.
David Kuri
4
Saya percaya jawaban ini sepenuhnya salah. Anda bebas untuk multisample sinar keluar dan timbang hasilnya ketika menggabungkan. Anda mendapatkan kebenaran yang sama dari teknik roulette Rusia, tetapi secara umum diterima bahwa metode yang sebelumnya lebih mahal.
v.oddou