2016-06-30 7 views
1

Я хотел бы создать цепочку mipmap для 2D-текстуры, blitting базового изображения в уровни mip. В Vulkan для этого можно использовать vkCmdBlitImage, линейно фильтруя изображение (см. another question). Как я могу добиться такого же результата в D3D12?Есть ли что-то вроде vkCmdBlitImage для D3D12?

ответ

4

Afaik D3D12 не имеет такой функциональности, и вы должны генерировать цепочку карт mip с помощью вычислительного шейдера, например this, одного из MiniEngine в образцах DX, предоставленных MS.

+0

Это в том случае, если вы хотите поверхность времени с цепью мип. Настоятельно рекомендуется сжимать текстуру до формата BC и генерировать mips offline, чтобы на них были улучшены алгоритмы, такие как заточка, правильная упаковка и нормализация нормальных карт. – galop1n

+0

[Набор инструментов DirectX для DirectX 12] (https://github.com/Microsoft/DirectXTK12/) содержит код для создания цепей mipmap с использованием шейдеров. –