Поделиться через


Практическое руководство. Экспорт текстуры для использования с приложениями Direct2D или Javascipt

Конвейер содержимого образа может создавать текстуры, совместимые с внутренними соглашениями отрисовки Direct2D Текстуры этого типа подходят для использования в приложениях, использующих технологию Direct2D и в приложениях для Магазина Windows, созданных с помощью JavaScript.

Этот документ демонстрирует эти действия:

  • Настройка исходного изображения для обработки конвейером содержимого изображений.

  • Настройка конвейера содержимого изображений для формирования текстуры, которую можно использовать в приложении Direct2D или JavaScript.

    • Создайте DDS-файл с блочным сжатием.

    • Формирование предварительно умноженного альфа-канала.

    • Отключение формирования MIP-карт.

Соглашения отрисовки в Direct2D

Текстуры, используемые в контексте Direct2D, должны удовлетворять внутренним соглашениям отрисовки Direct2D:

  • Direct2D реализует прозрачность и полупрозрачность с использованием предварительного умножения альфа-канала. Текстуры, используемые с Direct2D, должны содержать предварительно умноженную альфу-версию, даже если текстура не использует прозрачность или полупрозрачность. Дополнительные сведения о предварительно умноженных альфа-каналах см. в разделе Практическое руководство. Экспорт текстуры с предварительно умноженными значениями альфа.

  • Текстуру следует указывать в формате DDS, с помощью одного из этих форматов блочного сжатия.

    • Сжатие BC1_UNORM

    • Сжатие BC2_UNORM

    • Сжатие BC3_UNORM

  • Использование MIP-карт не поддерживается.

Создание текстуры, совместимой с соглашениями отрисовки Direct2D

  1. Начните с базовой текстуры. Загрузите существующее изображение или создайте новое, как описано в разделе Практическое руководство. Создание простейшей текстуры. Для поддержки поблочного сжатия в формате .dds укажите текстуру, которая имеет ширину и высоту, кратные 4, например, 100x100, 128x128 или 256x192. Поскольку использование MIP-карт не поддерживается, текстура не обязательно должна быть квадратной, и ее размер не обязательно должен быть представлять собой степень двух.

  2. Настройте файл текстуры таким образом, чтобы он обрабатывался конвейером содержимого изображений. В Обозревателе решений откройте контекстное меню для только что созданного файла текстур и выберите Свойства. В Свойства конфигурации на странице Общие присвойте свойству Тип элементов значение Конвейер содержимого образа. Убедитесь, что свойство Содержимое имеет значение Да, а для свойства Исключить из сборки задано значение Нет, а затем нажмите кнопку Применить. Страница свойств конфигурации Конвейер содержимого изображения отобразится.

  3. Задайте один из форматов блочного сжатия в качестве формата вывода. В Свойства конфигурации, Конвейер содержимого образа, Общие присвойте свойству Сжатие значение Сжатие BC3_UNORM (/compress:BC3_UNORM). Можно выбрать любой другой формат (BC1, BC2 или BC3) в зависимости от конкретных требований. Direct2D в настоящее время не поддерживает текстуры BC4, BC5, BC6 или BC7. Дополнительные сведения о различных форматах BC см. в разделе Block Compression (Direct3D 10).

    Примечание

    Заданный формат сжатия определяет формат файла, созданный конвейером содержимого изображения.Это отличается от свойства Формат исходного изображения в редакторе изображений, что определяет формат файла исходного изображения как сохраненный на диске, т. е. работающий формат.Обычно сжатый рабочий формат не требуется.

  4. Настройте конвейер содержимого изображений для формирования выходных данных, в которых используются предварительно умноженные альфа-каналы. На странице Свойства конфигурации, Конвейер содержимого образа, Общие задайте для свойства Преобразовать к предварительно умноженному альфа-формату значение Да (/generatepremultipliedalpha).

  5. Настройте конвейера содержимого изображений таким образом, чтобы он не формировал MIP-карты. В Свойства конфигурации, Конвейер содержимого образа, Общие задайте для свойства Создавать MIP-объекты значение Нет.

  6. Нажмите кнопку ОК.

При сборке проекта конвейер содержимого изображения преобразует исходное изображение из рабочего формата в указанный выходной формат (преобразование включает в себя создание предварительно умноженных значений альфа-канала), и результат копируется в выходной каталог проекта.