Persamaan render - mengapa tidak dapat dipecahkan secara langsung?

9

Mengapa persamaan rendering, yang diperkenalkan oleh Kajiya pada tahun 1986, tidak dapat dipecahkan secara langsung / analitik?

Blongphong
sumber
5
Pertanyaan bagus, tidak ada upaya penelitian.
ivokabel
Berapa banyak yang Anda ketahui tentang persamaan integral secara umum? Apakah Anda bertanya tentang solusi analitik untuk itu?
Galois

Jawaban:

16

Sayangnya saya tidak dapat menambahkan komentar pada jawaban di atas (tidak cukup reputasi), jadi saya akan melakukannya seperti ini.

Saya ingin menunjukkan bahwa apa yang dideskripsikan Dragonseel hanyalah persamaan integral (khususnya persamaan Fredholm dari jenis kedua). Ada banyak persamaan yang memiliki solusi analitik; bahkan beberapa bentuk persamaan rendering memiliki satu (misalnya solusi tungku putih dapat diberikan dengan menggunakan deret geometri konvergen sederhana, meskipun persamaan rendering bersifat rekursif tanpa batas).

Juga tidak perlu membiaskan solusi yang diperkirakan dengan membatasi jumlah rekursi. Roulette Rusia menyediakan alat yang berguna untuk memberi kita solusi yang tidak bias untuk persamaan rendering rekursif yang tak terbatas.

Kesulitan utama terletak pada kenyataan bahwa fungsi untuk reflektansi (BRDF), cahaya yang dipancarkan dan visibilitas sangat kompleks dan sering mengandung banyak diskontinuitas. Dalam kasus-kasus ini, seringkali tidak ada solusi analitik, atau tidak mungkin menemukan solusi seperti itu. Ini juga benar dalam kasus satu dimensi; sebagian besar integral tidak memiliki solusi analitik.

Akhirnya saya ingin mencatat bahwa meskipun sebagian besar kasus persamaan rendering tidak memiliki solusi analitik, ada banyak penelitian dalam bentuk persamaan rendering yang memiliki solusi analitik. Menggunakan solusi seperti itu (sebagai perkiraan) bila memungkinkan dapat secara signifikan mengurangi kebisingan dan dapat mempercepat waktu render.

Tom van Bussel
sumber
13

Persamaan rendering adalah sebagai berikut:

masukkan deskripsi gambar di sini

Sekarang, integral adalah di atas bola di sekitar titik x. Anda mengintegrasikan beberapa cahaya yang dilemahkan, yang datang dari segala arah.

Tetapi berapa banyak cahaya yang masuk? Inilah terangL(x,ωi) itu beberapa poin lainnya x mencerminkan arah ωi titik x.

Sekarang Anda harus menghitung berapa banyak cahaya titik baru itu xmencerminkan, yang membutuhkan penyelesaian persamaan rendering untuk titik itu. Dan solusi untuk titik itu tergantung pada sejumlah besar poin lainnya, termasukx.

Singkatnya, persamaan rendering bersifat rekursif tanpa batas.

Anda tidak dapat menyelesaikannya secara tepat dan analitis karena memiliki integral tak terbatas di atas domain integrasi tak terbatas.

Tetapi karena cahaya semakin lemah setiap kali itu dipantulkan, pada titik tertentu manusia tidak bisa lagi melihat perbedaannya. Jadi Anda tidak benar-benar menyelesaikan persamaan rendering, tetapi Anda membatasi jumlah rekursi (katakan refleksi) untuk sesuatu yang 'cukup dekat'.

Dragonseel
sumber
1
Yah Anda mungkin bisa memecahkan persamaan render untuk suatu titik secara analitis jika Anda memiliki adegan sederhana yang bodoh. Dan mungkin Anda bisa mendapatkan solusi analitik untuk seluruh gambar yang diproyeksikan jika adegan Anda bahkan lebih sederhana dari itu. Tapi itu akan sia-sia ... :)
joojaa
3
Adegan harus benar-benar sederhana seperti hanya objek datar tunggal. Karena ada integrasi tentang seluruh bola bahkan jika ada dua titik yang dapat saling melihat, persamaan rendering menjadi tak terbatas. Setiap titik termasuk yang lain dalam domain integrasi. jadi Hanya satu reflektor yang tidak dapat merefleksikan dirinya sendiri. maka Anda bisa menyelesaikannya. Maka tidak akan ada efek pencahayaan global sehingga turun ke pencahayaan lokal. Dan itu bisa dipecahkan.
Dragonseel
Ya itu akan sangat sederhana.
joojaa
2
@ joojaa Menurut pemahaman saya, bukan karena persamaan rendering tidak mungkin diselesaikan dalam semua kasus, tetapi bahwa untuk setiap saat itu dapat dipecahkan, itu tidak ada gunanya
galois
4
FYI sintaks Mathjax bekerja pada StackExchange ini, jadi jika Anda menaruh tanda $ di sekitar pengidentifikasi Anda, mereka akan terlihat semua matematika-y.
Julien Guertault