Jenis Shader

Sintaks untuk mendeklarasikan variabel shader dalam efek yang berubah dari Direct3D 9 ke Direct3D 10.

Jenis Shader untuk Direct3D 10

Deklarasikan variabel shader dalam kode efek (di Direct3D 10) menggunakan sintaks jenis shader:

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

Parameter

Item Deskripsi
SetXXXShader
Panggilan API Direct3D yang membuat objek shader. Dapat berupa: SetPixelShader atau SetGeometryShader atau SetVertexShader.
ShaderTarget
Model shader untuk dikompilasi. Ini berlaku untuk target apa pun termasuk semua target Direct3D 9 ditambah target model shader 4 : vs_4_0, gs_4_0, dan ps_4_0.
ShaderFunction
String ASCII yang berisi nama fungsi titik entri shader; ini adalah fungsi yang memulai eksekusi ketika shader dipanggil. (...) mewakili argumen shader; ini adalah argumen yang sama yang diteruskan ke API pembuatan shader: VSSetShader atau GSSetShader atau PSSetShader.

Contoh

Berikut adalah contoh yang membuat shader vertex dan objek shader piksel, yang dikompilasi untuk model shader tertentu. Dalam contoh Direct3D 10, tidak ada shader geometri, sehingga pointer diatur ke NULL.

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

Jenis Shader untuk Direct3D 9

Deklarasikan variabel shader dalam kode efek (untuk Direct3D 9) menggunakan sintaks jenis shader:

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

Parameter

Item Deskripsi
XXXShader
Variabel shader, yang mewakili shader yang dikompilasi. Dapat berupa: PixelShader atau VertexShader.
ShaderTarget
Model shader untuk dikompilasi terhadap; tergantung pada jenis variabel shader.
ShaderFunction(...)
String ASCII yang berisi nama fungsi titik entri shader; ini adalah fungsi yang memulai eksekusi ketika shader dipanggil. (...) mewakili argumen shader; ini adalah argumen yang sama yang diteruskan ke API pembuatan shader: SetVertexShader atau SetPixelShader.

Contoh

Berikut adalah contoh shader vertex dan objek shader piksel, yang dikompilasi untuk model shader tertentu.

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

Lihat juga

Jenis Data (DirectX HLSL)