c # — загрузка и отображение файла DDS (DXT1) в приложении UWP

Я хочу загрузить пару файлов Directdraw Surface, в частности DXT1, и отобразить их в моем очень простом приложении UWP (главным образом на C #).

Я читал о DirectXTex, но я понятия не имею, если это самый простой способ, и если да, то как использовать его в приложении UWP.

0

Решение

В Windows 8.1 и Windows 10 Компонент Windows Imaging имеет встроенный кодек для загрузки файлов DDS, использующих сжатие BC1 / DXT1. Самый простой способ использовать WIC из C # UWP — это использовать Win2D. Имейте в виду, что WIC вернет несжатую версию изображения, и если вы этого хотите, вы готовы к работе.

Обратите внимание, что встроенный кодек DDS поддерживает только файлы 2D-изображений DXT1-DXT5 / BC1-BC3. Это не будет загружать другие формы файлов DDS. Быстрый способ проверить это посмотреть в проводнике. Если DDS отображается с миниатюрой, это поддерживается.

Из вашего вопроса не ясно, что вы собираетесь делать с загруженными данными. Если вы хотите использовать Direct3D из C #, то вы должны выглядеть примерно так: SharpDX или же SlimDX. Если вы используете Direct2D, Win2D это путь.

Когда использовать DirectXTex DDSTextureLoader для загрузки файлов DDS, см. этот блог. Вкратце: DirectXTex предназначен для инструментов, которые должны обрабатывать все преобразования различных форматов, в частности устаревшие форматы файлов DDS; DDSTextureLoader в Набор инструментов DirectX предназначен для использования во время выполнения, когда вы можете убедиться, что загружаете файл DDS, который уже находится в поддерживаемом формате DXGI.

1

Другие решения

Win2D может загружать и рисовать напрямую из форматов сжатых пикселей BC: http://microsoft.github.io/Win2D/html/BlockCompression.htm

1

По вопросам рекламы [email protected]