프로젝트 소개
DirectXTex는 Microsoft의 공유 소스 C++ 라이브러리로, .DDS 파일을 읽고 쓰며 텍스처 콘텐츠 처리 작업을 수행합니다. 명시된 기능에는 크기 조정, 포맷 변환, 밉맵 생성, Direct3D 런타임 텍스처 리소스용 블록 압축, 높이 맵을 노멀 맵으로 변환하는 작업이 포함됩니다. 이 라이브러리는 WIC(Windows Imaging Component) API를 사용하며, .TGA 및 .HDR 리더와 라이터도 포함합니다. 이러한 포맷은 텍스처 파이프라인에서 흔히 쓰이지만 WIC에 내장 코덱이 없기 때문입니다.
저장소는 핵심 라이브러리와 여러 샘플 도구 및 런타임 로더로 구성되어 있습니다:
- DirectXTex: 레거시 포맷 변환을 포함한 완전한 기능의 DDS 리더/라이터, TGA 및 HDR 리더/라이터, WIC 기반 비트맵 리더/라이터(BMP, JPEG, PNG, TIFF, HD Photo), 텍스처 처리 함수를 갖춘 메인 라이브러리입니다. DirectXTex.h와 DirectXTex.inl만 공개 헤더로 설명되며, 대부분의 다른 헤더는 내부용입니다.
- Auxiliary: OpenEXR을 사용하는 어댑터 로딩 함수와 Xbox 텍스처 타일링 확장과 같은 선택적 소스 파일입니다.
- Common: 라이브러리와 도구에서 사용하는 공유 소스 헤더입니다.
- Texconv: DirectXTex 기반의 명령줄 텍스처 유틸리티로, 레거시 texconvex.exe 도구와 유사한 인수를 지원하며 -10/-11 인수와 필터 이름에 차이가 있고 JPEG XR(HD Photo) 지원이 추가되었습니다.
- Texassemble: 개별 입력 이미지로부터 큐브맵, 볼륨 맵 또는 텍스처 배열을 생성하는 명령줄 유틸리티입니다.
- Texdiag: 주로 디버깅을 위해 이미지 콘텐츠를 분석하는 명령줄 유틸리티입니다.
- DDSView: DDS 파일용 간단한 Direct3D 11 기반 뷰어로, 배열 텍스처와 볼륨 맵을 위한 키보드 탐색 기능을 제공합니다.
- DDSTextureLoader: Direct3D 9, 11, 12용 경량 런타임 DDS 로더로, 런타임 픽셀 데이터 변환을 수행하지 않으며 1D, 2D, 볼륨 맵, 큐브맵, 밉맵 레벨, 텍스처 배열, BC 포맷을 지원합니다.
- ScreenGrab: 주로 스크린샷용으로 DDS 또는 WIC 지원 이미지 포맷을 작성하는 Direct3D 9, 11, 12용 텍스처 작성 모듈입니다.
- WICTextureLoader: WIC를 사용하여 비트맵을 로드하고, 기능 수준 또는 명시적 매개변수에 따라 크기를 조정하며, 필요한 경우 DXGI_FORMAT으로 포맷을 변환하고 2D 텍스처를 생성하는 Direct3D 9, 11, 12용 2D 텍스처 로더입니다. 1D 텍스처, 볼륨 텍스처, 큐브맵, 텍스처 배열은 지원하지 않습니다.
README에 명시된 빌드 요구 사항에는 Visual Studio 2022 또는 2026, Windows용 clang v12 이상 또는 MinGW가 포함되며, Visual Studio의 경우 Windows 11 SDK(22000) 이상이 필요합니다. GCC 11 이상을 사용하여 Linux용 Windows 하위 시스템용으로 빌드할 수도 있습니다. CMake 프로젝트는 버전 3.21 이상이 필요합니다. 구성 요소는 레거시 DirectX SDK의 콘텐츠 없이 작동하도록 설계되었습니다.
문서는 GitHub 위키에서 호스팅됩니다. README에는 CoPilot CLI 스킬 설치, API 변경(예: 타입이 지정된 열거형 비트마스크 플래그 및 CREATETEX_FLAGS 변경)을 다루는 릴리스 노트, 특정 NuGet 패키지의 vcpkg 대체로 인한 사용 중단, Windows 7 및 Windows 8.0 지원 종료, 명령줄 도구의 GNU 스타일 긴 옵션도 문서화되어 있습니다. 이 프로젝트는 MIT 라이선스이며 CLA에 따라 기여를 환영하고, 테스트는 별도의 테스트 스위트 저장소에 제출합니다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.