원근 투영 행렬 생성 함수

이 문서는 원근 투영 행렬을 생성하는 함수에 대해 설명합니다. 이 함수는 가까운 클리핑 평면의 크기를 기반으로 원근 투영 행렬을 만듭니다. 아래에 나열된 매개변수를 사용하여 구성됩니다.

주요 개념

  • 시야(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);

추가 활용 예제

  1. 다양한 화면 비율에 따른 원근 투영 설정 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);
  2. 다른 클리핑 평면 값 사용 gml var projmat = matrix_build_projection_perspective(800, 600, 500.0, 10000.0); camera_set_proj_mat(view_camera[1], projmat);
  3. 시야 조정 gml var projmat = matrix_build_projection_perspective(1024, 768, 300.0, 15000.0); camera_set_proj_mat(view_camera[2], projmat);

이 문서에서는 원근 투영 행렬을 생성하는 방법과 그 활용 예제를 설명했습니다.