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 );
}
}