Kamera vs Viewport


23

Saya tidak memiliki pemahaman yang jelas tentang apa sebenarnya perbedaan antara koordinat kamera dan koordinat viewport. Adakah yang bisa menjelaskan?

Jawaban:


40

Kamera seperti kamera yang digunakan untuk merekam film Batman. Itu ada di dunia virtual dan dapat dipindahkan, menargetkan adegan yang berbeda, mengubah panjang fokus dan properti kamera lainnya. Anda dapat memiliki banyak kamera dan beralih di antara mereka. Anda bahkan dapat membuat film di beberapa kamera sekaligus.

Koordinat kamera yang umum adalah: posisi di dunia virtual, arah menghadap, vektor atas, bidang pandang, dll.

Viewport adalah layar bioskop. Ini adalah tempat di mana gambar yang direkam oleh kamera ditampilkan. Di dunia PC itu adalah area di layar dalam beberapa jendela atau gambar layar penuh. Anda dapat menampilkan umpan dari beberapa kamera sekaligus (seperti di game balap konsol antara 2-4 pemain).

Koordinat viewport yang umum adalah: posisi pada layar, tinggi dan lebar.


0

Koordinat viewport adalah koordinat tempat penempatannya di layar. (Misalnya di dalam jendela win32).

Koordinat kamera adalah posisi kamera DI DALAM viewport, yang ada di dalam ruang 2D / 3D yang Anda atur di aplikasi OpenGL Anda. Kamera tidak dapat pergi ke luar viewport karena berada di ruang yang Anda atur di mana OpenGL dapat melakukan pekerjaannya, di dalam jendela Win32.


Itu tidak sepenuhnya akurat. Viewport mendefinisikan pemetaan dari ruang NDC ke ruang jendela untuk transformasi verteks. Dalam versi GL yang lebih lama, pemetaan itu juga berlaku untuk transformasi posisi raster (tetapi itu telah dihapus). Namun demikian, ada banyak operasi GL yang tidak dibatasi oleh transformasi verteks dan dengan demikian Anda dapat melakukan hal-hal seperti menghapus buffer warna di luar viewport. Pada kenyataannya, satu-satunya cara untuk membatasi buffer yang jelas untuk wilayah tertentu dari framebuffer adalah dengan menggunakan hal yang berbeda sama sekali, yang disebut kotak gunting ( glScissor (...)).
Andon M. Coleman
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.