정사영 행렬 생성 함수
이 문서는 GameMaker에서 정사영 행렬을 생성하는 함수인 matrix_build_projection_ortho
에 대해 설명합니다. 이 함수는 기본적으로 방을 생성할 때 사용되는 정사영 방법입니다. 때때로 원근 투영에서 정사영으로 전환해야 할 필요가 있으며, 이 함수가 그 용도로 사용됩니다. 주로 점수나 기타 요소를 표시하기 위한 오버레이를 그릴 때 사용되며, 이는 3D 게임에서 그려진 요소의 "평면" 뷰를 제공합니다(즉, 원근감이 없음).
정사영과 원근 투영의 차이
정사영과 원근 투영의 차이를 이해하기 위해 아래 이미지를 참고하세요.
함수 문법
matrix_build_projection_ortho(width, height, znear, zfar);
매개변수 설명
매개변수 | 타입 | 설명 |
---|---|---|
width | 숫자 | 투영의 너비 |
height | 숫자 | 투영의 높이 |
znear | 숫자 | 가까운 클리핑 평면 |
zfar | 숫자 | 먼 클리핑 평면 |
반환값
- 행렬 배열
활용 예제
아래는 matrix_build_projection_ortho
함수를 사용하는 예제 코드입니다.
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);
위 코드는 새로운 뷰 매트릭스와 정사영 매트릭스를 생성하고, 이들의 ID를 지역 변수에 저장한 후, 뷰 포트[0]에 할당된 카메라의 뷰 및 프로젝션 매트릭스를 설정합니다.
추가 활용 예제
- 2D 게임에서 UI 요소 표시하기
gml // UI 요소를 위한 정사영 매트릭스 설정 projmat = matrix_build_projection_ortho(800, 600, 0.1, 1000); camera_set_proj_mat(view_camera[0], projmat);
- 게임 점수 표시하기
gml // 점수를 표시하기 위한 정사영 매트릭스 score_projmat = matrix_build_projection_ortho(640, 480, 0.1, 1000); camera_set_proj_mat(view_camera[1], score_projmat);
- 게임 오버 화면 구현하기
gml // 게임 오버 화면을 위한 정사영 매트릭스 gameover_projmat = matrix_build_projection_ortho(1024, 768, 0.1, 1000); camera_set_proj_mat(view_camera[2], gameover_projmat);
이와 같이 matrix_build_projection_ortho
함수를 활용하여 다양한 상황에서 정사영 매트릭스를 설정할 수 있습니다.