조명
3D 장면에서 작업할 때, GameMaker 함수로 그린 것들이 "평면적"으로 보일 수 있습니다. 이는 조명이 없어 사실감과 생동감을 주지 않기 때문입니다. 즉, 기본 도형의 색상이 방향이나 위치와 관계없이 동일하게 나타나므로, 더 사실적인 장면을 만들기 위해서는 조명을 활성화하고 3D 세계 내에서 적절한 위치에 조명을 배치해야 합니다. 이 섹션에서는 이를 달성하는 데 도움이 되는 함수들을 설명합니다.
조명 기능은 그려지는 객체의 정점 형식에 노멀 속성이 필요합니다. 이는 일반적인 그리기 함수인 draw_sprite
와는 작동하지 않으며, 조명이 필요한 정점 버퍼는 노멀을 포함한 정점 형식을 사용해야 합니다.
함수 목록
함수 이름 | 설명 |
---|---|
draw_light_define_ambient |
주변 조명 정의 |
draw_light_define_point |
점 조명 정의 |
draw_light_define_direction |
방향 조명 정의 |
draw_light_enabled |
조명 활성화 여부 설정 |
draw_set_lighting |
조명 설정 |
draw_light_get_ambient |
주변 조명 값 가져오기 |
draw_light_get |
조명 값 가져오기 |
draw_get_lighting |
현재 조명 상태 가져오기 |
활용 예제
1. 주변 조명 설정
draw_light_define_ambient(255, 255, 255, 1); // 흰색 주변 조명
2. 점 조명 추가
draw_light_define_point(x, y, z, 255, 255, 0, 1); // 노란색 점 조명
3. 방향 조명 설정
draw_light_define_direction(0, -1, 0, 255, 0, 0, 1); // 빨간색 방향 조명
4. 조명 활성화
draw_light_enabled(true); // 조명 활성화
5. 조명 상태 확인
var lighting_status = draw_get_lighting(); // 현재 조명 상태 확인
이러한 조명 기능을 통해 3D 장면의 사실감을 높일 수 있으며, 다양한 조명 효과를 활용하여 더욱 생동감 있는 환경을 만들 수 있습니다.