Laden eines vorkompilierten HLSL-Shaders in den Speicher zur Verwendung mit CreatePixelShader

8

Ich muss einen kompilierten Pixel-Shader in den Speicher laden, um ihn mit CreatePixelShader zu verwenden, aber ich kann keine D3DX-Aufrufe verwenden.

Wie kann ich das tun?

(Ich verwende Visual Studio 2010 als meinen Compiler und C ++ als Sprache)

    
Steve 16.02.2011, 17:57
quelle

2 Antworten

4

Erstellen Sie Ihren vorkompilierten Shader über die Befehlszeile mit fxc:

%Vor%

Laden Sie die vorkompilierten Shader-Daten mit dem normalen C ++ - Dateiladecode.

im pseudo-isch Code:

%Vor%     
Jasper 16.02.2011, 18:36
quelle
20

Mir ist klar, dass jemand früher Pseudocode gepostet hat. Hier ist C ++ - Code mit dem Windows SDK (und nicht die D3DX-Bibliotheken wie angefordert).

Hier ist "PixelShader.cso" der vorkompilierte HLSL-Shader, der von Visual Studio 11 aus einer HLSL-Datei im Projekt generiert wurde. Die kompilierte .cso-Datei wird normalerweise standardmäßig in den Ordner "Projekte / Projektname / Debug" verschoben. Daher muss es vor dem Verwenden in das gleiche Verzeichnis wie der Quellcode ausgeschnitten und eingefügt werden. Beachten Sie, dass diese Einstellung geändert werden kann, indem Sie in Visual Studio 11 mit der rechten Maustaste auf die HLSL-Datei klicken und die Ausgabeeinstellungen bearbeiten. Standardmäßig ist es: $ (OutDir)% (Dateiname) .cso, ändern Sie es in: $ (Directory)% (Dateiname) .cso

%Vor%

Beachten Sie das L vor "PixelShader.cso". Mein Projekt verwendete den Multi-Byte-Zeichensatz. Wenn Sie Ihren Unicode verwenden, ist das L möglicherweise nicht erforderlich.

    
gundamb2 25.05.2012 18:12
quelle

Tags und Links