Ich muss ID3D11Texture2D Textur des Typs DXGI_FORMAT_R32G32B32A32_TYPELESS effizient zu einer Textur des Typs DXGI_FORMAT_B8G8R8A8_TYPELESS (oder einem anderen 32-Bit-RGBA-Typ) konvertieren. Grundsätzlich werden 128 Bit pro Pixel Textur auf 32 Bit pro Pixel reduziert. Sieht aus wie ID3D11DeviceContext :: CopyResource-Methode kann nicht mit einer solchen Formatkonvertierung umgehen. Soll ich einen Shader verwenden, um das zu erreichen? Wenn ja, kann der Shader mit der CopyResource-Methode verwendet werden oder muss ich die vollständige Rendering-Pipeline einrichten? Versucht, Konvertierung auf CPU, aber es ist viel zu langsam.Konvertieren von RGBA-Daten zwischen DXGI-Formaten
0
A
Antwort
1
Im Allgemeinen, der schnellste Weg, um diese Konvertierungen zu machen, die GPU zu verwenden, um ein 'Full-Screen-Quad' der Textur des Quellformats auf ein Renderziel des Zielformats zu rendern. Die Einschränkungen basieren auf der Direct3D-Hardwarefeature-Ebene, für die Renderzielformate unterstützt werden. Beispielsweise können Sie auf allen Feature-Levels mit modernen Treibern darauf zählen, dass DXGI_FORMAT_B8G8R8A8_UNORM
als Renderziel unterstützt wird, jedoch nicht DXGI_FORMAT_B8G8R8A8_SNORM
.
Siehe MSDN und Direct3D Feature Levels
Für eine CPU-basierte Rückfall für alle möglichen DXGI Formatkonvertierungen finden DirectXTex.
Verwandte Themen
- 1. Konvertieren von Variablen zwischen Klassen
- 2. Konvertieren von Daten zwischen Kalendern in Xamarin.Android
- 3. Konvertieren zwischen Priorität von zwei Systemen
- 4. Konvertieren zwischen britischem/amerikanischem Englisch
- 5. Konvertieren zwischen Typen in Funktionsvorlagen
- 6. PHP 5.4: konvertieren zwischen Datumsformate
- 7. Konvertieren zwischen LocalDate und sql.Date
- 8. Konvertieren von std :: complex zwischen Array von zwei Elementen.
- 9. Konvertieren zwischen Scala-Klasse und Dynamic
- 10. Konvertieren zwischen OpenCV Matte und Leptonica Pix
- 11. CGO: Konvertieren zwischen LPCWSTR und String
- 12. Konvertieren zwischen EnumSet und Array von booleschen Werten
- 13. Konvertieren von Javascript-Objekten zwischen Redux-Shop und Anwendung
- 14. Konvertieren von ms-Datenbank MySQL zwischen zwei Terminen Ausgabe
- 15. Konvertieren von Zeichenfolge in Base36 Inkonsistenzen zwischen Sprachen.
- 16. Konvertieren von Zeiten zwischen den Zeitzonen, die Umwandlung nicht
- 17. Konvertieren von Problemen zwischen Doppel und Strings in Newtonsoft.Json.net
- 18. Konvertieren von Daten zwischen Zeitzonen in AppModel-> afterFind (cakePHP)
- 19. Konvertieren zwischen Bezier-Kurven von unterschiedlichem Grad (Auftrag)
- 20. Java-Bibliotheken zum Konvertieren zwischen Zeichenkodierungen
- 21. Konvertieren Strings zwischen Hex-Format und Binärformat
- 22. Konvertieren zwischen C enum und XML
- 23. Konnte nicht konvertieren zwischen Codierungen mit iconv
- 24. wie zwischen zwei benutzerdefinierten Typen zu konvertieren
- 25. Wie zwischen verschiedenen pylab.histogram Ergebnissen konvertieren
- 26. Konvertieren zwischen Arten in Objective-C
- 27. Konvertieren zwischen unbekannten Typen zur Laufzeit
- 28. Konvertieren zwischen Datum/Uhrzeit-Formaten in JavaScript
- 29. Konvertieren von OBJ in IGES
- 30. Konvertieren von Sequenzen in Codons