次の方法で共有


エフェクト テクニックの構文 (Direct3D 10)

エフェクト テクニックは、次の構文を使用して宣言されます。

technique10 TechniqueName  [ <Annotations > ] {     pass PassName [ <Annotations > ]      {         [ SetStateGroup; ]        [ SetStateGroup; ]        ...        [ SetStateGroup; ]     }  }

パラメーター

  • technique10
    必須キーワードです。
  • TechniqueName
    (省略可能)エフェクト テクニックの名前を一意に識別する ASCII 文字列です。
  • Annotations >
    [in] (省略可能)エフェクト システムで無視される、1 つ以上のユーザー指定情報 (メタデータ) です。構文については、「注釈の構文 (Direct3D 10)」を参照してください。
  • pass
    必須キーワードです。
  • PassName
    [in] (省略可能)パスの名前を一意に識別する ASCII 文字列です。
  • SetStateGroup
    [in] 次のようなステート グループを 1 つまたは複数設定します。
    StateGroup 構文
    ブレンディング ステート
    SetBlendState( arguments ); 

    引数リストについては、「ID3D10Device::OMSetBlendState」を参照してください。

    深度/ステンシル ステート
    SetDepthStencilState( arguments ); 

    引数リストについては、「ID3D10Device::OMSetDepthStencilState」を参照してください。

    ラスタライザー ステート
    SetRasterizerState( arguments ); 

    引数リストについては、「ID3D10Device::RSSetState」を参照してください。

    シェーダー ステート
    SetXXXShader( CompileShader( shader_profile, ShaderFunction( args ) ) );

    または

    SetXXXShader( CompileShader( NULL ) );

    または

    SetXXXShader( NULL );

    SetXXXShader は、SetVertexShaderSetGeometryShader、または SetPixelShader のいずれか 1 つです (これらは、API メソッド ID3D10Device::VSSetShaderID3D10Device::GSSetShader、および ID3D10Device::PSSetShader と類似しています)。

ステート グループの一覧については、「エフェクト ステート グループ」を参照してください。

次の例 (「CubeMapGS サンプル」からのもの) では、ブレンディング ステートを設定します。

BlendState NoBlend {      BlendEnable[0] = False; };  ...  technique10 {     pass p2      {         ...         SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );     } }

次の例では、オブジェクトをワイヤフレーム内にレンダリングするために、ラスタライザー ステートを設定します。

RasterizerState rsWireframe { FillMode = WireFrame; };  ...  technique10 {     pass p1      {       ....         SetRasterizerState( rsWireframe );     } }

次の例 (「BasicHLSL10」からのもの) では、シェーダー ステートを設定します。ここでは頂点シェーダーとピクセル シェーダーを使用します。

technique10 RenderSceneWithTexture1Light {     pass P0     {         SetVertexShader( CompileShader( vs_4_0, RenderSceneVS( 1, true, true ) ) );         SetGeometryShader( NULL );         SetPixelShader( CompileShader( ps_4_0, RenderScenePS( true ) ) );     } }