Bagaimana cara membangun model objektif lensa / kamera yang layak untuk pelacakan jalur?

13

Saya telah menulis path-tracer kecil setelah belajar dan bereksperimen dengan smallpt .

Satu-satunya hal yang saya sendiri tidak tulis (dan pahami) adalah bagaimana sinar awal dihitung dan ditembakkan dari kamera. Saya mendapatkan prinsip yang benar, tetapi saya sedang mencari beberapa sumber daya yang menjelaskan cara:

  • Hitung arah awal sinar
  • Memodelkan lensa nyata (sebagai lawan dari kamera lubang jarum), konon memungkinkan efek seperti kedalaman bidang?

Matematika dan fisika mutakhir tidak diperlukan, tetapi OK jika dijelaskan secara menyeluruh.

Internet terbuat dari catz
sumber

Jawaban:

13

Langkah berikutnya dari model kamera lubang jarum adalah model lensa tipis , di mana kami memodelkan lensa sebagai cakram yang sangat tipis. Ini masih merupakan idealisasi yang cukup jauh dari pemodelan kamera sungguhan, tetapi ini akan memberi Anda kedalaman dasar efek medan.

Model lensa tipis

Gambar di atas, dari panohelp.com , menunjukkan ide dasar. Untuk setiap titik pada gambar, ada beberapa sinar yang tiba pada titik gambar itu, melalui setiap titik pada permukaan lensa 2D. Oleh karena itu, menghasilkan gambar seperti ini menggunakan Monte Carlo akan membutuhkan pengambilan, untuk setiap sinar, baik titik sampel 2D pada bidang gambar dan titik sampel 2D independen pada permukaan lensa.

Parameter yang dihadapi pengguna untuk ditetapkan adalah jari-jari lensa (sebagai jari-jari fisik dalam unit adegan), yang mengontrol seberapa dangkal rentang fokus (lensa lebih besar = rentang fokus dangkal), dan jarak di mana Anda ingin objek berada di fokus.

Untuk menghasilkan sinar mata ke dalam pemandangan, Anda dapat menghitung posisi dan arah sinar yang meninggalkan permukaan lensa; dalam model ini tidak perlu secara eksplisit mensimulasikan bidang gambar dan pembiasan melalui lensa. Pada dasarnya, anggap lensa sebagai pusat pada posisi kamera dan berorientasi untuk menghadapi arah kamera.

Berdasarkan lokasi gambar, buat sinar dari posisi kamera (pusat lensa) ke dalam adegan, seperti yang Anda lakukan pada model lubang jarum; kemudian temukan persimpangan dengan bidang fokus. Di situlah semua sinar dari lokasi gambar itu harus bertemu. Sekarang Anda dapat mengimbangi titik awal sinar menjadi titik yang dipilih secara acak pada lensa, dan mengatur arahnya menuju titik konvergensi.

Anda dapat menggeneralisasikan ini sedikit dengan membiarkan bidang fokus menjadi sesuatu selain bidang, atau lensa menjadi sesuatu selain cakram bundar, dan mengikuti proses yang sama. Itu dapat menghasilkan beberapa efek yang menarik jika tidak cukup fisik. Dimungkinkan juga untuk melampaui model sederhana ini dengan simulasi elemen lensa kamera yang lebih realistis secara fisik — tetapi itu di luar keahlian saya.

Nathan Reed
sumber
4

Lihat Kolb, dkk., Model Kamera Realistis untuk Grafik Komputer , SIGGRAPH 95.

Namun, perlu diingat bahwa model kamera yang meniru kamera dunia nyata belum tentu seperti yang Anda inginkan untuk tahap rendering. Dalam skenario efek visual / paska produksi, semakin kabur / vignetting / distorsi yang diperkenalkan oleh model kamera, semakin buruk bagi pengatur waktu warna. Sering kali lebih baik melakukannya sebagai post-pass.

Nama samaran
sumber