Look-At 매트릭스 생성 함수
이 문서는 "look-at" (뷰) 매트릭스를 생성하는 함수에 대해 설명합니다. 이 함수는 아래에 나열된 매개변수를 기반으로 매트릭스를 구성합니다. 이 함수는 뷰 매트릭스를 수정하며, 프로젝션 매트릭스는 수정하지 않기 때문에, 먼저 다른 매트릭스 함수인 matrix_build_projection_perspective
를 사용하여 프로젝션 매트릭스를 초기화한 후, 이 함수를 사용하여 프로젝션 내에서 뷰 카메라를 이동해야 합니다.
뷰를 설정하기 위해서는 먼저 카메라의 위치를 정의해야 하며, 이는 매개변수 (xfrom, yfrom, zfrom)로 표시됩니다. 다음으로, 바라보는 방향을 지정해야 하며, 이는 (xto, yto, zto)로 주어진 두 번째 점을 통해 이루어집니다. 마지막으로, 카메라가 시점에서 바라보는 점까지의 선을 중심으로 회전할 수 있으며, 이를 지정하기 위해 "up" 벡터를 제공해야 합니다. 이 벡터는 카메라에서 위쪽 방향을 나타내며, 마지막 세 개의 매개변수 (xup, yup, zup)로 주어집니다.
문법
matrix_build_lookat(xfrom, yfrom, zfrom, xto, yto, zto, xup, yup, zup);
매개변수 설명
매개변수 | 타입 | 설명 |
---|---|---|
xfrom | Real | 바라보는 위치의 x 좌표 |
yfrom | Real | 바라보는 위치의 y 좌표 |
zfrom | Real | 바라보는 위치의 z 좌표 |
xto | Real | 바라보는 방향의 x 좌표 |
yto | Real | 바라보는 방향의 y 좌표 |
zto | Real | 바라보는 방향의 z 좌표 |
xup | Real | "up" 벡터의 x 좌표 |
yup | Real | "up" 벡터의 y 좌표 |
zup | Real | "up" 벡터의 z 좌표 |
반환값
- 매트릭스 배열
예제
viewmat = matrix_build_lookat(640, 240, -10, 640, 240, 0, 0, 1, 0);
projmat = matrix_build_projection_ortho(640, 480, 1.0, 32000.0);
camera_set_view_mat(view_camera[0], viewmat);
camera_set_proj_mat(view_camera[0], projmat);
위 코드는 새로운 look-at 매트릭스와 정사영 매트릭스를 생성하고, 이를 변수에 저장한 후, 뷰 포트[0]에 할당된 카메라의 뷰 및 프로젝션 매트릭스를 설정합니다.
활용 예제
- 기본 카메라 설정
viewmat = matrix_build_lookat(0, 0, 5, 0, 0, 0, 0, 1, 0);
- 3D 씬에서 카메라 회전
viewmat = matrix_build_lookat(10, 10, 10, 0, 0, 0, 0, 1, 0);
- 다양한 카메라 위치 테스트
viewmat = matrix_build_lookat(-5, 5, 5, 0, 0, 0, 0, 1, 0);
- 상대적인 카메라 이동
viewmat = matrix_build_lookat(2, 2, 2, 2, 2, 0, 0, 1, 0);
- 다양한 방향으로 카메라 설정
viewmat = matrix_build_lookat(0, 0, 10, 5, 5, 0, 0, 1, 0);
이와 같은 예제들을 통해 다양한 카메라 설정을 실험해 볼 수 있습니다.