Камера проти Viewport


23

У мене немає чіткого розуміння того, у чому саме полягає різниця між координатами камери та координатами огляду. Хто-небудь може уточнити?

Відповіді:


40

Камера - це як камера, з якою знімається фільм про Бетмена. Він існує у віртуальному світі і його можна переміщувати, орієнтуючись на різні сцени, змінюючи фокусну відстань та інші властивості камери. У вас може бути багато камер і перемикатися між ними. Можна навіть знімати на кілька камер одночасно.

Типовими координатами камери є: положення у віртуальному світі, напрямок обличчя, вектор вгору, поле зору тощо.

Viewport - це кінотеатр. Це місце, де відображаються зображення, записані камерою. У світі ПК це область на екрані в межах якогось вікна або повноекранне зображення. Ви можете показувати стрічки з декількох камер одночасно (як у тих консольних гоночних іграх між 2-4 гравцями).

Типовими координатами огляду є: положення на дисплеї, висота та ширина.


0

Координати вікна перегляду - це узгоджена точка, де вона розміщена на екрані. (Наприклад, у вікні win32).

Координати камери - це положення камери Внутрішньо у вікні перегляду, тобто всередині 2D / 3D простору, встановленого у вашій програмі OpenGL. Камера не може вийти за межі цього огляду, оскільки вона знаходиться в просторі, який ви встановите, де opengl може виконувати свою роботу, всередині вікна Win32.


Це не зовсім точно. Поле перегляду визначає відображення від простору NDC до простору вікон для перетворення вершин. У старих версіях GL таке відображення застосовувалося і до перетворення растрової позиції (але це було видалено). Тим не менш, існує багато операцій GL, які не обмежуються перетворенням вершин, і, таким чином, ви можете робити такі речі, як очищення буфера кольорів поза вікном перегляду. Насправді єдиний спосіб обмежити буфер, чіткий до конкретної області фреймбуфера, - це використовувати зовсім іншу річ, яку називають коробкою ножиць ( glScissor (...)).
Андон М. Коулман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.