OpenGL® 카메라 란 무엇입니까?
"OpenGL® 카메라"는 OpenGL® (Open Graphics Library®) 장면 내에서 뷰어의 가상 위치에 부여 된 이름입니다. 장면 내에서 뷰어의 위치와 뷰어가보고있는 위치 또는 방향으로 정의됩니다. OpenGL® 장면에서 카메라의 위치에 따라 장면의 어느 부분이 디스플레이 장치에 렌더링 될 것인지와 어떤 각도로 결정될 것입니다. OpenGL® 카메라를 설명하는 데에는 두 가지 매트릭스가 사용됩니다. 모델 뷰 매트릭스와 프로젝션 매트릭스는 카메라의 위치와 카메라가 보이는 객체가 렌더링되는 방식을 각각 설명합니다. 카메라를 장면 내에서 움직여서 다른 영역을 표시하거나 모션을 시뮬레이션 할 수 있지만, 대부분의 경우 카메라 대신 장면에서 객체를 이동하는 것이 더 쉽고 효율적입니다.
OpenGL®을 배울 때 일부 프로그래머는 OpenGL® 카메라의 상대적 추상 속성을 이해하기가 어렵습니다. 이는 일부 변형 및 기타 기능이 표준 OpenGL® 객체와 동일한 방식으로 카메라에서 작동하지 않기 때문입니다. 또한 OpenGL® 카메라로 복잡한 작업을 수행하려면 일반적으로 매트릭스 수학 및 OpenGL® 변환 파이프 라인에 대한 이해가 필요합니다. OpenGL® 라이브러리 지원에는 몇 가지 편리한 기능이 있지만보다 대화식 응용 프로그램에서는 지원 툴킷에만 의존하기가 어려울 수 있습니다.
OpenGL® 카메라의 위치는 modelview 매트릭스를 사용하여 정의됩니다. 카메라는 장면 내 어느 위치 에나 배치하고 모든 축을 따라 이동하거나 회전 할 수 있습니다. 대부분의 응용 프로그램, 특히 소수의 객체 만 포함하는 응용 프로그램에서는 장면 내 객체에 역변환을 적용하여 동작 모양을보다 쉽게 적용 할 수 있습니다. 본질적으로이 경우 전체 장면이 정적 카메라 주위를 이동합니다. 더 큰 장면의 경우 파이프 라인 및 매트릭스 수학의 복잡성을 처리하여 카메라를 자유롭게 이동하고 장면을 정적 상태로 유지하는 것이 더 쉽습니다.
OpenGL® 카메라의 속성은 투영 매트릭스에 의해 제어됩니다. 카메라 비유를 사용하기 위해, 투사 매트릭스는 사용되는 렌즈의 유형으로 생각할 수 있습니다. 투영 행렬은 원근 조정이없는 직교 투영 및 객체의 크기를 결정할 때 거리를 설명하는 원근 투영을 만들기 위해 자주 수정됩니다. 어안 렌즈, 초점 거리 또는 다른 종횡비와 같은 다른 효과는 모두 투영 매트릭스를 사용하여 설정할 수 있습니다.