DDS 형식: DirectX 텍스처 압축에 대한 전체 가이드
DDS(DirectDraw Surface)는 Microsoft의 최고의 텍스처 컨테이너 형식으로 DirectX 응용 프로그램용으로 특별히 설계되었으며 PC 게임 산업 전반에 걸쳐 널리 채택되었습니다. Windows 기반 그래픽 애플리케이션의 사실상 표준인 DDS는 광범위한 BCn(블록 압축) 형식, 비압축 텍스처 및 밉맵, 큐브맵, 텍스처 배열과 같은 고급 기능을 지원합니다. 기본 GPU 하드웨어 지원과 최적화된 성능 덕분에 데스크톱 및 콘솔 게임 개발에 필수적인 형식이 되었습니다.
DDS 형식이란 무엇입니까?
DDS는 압축 및 비압축 텍스처를 저장하기 위해 Microsoft에서 개발한 컨테이너 형식으로 원래 DirectX용으로 만들어졌지만 이제는 그래픽 프레임워크 전체에서 널리 지원됩니다. 이 형식은 GPU 소비에 필요한 메타데이터로 텍스처 데이터를 패키징하는 표준화된 방법을 제공하여 다양한 하드웨어 플랫폼에서 최적의 성능과 호환성을 보장합니다.
핵심적으로 DDS는 다양한 텍스처 압축 형식, 특히 다양한 텍스처 유형에 대해 효율적인 하드웨어 가속 압축을 제공하는 BCn(블록 압축) 제품군(BC1-BC7)에 대한 래퍼 역할을 합니다. 이 설계를 통해 개발자는 추가 처리 없이 GPU에서 직접 로드할 수 있는 형식으로 텍스처를 저장할 수 있어 메모리 대역폭을 최소화하고 렌더링 성능을 최대화할 수 있습니다.
이 형식의 강점은 포괄적인 기능 세트와 광범위한 채택에 있습니다. 단순한 2D 텍스처부터 복잡한 큐브맵 및 볼륨 텍스처까지 DDS는 최신 그래픽 애플리케이션에 대한 거의 모든 텍스처 요구 사항을 처리합니다. DirectX와의 통합과 OpenGL 및 Vulkan과 같은 주요 그래픽 API 지원으로 크로스 플랫폼 개발을 위한 다양한 선택이 가능합니다.
DDS 형식의 주요 특징
기본 하드웨어 지원
CPU 압축 해제 오버헤드 없이 BCn 형식을 위한 직접 GPU 하드웨어 가속
완벽한 BCn 지원
다양한 텍스처 유형에 최적의 압축을 제공하는 모든 BCn 형식(BC1-BC7) 지원
내장된 밉맵 지원
효율적인 세부 수준 렌더링을 위한 기본 밉맵 체인 저장 및 관리
고급 텍스처 기능
큐브맵, 볼륨 텍스처, 텍스처 배열 및 고급 픽셀 형식 지원
BCn 압축 형식 설명
DDS는 BCn(블록 압축) 형식의 전체 제품군을 지원하며 각각은 다양한 유형의 텍스처 콘텐츠에 최적화되어 있습니다.
BC1 (DXT1)
1비트 알파가 있거나 알파가 없는 RGB 압축입니다. 투명도 요구 사항 없이 분산 텍스처에 대해 우수한 품질의 6:1 압축을 제공합니다.
최적의 용도: 확산 맵, 알베도 텍스처, 알파 채널이 없는 컬러 맵
BC2 (DXT2)
명시적인 4비트 알파를 사용한 RGB 압축입니다. 선명한 알파 전환으로 4:1 압축을 제공합니다.
최적의 용도: 선명한 알파 가장자리가 있는 텍스처, 투명도가 높은 UI 요소
BC3(DXT5)
보간된 4비트 알파를 사용한 RGB 압축입니다. 부드러운 알파 그라데이션으로 4:1 압축을 제공합니다.
최적의 용도: 캐릭터 텍스처, 입자 효과, 그라디언트, 소프트 알파 전환
BC4
단일 채널(회색조) 압축. 노멀 맵 블루 채널 또는 하이트 맵에 대해 2:1 압축을 제공합니다.
최적의 용도: 높이 맵, 글로스 맵, 노멀 맵 개별 채널
BC5
2채널 압축(일반적으로 일반 맵 XY). 노멀 맵 데이터에 대해 2:1 압축을 제공합니다.
최적의 용도: 노멀 맵, 플로우 맵, 2채널 텍스처 데이터
BC6H
높은 동적 범위 콘텐츠를 위한 HDR RGB 압축. HDR 텍스처에 6:1 압축을 제공합니다.
최적의 용도: HDR 조명 환경, HDR 스카이박스, HDR 반사 맵
BC7
선택적 알파를 사용한 고품질 RGB 압축. 뛰어난 품질의 3:1 압축을 제공합니다.
최적의 용도: 고품질 캐릭터 텍스처, 반사 맵, 상세한 표면 텍스처
DDS 파일 구조
DDS 파일은 세 가지 주요 구성 요소로 구성된 구조적 형식을 따릅니다.
DDS 헤더(124바이트)
크기, 형식 정보, 밉맵 수, 압축 플래그를 포함한 필수 메타데이터가 포함되어 있습니다.
DDSFMT 구조(32바이트)
픽셀 형식 세부 정보, 압축 유형 및 비트 심도 정보를 지정합니다.
텍스처 데이터
지정된 형식 및 크기에 따라 정렬된 압축 또는 압축되지 않은 픽셀 데이터
DDS 워크플로
일반적인 DDS 텍스처 워크플로우에는 여러 단계가 포함됩니다.
1. 텍스처 생성
적절한 크기(바람직하게는 2의 거듭제곱)를 사용하여 고품질 텍스처 파일(PNG, TGA, PSD 등)을 생성하거나 소싱합니다.
2. BCn 압축
콘텐츠 유형 및 요구 사항에 따라 적절한 BCn 형식을 사용하여 소스 텍스처를 압축합니다.
3. 밉맵 생성
3D 애플리케이션에서 효율적인 세부 수준 렌더링을 위한 밉맵 체인 생성
4. 게임 엔진 통합
즉각적인 GPU 사용을 위해 DDS 파일을 게임 엔진이나 그래픽 애플리케이션으로 가져옵니다.
DDS 형식의 장점
최적의 성능
직접 GPU 하드웨어 가속으로 CPU 압축 해제 병목 현상 제거
광범위한 산업 지원
DirectX, OpenGL, Vulkan 및 주요 게임 엔진에서 지원되는 표준 형식
포괄적인 기능 세트
큐브맵, 볼륨 텍스처, HDR 콘텐츠와 같은 고급 기능 지원
성숙한 툴링 생태계
DirectX SDK, texconv, Compressonator 및 엔진별 도구를 포함한 광범위한 도구 지원
이상적인 사용 사례
PC 게임 개발
데스크톱 환경을 대상으로 하는 Windows 기반 게임 및 크로스 플랫폼 타이틀에 적합
게임 엔진 텍스처
Unity, Unreal Engine, CryEngine 및 기타 주요 게임 엔진에 이상적
3D 그래픽 애플리케이션
시각화 소프트웨어, CAD 애플리케이션 및 3D 모델링 도구에 적합
VR/AR 애플리케이션
Windows 기반 하드웨어를 대상으로 하는 VR/AR 경험에 탁월
DDS와 기타 형식
DDS를 다른 널리 사용되는 텍스처 형식과 비교하는 방법:
DDS와 모바일 형식(ETC/ASTC)
DDS는 데스크톱 환경에서 탁월한 성능을 발휘하는 반면, 모바일 형식은 모바일 GPU 제약 조건 및 대역폭에 맞게 최적화됩니다.
DDS와 비압축 텍스처
DDS는 하드웨어 가속을 통해 4:1~8:1 압축을 제공하고 전체 대역폭이 필요한 비압축 텍스처를 제공합니다.
DDS 대 KTX
DDS는 Windows/DirectX에 초점을 맞춘 반면 KTX는 크로스 플랫폼 OpenGL/Vulkan 호환성을 제공합니다.
DDS와 웹 형식
DDS는 데스크톱 최적화를 제공하는 반면 Basis Universal과 같은 웹 형식은 웹 우선 압축 및 전달을 제공합니다.
DDS 도구 및 리소스
마이크로소프트 다이렉트X SDK
DDS 변환 및 조작을 위한 texconv 명령줄 도구가 포함된 공식 SDK
AMD 압축기
실시간 미리보기 및 품질 조정 기능을 갖춘 BCn 압축용 고급 GUI 도구
NVIDIA 텍스처 도구
뛰어난 BC7 압축 기능을 갖춘 고품질 압축 라이브러리 및 도구
Unity 텍스처 임포터
DDS 가져오기 및 압축 설정을 위한 내장 Unity 도구
언리얼 엔진 텍스처 에디터
DDS 지원 및 압축 사전 설정을 통한 포괄적인 텍스처 관리
DDS 모범 사례
콘텐츠 유형에 따라 올바른 BCn 형식을 선택하세요. 확산의 경우 BC1, 알파의 경우 BC3, 노멀의 경우 BC5, 고품질의 경우 BC7
성능 향상을 위해 3D 환경에서 사용되는 텍스처에 대해 항상 밉맵을 생성하세요.
최적의 GPU 메모리 정렬을 위해 가능하면 2의 거듭제곱 차원을 사용하세요.
다양한 설정으로 압축 품질을 테스트하여 파일 크기와 시각적 품질 사이의 균형을 찾으세요.
압축 형식을 선택할 때 대상 플랫폼 기능을 고려하십시오.
다양한 텍스처 유형(확산, 반사, 일반 맵)에 적합한 압축 설정을 사용합니다.
결론
DDS는 그래픽 산업, 특히 Windows 기반 응용 프로그램 및 게임 개발의 초석 형식으로 남아 있습니다. 하드웨어 가속 BCn 압축, 포괄적인 기능 세트 및 성숙한 도구 에코시스템은 데스크톱 및 콘솔 플랫폼을 대상으로 하는 개발자에게 탁월한 선택입니다.
ASTC 및 Basis Universal과 같은 최신 형식은 특정 사용 사례에 이점을 제공하지만 DDS는 계속해서 기존 PC 게임 애플리케이션에 최적의 성능과 호환성을 제공합니다. 장점과 한계를 이해하면 개발자가 특정 프로젝트 및 대상 플랫폼에 대한 텍스처 형식 선택에 대해 정보에 입각한 결정을 내리는 데 도움이 됩니다.
추가 자료 및 자료
다음과 같은 권위 있는 리소스를 통해 지식을 확장하세요.
- 마이크로소프트 DirectX 문서 - DDS 형식 및 사용법에 대한 공식 Microsoft 문서
- DirectX SDK texconv 도구 - 텍스처 형식 변환을 위한 Microsoft의 명령줄 도구
- AMD 압축기 - 텍스처 압축 및 형식 변환을 위한 고급 GUI 도구
- BCn 압축 가이드 - BCn 압축 알고리즘 및 형식에 대한 기술 가이드