게임 엔진의 텍스처 변환, 얼마나 복잡할까
원제 Anatomy of a Texture
101 포인트댓글 15

Key Point
플랫폼 간 게임 엔진 포팅을 맡은 개발자라면 텍스처 변환의 세부 사항을 정확히 알아야 메모리 계산 오류를 피할 수 있습니다.
핵심 요약
- PC 게임 엔진을 콘솔로 포팅하면서 텍스처 메모리 레이아웃의 복잡성을 경험한 그래픽 프로그래머가 그 과정을 상세히 설명한다.
- 플랫폼마다 텍스처를 구성하는 요소(블록, 텍셀 순서, 밉맵, 타일)의 메모리 배치 방식이 다르기 때문에, 변환할 때 각 요소의 메모리 주소를 정확히 계산해야 한다.
- 성능 개선을 위해 텍스처에 여러 기법이 적용되는데, 블록 압축(BC7)은 16개 텍셀을 1블록(16바이트)으로 압축해 메모리 크기를 4배 줄인다.
- 텍셀 순서와 타일링은 캐시 지역성을 높이고, 밉맵은 렌더링 비용을 크게 줄인다.
- 단순히 RGBA 바이트 스트림으로 생각하면 안 되는 이유는 현대 게임 텍스처가 성능을 위해 여러 복잡한 최적화 기법을 적용하기 때문이다.