| Microsoft DirectX 8.1 (C++) | 
An effect file defines the techniques used. The basic layout of an effect file starts with one or more declarations and then defines each technique for that effect. This sample shows a basic effect file that contains two textures and two techniques. This effect file allows a device that doesn't support single-pass rendering for two textures to use multiple passes to render the textures.
// Declare two textures.
texture tex0;        // First texture
texture tex1;        // Second texture
// Technique 't0' will render the scene in one pass.  The color 
// for each pixel is calculated to be tex0 + tex1.  Because it uses 
// two textures at once, it will work only on cards that support 
// multitexture.
technique t0
{
    pass p0
    {
        Texture[0] = <tex0>;
        ColorOp[0] = SelectArg1;
        ColorArg1[0] = Texture;
 
        Texture[1] = <tex1>;
        ColorOp[1] = Add;
        ColorArg1[1] = Texture;
        ColorArg2[1] = Current;
		        
        ColorOp[2] = Disable;
    }
}
// Technique 't1' renders the scene in two passes.  The first pass sets 
// each pixel to the color of tex0.  The second pass adds in the color 
// of tex1.  The result should look identical to the first 
// technique.  However, this technique can be used on cards that do not 
// support multitexture.
 
technique t1
{
    pass p0
    {
        AlphaBlendEnable = False;
 
        Texture[0] = <tex0>;
        
        ColorOp[0] = SelectArg1;
        ColorArg1[0] = Texture;
        ColorOp[1] = Disable;
    }
 
    pass p1
    {
        AlphaBlendEnable = True;
        SrcBlend = One;
        DestBlend = One;
 
        Texture[0] = <tex1>;
 
        ColorOp[0] = SelectArg1;
		
        ColorArg[0] = Texture;
        ColorOp[1] = Disable;
    }
}
This example shows the basic syntax and layout of a typical effect file.
//
// Sample Effect
// This effect adds two textures, using single pass or multipass technique.
//
texture tex0;
texture tex1;
// Single pass
technique t0
{
    pass p0
    {
        Texture[0] = <tex0>;
        Texture[1] = <tex1>;
        
        ColorOp[0] = SelectArg1;
        ColorArg1[0] = Texture;
        
        ColorOp[1] = Add;
        ColorArg1[1] = Texture;
        ColorArg2[1] = Current;
        
        ColorOp[2] = Disable;
    }
}
// Multipass
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[0] = <tex1>;
               
        ColorOp[0] = SelectArg1;
        ColorArg1[0] = Texture;
        ColorOp[1] = Disable;  
    }
}