Ich möchte eine Mipmap-Kette für eine 2D-Textur erstellen, indem ich das Basisbild in Mip-Level blitze. In Vulkan kann dazu vkCmdBlitImage
verwendet werden, während das Bild linear gefiltert wird (siehe another question). Wie kann ich das Gleiche in D3D12 erreichen?Gibt es sowas wie vkCmdBlitImage für D3D12?
1
A
Antwort
4
Afaik D3D12 hat keine solche Funktionalität und Sie sollten die Mip-Map-Kette mit einem Compute-Shader wie this einer der MiniEngine in den von MS zur Verfügung gestellten DX-Samples erzeugen.
Dies ist in dem Fall, wenn Sie eine Laufzeitoberfläche mit einer Mip-Kette möchten. Es wird dringend empfohlen, die Textur in das BC-Format zu komprimieren und offline Mips zu generieren, um bessere Algorithmen für sie zu erhalten, wie zum Beispiel Schärfen, korrektes Wrapping und Renormierung für normale Maps. – galop1n
Das [DirectX Tool Kit für DirectX 12] (https://github.com/Microsoft/DirectXTK12/) enthält Code zum Generieren von Mipmap-Ketten mit Shadern. –