카메라 프로젝션 매트릭스 설정
이 문서는 카메라의 프로젝션 매트릭스를 설정하는 camera_set_proj_mat
함수에 대해 설명합니다. 이 함수는 특정 카메라에 대해 프로젝션 매트릭스를 설정하는 데 사용됩니다. 카메라 ID와 적용할 프로젝션 매트릭스를 인자로 받습니다. 프로젝션 매트릭스를 생성하는 방법에 대한 자세한 내용은 matrix_build_projection_perspective()
및 matrix_build_projection_ortho()
섹션을 참조하세요.
주의사항
- 자동 객체 추적 기능이 있는 카메라(예:
camera_create_view()
를 사용하여 생성된 카메라)나 룸 에디터에서 정의된 카메라, 기본 카메라의 경우, 이 매트릭스는 다음 게임 프레임에서 덮어씌워집니다. - 원근 프로젝션으로 전환할 경우(기본 직교 프로젝션과 반대), 타일 스프라이트의 자동 그리기가 작동하지 않으며 수동으로 처리해야 합니다. 여기에는 수평 또는 수직 타일링을 사용하는 배경 레이어와
draw_sprite_tiled()
및draw_sprite_tiled_ext()
함수가 포함됩니다. 원근 프로젝션을 사용할 경우 스프라이트는 한 번만 그려집니다.
함수 구문
camera_set_proj_mat(camera_id, matrix)
인자 설명
인자 이름 | 타입 | 설명 |
---|---|---|
camera_id | 정수 | 카메라를 생성할 때 반환된 고유 카메라 ID 값. |
matrix | 정수 | 매트릭스를 생성할 때 반환된 고유 매트릭스 ID. |
반환값
- 없음
예제 코드
아래 코드는 새로운 카메라를 생성하고 이를 뷰 포트[0]에 할당한 후, 뷰 및 프로젝션 매트릭스를 설정하는 예제입니다.
view_camera[0] = camera_create();
var viewmat = matrix_build_lookat(640, 240, -10, 640, 240, 0, 0, 1, 0);
var 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);
활용 예제
- 기본 카메라 설정
gml var cam = camera_create(); var proj = matrix_build_projection_ortho(0, 0, room_width, room_height, 0.1, 1000); camera_set_proj_mat(cam, proj);
- 원근 카메라 설정
gml var cam = camera_create(); var proj = matrix_build_projection_perspective(640, 480, 0.1, 1000); camera_set_proj_mat(cam, proj);
- 자동 객체 추적 카메라
gml var cam = camera_create_view(obj_player); var proj = matrix_build_projection_ortho(0, 0, room_width, room_height, 0.1, 1000); camera_set_proj_mat(cam, proj);
- 다양한 뷰포트에 카메라 설정
gml for (var i = 0; i < 4; i++) { var cam = camera_create(); var proj = matrix_build_projection_ortho(0, 0, 320, 240, 0.1, 1000); camera_set_proj_mat(cam, proj); view_camera[i] = cam; }
이 문서에서는 카메라 프로젝션 매트릭스를 설정하는 방법과 주의사항, 예제 코드를 제공하였습니다.