Shadertyp
Die Syntax zum Deklarieren einer Shadervariable in einem Effekt wurde von Direct3D 9 in Direct3D 10 geändert.
Shadertyp für Direct3D 10
Deklarieren Sie eine Shadervariable in einem Effektdurchlauf (in Direct3D 10) mithilfe der Syntax des Shadertyps:
SetPixelShader Compile( ShaderTarget, ShaderFunction ); SetGeometryShader Compile( ShaderTarget, ShaderFunction ); SetVertexShader Compile( ShaderTarget, ShaderFunction ); |
Parameter
Element | Beschreibung |
---|---|
SetXXXShader |
Der Direct3D-API-Aufruf, der das Shaderobjekt erstellt. Kann entweder SetPixelShader oder SetGeometryShader oder SetVertexShader sein. |
ShaderTarget |
Das Shadermodell, für das kompiliert werden soll. Dies gilt für jedes Ziel, einschließlich aller Direct3D 9-Ziele sowie der Shadermodell 4-Ziele : vs_4_0, gs_4_0 und ps_4_0. |
ShaderFunction |
Eine ASCII-Zeichenfolge, die den Namen der Shadereinstiegspunktfunktion enthält; Dies ist die Funktion, die mit der Ausführung beginnt, wenn der Shader aufgerufen wird. Das (...) stellt die Shaderargumente dar; Dies sind die gleichen Argumente, die an die API der Shadererstellung übergeben werden: VSSetShader oder GSSetShader oder PSSetShader. |
Beispiel
Hier sehen Sie ein Beispiel, das einen Vertex-Shader und ein Pixelshaderobjekt erstellt, die für ein bestimmtes Shadermodell kompiliert werden. Im Direct3D 10-Beispiel gibt es keinen Geometrie-Shader, sodass der Zeiger auf NULL festgelegt ist.
// Direct3D 10
technique10 Render
{
pass P0
{
SetVertexShader( CompileShader( vs_4_0, VS() ) );
SetGeometryShader( NULL );
SetPixelShader( CompileShader( ps_4_0, PS() ) );
}
}
Shadertyp für Direct3D 9
Deklarieren Sie eine Shadervariable in einem Effektdurchlauf (für Direct3D 9) mithilfe der Shadertypsyntax:
PixelShader = Compile ShaderTarget ShaderFunction(...); VertexShader = Compile ShaderTarget ShaderFunction(...); |
Parameter
Element | Beschreibung |
---|---|
XXXShader |
Eine Shadervariable, die den kompilierten Shader darstellt. Kann entweder PixelShader oder VertexShader sein. |
ShaderTarget |
Das Shadermodell , für das kompiliert werden soll; hängt vom Typ der Shadervariablen ab. |
ShaderFunction(...) |
Eine ASCII-Zeichenfolge, die den Namen der Shadereinstiegspunktfunktion enthält; Dies ist die Funktion, die mit der Ausführung beginnt, wenn der Shader aufgerufen wird. Das (...) stellt die Shaderargumente dar; Dies sind die gleichen Argumente, die an die API für die Shadererstellung übergeben werden: SetVertexShader oder SetPixelShader. |
Beispiel
Hier sehen Sie ein Beispiel für einen Vertexshader und ein Pixelshaderobjekt, das für ein bestimmtes Shadermodell kompiliert wurde.
// Direct3D 9
technique RenderSceneWithTexture1Light
{
pass P0
{
VertexShader = compile vs_2_0 RenderSceneVS( 1, true, true );
PixelShader = compile ps_2_0 RenderScenePS( true );
}
}