원근 투영 행렬 생성 함수
이 문서는 원근 투영 행렬을 생성하는 함수에 대해 설명합니다. 이 함수는 가까운 클리핑 평면의 크기를 기반으로 원근 투영 행렬을 만듭니다. 아래에 나열된 매개변수를 사용하여 구성됩니다.
주요 개념
- 시야(Field of View): 카메라의 시야는
width
,height
,znear
값에 따라 달라집니다.znear
인수에 지정된 Z 위치에서 투영의 너비와 높이가 결정됩니다. - 예시: 고정 크기 640x480을 사용할 경우,
znear
가 카메라에 가까울수록 시야가 넓어지고, 멀어질수록 좁아집니다.
함수 문법
matrix_build_projection_perspective(width, height, znear, zfar);
매개변수 설명
매개변수 | 유형 | 설명 |
---|---|---|
width | 실수 | 가까운 Z 위치에서의 투영 너비 |
height | 실수 | 가까운 Z 위치에서의 투영 높이 |
znear | 실수 | 가까운 클리핑 평면 |
zfar | 실수 | 먼 클리핑 평면 |
반환값
- 행렬 배열(Matrix Array): 생성된 원근 투영 행렬을 반환합니다.
활용 예제
다음 코드는 원근 투영을 생성하고, 반환된 행렬을 사용하여 뷰포트[0]에 할당된 카메라의 투영 행렬을 설정합니다.
var projmat = matrix_build_projection_perspective(640, 480, 640.0, 32000.0);
camera_set_proj_mat(view_camera[0], projmat);
추가 활용 예제
- 다양한 화면 비율에 따른 원근 투영 설정
gml var aspect_ratio = 16.0 / 9.0; var projmat = matrix_build_projection_perspective(640 * aspect_ratio, 480, 640.0, 32000.0); camera_set_proj_mat(view_camera[0], projmat);
- 다른 클리핑 평면 값 사용
gml var projmat = matrix_build_projection_perspective(800, 600, 500.0, 10000.0); camera_set_proj_mat(view_camera[1], projmat);
- 시야 조정
gml var projmat = matrix_build_projection_perspective(1024, 768, 300.0, 15000.0); camera_set_proj_mat(view_camera[2], projmat);
이 문서에서는 원근 투영 행렬을 생성하는 방법과 그 활용 예제를 설명했습니다.