동적 텍스처
동적 텍스처란?
동적 텍스처는 게임에서 사용되는 텍스처 그룹의 한 종류로, 텍스처를 메모리에 로드하는 방식에 따라 다릅니다. 텍스처 그룹 설정에서 그룹을 "기본(Default)" 또는 "동적(Dynamic)"으로 표시할 수 있습니다. HTML5에서는 동적 텍스처 그룹이 지원되지 않습니다.
텍스처의 작동 방식
기본 그룹(Default Groups)
- 기본 텍스처 그룹은 최종 게임 패키지(WAD 파일)에 포함됩니다.
- 게임이 시작되면 이러한 텍스처 그룹은 RAM에 로드되고, 필요할 때 VRAM으로 미리 가져옵니다.
동적 그룹(Dynamic Groups)
- 동적 텍스처 그룹은 게임 시작 시 로드되지 않습니다.
- 필요할 때(예: 이미지가 그려질 때) 또는 수동으로 로드됩니다.
texturegroup_load()
함수를 호출하여 RAM에 수동으로 로드할 수 있습니다.- 기본적으로 이 함수는 그룹을 압축 해제하고 VRAM으로 미리 가져옵니다.
- 두 번째 인자를
false
로 설정하면 미리 가져오기를 비활성화할 수 있습니다.
동적 텍스처 그룹의 언로드
texturegroup_unload()
함수를 사용하여 텍스처 그룹을 언로드할 수 있습니다.- 이 함수는 메모리에서 제거하고 원래 압축된 형태로 디스크에 다시 저장합니다.
동적 그룹 모드
texturegroup_set_mode()
함수를 사용하여 동적 그룹의 "모드"를 "암시적(Implicit)" 또는 "명시적(Explicit)"로 설정할 수 있습니다.
암시적 모드(Implicit)
- 기본 설정입니다. 동적 그룹의 자동 로딩을 활성화합니다.
- 언로드된 동적 그룹의 이미지를 그리면 해당 텍스처 그룹이 로드됩니다.
- 이 과정에서 약간의 지연이 발생할 수 있습니다.
명시적 모드(Explicit)
- 자동 로딩을 비활성화합니다. 수동으로 로드해야 합니다.
- 로드되지 않은 텍스처 그룹의 이미지를 그리면 오류가 발생합니다.
texturegroup_set_mode()
에서 "대체(fallback)" 스프라이트를 설정할 수 있습니다.
경로 및 모딩
- 텍스처 그룹 설정에서 동적 그룹이 최종 게임 디렉토리 내에 위치할 경로를 설정할 수 있습니다.
- 그룹 형식을 "PNG"로 설정하면 내보낸 텍스처 파일을 직접 수정할 수 있습니다.
추가 함수
다음은 동적 그룹과 관련된 몇 가지 추가 함수입니다:
함수 이름 | 설명 |
---|---|
texturegroup_set_mode() |
모드를 설정하고 디버깅을 활성화하여 모든 텍스처 페이지 정보를 화면에 표시합니다. |
texturegroup_get_status() |
텍스처 그룹의 상태를 반환하여 로드 여부, 언로드 여부 등을 알려줍니다. |
활용 예제
// 동적 텍스처 그룹 로드
texturegroup_load("my_dynamic_group");
// 동적 텍스처 그룹 언로드
texturegroup_unload("my_dynamic_group");
// 동적 그룹 모드 설정: 명시적
texturegroup_set_mode(true);
// 대체 스프라이트 설정
texturegroup_set_mode(true, fallback_sprite);
// 텍스처 그룹 상태 확인
var status = texturegroup_get_status("my_dynamic_group");
if (status == "unloaded") {
// 그룹이 언로드된 경우 로드
texturegroup_load("my_dynamic_group");
}
// 동적 텍스처 사용 예
draw_texture_group("my_dynamic_group", 0, 0);
// 동적 텍스처 그룹의 모드 변경
texturegroup_set_mode(false);
이 문서에서는 동적 텍스처의 개념과 활용 방법에 대해 설명했습니다.