모델링 행렬 변환
질문:
GLM에서는 ViewMatrix를 쉽게 설정할 수 있음에도 불구하고 다음을 사용하여 ModelMatrix를 설정합니다. glm::lookAt는 객체에 대해 잘못된 위치와 회전을 생성합니다. glm::lookAt를 사용하여 객체 방향을 카메라 위치와 어떻게 정렬할 수 있습니까? 아니면 사용자 정의 기능을 만들어야 합니까?
답변:
컴퓨터 그래픽에서는 변환이 적용됩니다. 3D 공간의 개체를 정확하게 배치합니다. 이 프로세스에는 ModelMatrix, ViewMatrix 및 ProjectionMatrix의 세 가지 기본 변환 행렬이 포함됩니다.
모델 좌표:
장면 내의 각 메시에는 모델 공간이라는 자체 로컬 공간이 있습니다. 정점 좌표는 이 공간 내에서 정의되며 ModelMatrix는 월드 공간에서 객체의 위치, 방향 및 상대적 크기를 정의합니다.
월드 좌표:
월드 공간은 좌표입니다. 여러 개체가 배치된 전체 장면 시스템.
보기 공간:
보기 공간은 보기 위치, 시선을 사용하여 보기 관점을 기준으로 정의됩니다. , 위쪽 방향. 뷰 좌표계의 역행렬은 객체를 월드 공간에서 뷰(눈) 공간으로 변환하는 ViewMatrix입니다.
클립 좌표:
클립 공간 좌표는 동질적입니다. 장면 자르기. x, y 및 z 구성 요소가 반전된 w 구성 요소와 동종 좌표의 w 구성 요소로 정의된 범위 내에 있는 경우 점은 클립 공간에 있습니다.
투영 행렬:
ProjectionMatrix는 장면의 3D 지점에서 뷰포트의 2D 지점으로의 매핑을 설명하여 뷰 공간을 클립 공간으로 변환합니다.
정규화된 장치 좌표:
원근 분할은 클립을 변환합니다. 공간 좌표를 (-1, -1, -1) ~ (1, 1, 1) 범위 내의 정규화된 장치 좌표로 변환합니다.
창 좌표:
정규화된 장치 좌표는 다음과 같습니다. 창 좌표(화면 좌표)와 깊이 버퍼의 깊이에 선형적으로 매핑되어 뷰포트와 깊이 범위를 정의합니다.
위 내용은 ModelMatrix에 glm::lookAt를 사용하면 GLM에서 잘못된 객체 위치 지정 및 회전이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!