Практическое руководство. Экспорт текстуры для использования с приложениями Direct2D или Javascipt
Конвейер содержимого образа может создавать текстуры, совместимые с внутренними соглашениями отрисовки Direct2D Текстуры этого типа подходят для использования в приложениях, использующих технологию Direct2D и в приложениях для Магазина Windows, созданных с помощью JavaScript.
Этот документ демонстрирует эти действия:
Настройка исходного изображения для обработки конвейером содержимого изображений.
Настройка конвейера содержимого изображений для формирования текстуры, которую можно использовать в приложении Direct2D или JavaScript.
Создайте DDS-файл с блочным сжатием.
Формирование предварительно умноженного альфа-канала.
Отключение формирования MIP-карт.
Соглашения отрисовки в Direct2D
Текстуры, используемые в контексте Direct2D, должны удовлетворять внутренним соглашениям отрисовки Direct2D:
Direct2D реализует прозрачность и полупрозрачность с использованием предварительного умножения альфа-канала. Текстуры, используемые с Direct2D, должны содержать предварительно умноженную альфу-версию, даже если текстура не использует прозрачность или полупрозрачность. Дополнительные сведения о предварительно умноженных альфа-каналах см. в разделе Практическое руководство. Экспорт текстуры с предварительно умноженными значениями альфа.
Текстуру следует указывать в формате DDS, с помощью одного из этих форматов блочного сжатия.
Сжатие BC1_UNORM
Сжатие BC2_UNORM
Сжатие BC3_UNORM
Использование MIP-карт не поддерживается.
Создание текстуры, совместимой с соглашениями отрисовки Direct2D
Начните с базовой текстуры. Загрузите существующее изображение или создайте новое, как описано в разделе Практическое руководство. Создание простейшей текстуры. Для поддержки поблочного сжатия в формате .dds укажите текстуру, которая имеет ширину и высоту, кратные 4, например, 100x100, 128x128 или 256x192. Поскольку использование MIP-карт не поддерживается, текстура не обязательно должна быть квадратной, и ее размер не обязательно должен быть представлять собой степень двух.
Настройте файл текстуры таким образом, чтобы он обрабатывался конвейером содержимого изображений. В Обозревателе решений откройте контекстное меню для только что созданного файла текстур и выберите Свойства. В Свойства конфигурации на странице Общие присвойте свойству Тип элементов значение Конвейер содержимого образа. Убедитесь, что свойство Содержимое имеет значение Да, а для свойства Исключить из сборки задано значение Нет, а затем нажмите кнопку Применить. Страница свойств конфигурации Конвейер содержимого изображения отобразится.
Задайте один из форматов блочного сжатия в качестве формата вывода. В Свойства конфигурации, Конвейер содержимого образа, Общие присвойте свойству Сжатие значение Сжатие BC3_UNORM (/compress:BC3_UNORM). Можно выбрать любой другой формат (BC1, BC2 или BC3) в зависимости от конкретных требований. Direct2D в настоящее время не поддерживает текстуры BC4, BC5, BC6 или BC7. Дополнительные сведения о различных форматах BC см. в разделе Block Compression (Direct3D 10).
Примечание
Заданный формат сжатия определяет формат файла, созданный конвейером содержимого изображения.Это отличается от свойства Формат исходного изображения в редакторе изображений, что определяет формат файла исходного изображения как сохраненный на диске, т. е. работающий формат.Обычно сжатый рабочий формат не требуется.
Настройте конвейер содержимого изображений для формирования выходных данных, в которых используются предварительно умноженные альфа-каналы. На странице Свойства конфигурации, Конвейер содержимого образа, Общие задайте для свойства Преобразовать к предварительно умноженному альфа-формату значение Да (/generatepremultipliedalpha).
Настройте конвейера содержимого изображений таким образом, чтобы он не формировал MIP-карты. В Свойства конфигурации, Конвейер содержимого образа, Общие задайте для свойства Создавать MIP-объекты значение Нет.
Нажмите кнопку ОК.
При сборке проекта конвейер содержимого изображения преобразует исходное изображение из рабочего формата в указанный выходной формат (преобразование включает в себя создание предварительно умноженных значений альфа-канала), и результат копируется в выходной каталог проекта.