원근 투영 행렬 생성 함수
이 문서는 원근 투영 행렬을 생성하는 함수인 matrix_build_projection_perspective_fov
에 대해 설명합니다. 이 함수는 주어진 시야각을 기반으로 원근 투영 행렬을 만듭니다. 아래는 함수의 사용법과 예제입니다.
함수 구문
matrix_build_projection_perspective_fov(fov_y, aspect, znear, zfar);
매개변수 설명
매개변수 | 타입 | 설명 |
---|---|---|
fov | 실수 | 시야각(세로 방향) |
aspect | 실수 | 시야의 종횡비 |
znear | 실수 | 가까운 클리핑 평면 |
zfar | 실수 | 먼 클리핑 평면 |
반환값
- 행렬 배열(Matrix Array)
예제
아래 코드는 시야각을 기반으로 원근 투영 행렬을 생성하고, 이를 카메라에 설정하는 예제입니다.
projmat = matrix_build_projection_perspective_fov(60, 320/240, 1.0, 32000.0);
camera_set_proj_mat(view_camera[0], projmat);
위 코드는 60도의 시야각을 가진 원근 투영 행렬을 생성하고, 이를 projmat
변수에 저장합니다. 이후 이 행렬은 뷰포트[0]에 할당된 카메라의 프로젝션 행렬로 설정됩니다.
활용 예제
- 게임 카메라 설정
gml var fov = 75; var aspect_ratio = display_get_width() / display_get_height(); var near_plane = 0.1; var far_plane = 1000; var projection_matrix = matrix_build_projection_perspective_fov(fov, aspect_ratio, near_plane, far_plane); camera_set_proj_mat(view_camera[1], projection_matrix);
- 다양한 시야각 실험
gml for (var angle = 30; angle <= 90; angle += 10) { var proj_matrix = matrix_build_projection_perspective_fov(angle, 16/9, 0.1, 500); // 카메라에 적용 camera_set_proj_mat(view_camera[2], proj_matrix); }
- 비율에 따른 카메라 조정
gml var screen_width = 1280; var screen_height = 720; var aspect_ratio = screen_width / screen_height; var proj_matrix = matrix_build_projection_perspective_fov(60, aspect_ratio, 1, 10000); camera_set_proj_mat(view_camera[3], proj_matrix);
이와 같이 matrix_build_projection_perspective_fov
함수를 활용하여 다양한 카메라 설정을 할 수 있습니다.