Shadertyp

Die Syntax zum Deklarieren einer Shadervariablen in einem Effekt wurde von Direct3D 9 in Direct3D 10 geändert.

Shadertyp für Direct3D 10

Deklarieren Sie eine Shadervariable innerhalb eines Effektpasses (in Direct3D 10) mithilfe der Shadertypsyntax:

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, mit dem kompiliert werden soll. Dies gilt für alle Ziele, einschließlich aller Direct3D 9-Ziele sowie der Ziele des Shadermodells 4: 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. (...) stellt die Shaderargumente dar. Dies sind die gleichen Argumente, die an die Shadererstellungs-API übergeben werden: VSSetShader oder GSSetShader oder PSSetShader.

Beispiel

Hier ist ein Beispiel, das einen Vertex-Shader und ein Pixel-Shaderobjekt erstellt, die für ein bestimmtes Shadermodell kompiliert wurden. 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 innerhalb eines Effektpasses (für Direct3D 9) mithilfe der Shadertypsyntax:

PixelShader = ShaderTarget ShaderFunction(...); kompilieren VertexShader = ShaderTarget ShaderFunction(...); kompilieren

Parameter

Element Beschreibung
XXXShader
Eine Shadervariable, die den kompilierten Shader darstellt. Kann entweder PixelShader oder VertexShader sein.
ShaderTarget
Das Shadermodell, mit dem 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. (...) stellt die Shaderargumente dar. Dies sind die gleichen Argumente, die an die Shadererstellungs-API übergeben werden: SetVertexShader oder SetPixelShader.

Beispiel

Hier ist ein Beispiel für einen Vertex-Shader und ein Pixel-Shaderobjekt, die für ein bestimmtes Shadermodell kompiliert wurden.

// Direct3D 9
technique RenderSceneWithTexture1Light
{
    pass P0
    {          
        VertexShader = compile vs_2_0 RenderSceneVS( 1, true, true );
        PixelShader  = compile ps_2_0 RenderScenePS( true );
    }
}

Siehe auch

Datentypen (DirectX HLSL)