Berpikir tentang hybrid raytracing, maka pertanyaan berikut:
Misalkan saya memiliki dua bidang padat dan . Kami tahu pusat dan jari-jari mereka, dan kami tahu bahwa mereka memiliki volume yang tumpang tindih di ruang angkasa.
Kami memiliki pengaturan grafis 3D yang khas: anggap mata adalah asal, dan kami memproyeksikan bola ke bidang tampilan di untuk beberapa f positif . Bola berada di luar bidang pandangan dan tidak memotongnya.
Misalkan adalah lingkaran dalam ruang yang menunjuk pada permukaan kedua bola, yaitu 'bergabung' dari beberapa sudut volume yang tumpang tindih.
Saya ingin menghitung apakah ada yang terlihat saat diproyeksikan ke bidang pandangan kami. Mungkin tidak, jika atau sepenuhnya menghalangi.
Ada ide untuk mendekati ini?
raytracing
3d
occlusion
occulus
sumber
sumber
Jawaban:
Mengingat bahwa saya tidak ketinggalan apa pun, Anda mungkin dapat memotong ini menjadi masalah di ruang 2D. Melihat ke pesawat yang ditentukan oleh titik-titik pusat bola dan asal kamera Anda, pemandangannya terlihat seperti ini:
Bola menjadi lingkaran dengan titik pusat dan , dan lingkaran persimpangan sekarang hanya 2 poin dengan hanya satu yang lebih dekat yang menarik. Kamera / eye sewenang-wenang mengatur ke titik .C1 C2 P E
Menghitung apakah satu titik pada bola terlihat atau tidak mudah: Cukup periksa apakah sudut pada titik antara dan masing-masing dan keduanya lebih besar (atau sama dengan) 90 derajat 1 .P E C1 E C2
Jika terlihat, beberapa bagian (misalnya setidaknya titik itu) dari lingkaran persimpangan terlihat. Kalau tidak, seluruh lingkaran persimpangan harus dihadang oleh salah satu bola Anda, yaitu yang menciptakan sudut kurang dari 90 derajat.P
Ini adalah tampilannya jika tidak terlihat dari :P E
Anda dapat dengan jelas melihat bagaimana titik tersebut terhalang oleh lingkaran di sekitar dan bahwa sudut antara dan dalam kurang dari 90 derajat.C2 E C2 P
1 Memiliki sudut tepat 90 derajat berarti bahwa garis antara dan hanya menyentuh lingkaran / bola di masing-masing titik sebagai garis singgung.E P P
sumber