Microsoft DirectX 8.0 (C++)

エフェクト ファイルの構成要素

エフェクト ファイルは、使用するテクニックを定義する。エフェクト ファイルの定義は、基本的には 1 つまたは複数の宣言で始まり、その後にエフェクトの各テクニックの定義を続ける。次に示すサンプルは、2 つのテクスチャおよび 2 つのテクニックを定義するエフェクト ファイルである。

エフェクト ファイルは、エフェクトに使用する 2 つのテクスチャの宣言で始まっている。

texture tex0; // 1 番目のテクスチャ
texture tex1; // 2 番目のテクスチャ

1 番目のテクスチャでは、1 つのパスを使ってシーンをレンダリングする。

technique t0
{
    pass p0
    {
        Texture[0] = <tex0>;
        Texture[1] = <tex1>;
        
        ColorOp[0] = SelectArg1;
        ColorArg1[0] = Texture;
        
        ColorOp[1] = Add;
        ColorArg1[0] = Texture;
        ColorArg2[0] = Current;
        
        ColorOp[2] = Disable;
    }
}

2 番目のテクニックでは、複数のパスを使ってシーンをレンダリングする。このテクニックは、現在のデバイスが複数のテクスチャに対するシングルパス レンダリングをサポートしていない場合に使う。

technique t1
{
    pass p0
    {
        Texture[0] = <tex0>;
        
        ColorOp[0] = SelectArg1;
        ColorArg1[0] = Texture;
        ColorOp[1] = Disable;  
    }
    
    pass p1
    {
        AlphaBlendEnable = True;
        SrcBlend = One;
        DestBlend = One;

        Texture[1] = <tex1>;
               
        ColorOp[1] = SelectArg1;
        ColorArg1[1] = Texture;
        ColorOp[1] = Disable;  
    }
}

このエフェクト ファイルにより、デバイスが 2 つのテクスチャに対するシングルパス レンダリングをサポートしていない場合には、複数のパスを使ってテクスチャをレンダリングできる。エフェクト ファイルの詳細については、「エフェクト ファイル形式」を参照すること。