Tipo shader

Sintassi per dichiarare una variabile shader in un effetto modificato da Direct3D 9 a Direct3D 10.

Tipo shader per Direct3D 10

Dichiarare una variabile shader all'interno di un passaggio effetto (in Direct3D 10) usando la sintassi del tipo shader:

SetPixelShader Compile( ShaderTarget, ShaderFunction ); SetGeometryShader Compile( ShaderTarget, ShaderFunction ); SetVertexShader Compile( ShaderTarget, ShaderFunction );

Parametri

Elemento Descrizione
SetXXXShader
Chiamata API Direct3D che crea l'oggetto shader. Può essere: SetPixelShader o SetGeometryShader o SetVertexShader.
ShaderTarget
Modello shader da compilare su. Questa opzione è valida per qualsiasi destinazione, tra cui tutte le destinazioni Direct3D 9 e le destinazioni del modello shader 4 : vs_4_0, gs_4_0 e ps_4_0.
ShaderFunction
Stringa ASCII che contiene il nome della funzione di ingresso del punto di ingresso shader; questa è la funzione che inizia l'esecuzione quando viene richiamato lo shader. L'oggetto (...) rappresenta gli argomenti shader; questi sono gli stessi argomenti passati all'API di creazione dello shader: VSSetShader o GSSetShader oPSSetShader.

Esempio

Ecco un esempio che crea un oggetto vertex shader e pixel shader compilato per un determinato modello shader. Nell'esempio Direct3D 10 non esiste uno shader geometry, quindi il puntatore è impostato su NULL.

// Direct3D 10
technique10 Render
{
    pass P0
    {
        SetVertexShader( CompileShader( vs_4_0, VS() ) );
        SetGeometryShader( NULL );
        SetPixelShader( CompileShader( ps_4_0, PS() ) );
    }
}

Tipo shader per Direct3D 9

Dichiarare una variabile shader all'interno di un passaggio di effetto (per Direct3D 9) usando la sintassi del tipo shader:

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

Parametri

Elemento Descrizione
XXXShader
Variabile shader che rappresenta lo shader compilato. Può essere: PixelShader o VertexShader.
ShaderTarget
Modello shader da compilare in; dipende dal tipo di variabile shader.
ShaderFunction (...)
Stringa ASCII che contiene il nome della funzione di ingresso del punto di ingresso shader; questa è la funzione che inizia l'esecuzione quando viene richiamato lo shader. L'oggetto (...) rappresenta gli argomenti shader; questi sono gli stessi argomenti passati all'API di creazione dello shader: SetVertexShader o SetPixelShader.

Esempio

Ecco un esempio di un oggetto vertex shader e pixel shader compilato per un particolare modello shader.

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

Vedi anche

Tipi di dati (DirectX HLSL)