像素着色器的疑惑。。

像素着色器的疑惑。。
/**/ /////pixel shader:
sampler BaseTex;
sampler SpotLightTex;
sampler StringTex;



struct  PS_INPUT
{    
    float2 
base : TEXCOORD0;
    float2 spotlight : TEXCOORD1;
    float2 text : TEXCOORD2;    
}
;

struct  PS_OUTPUT
{
    vector finalcolor : COLOR;
    
}
;

PS_OUTPUT Main(PS_INPUT input)
{
    PS_OUTPUT  output 
= (PS_OUTPUT)0;
    
    vector b 
= tex2D(BaseTex, input.base);
    vector s 
= tex2D(SpotLightTex, input.spotlight);
    vector t 
= tex2D(StringTex, input.text);

    vector c 
= b * s + t;
    c 
+= 0.1f;

    output.finalcolor 
= c;


    
return output;
}



/**/ ///////////////////////主程序
// ..

BT 
=  PSConstantTable -> GetConstantByName( 0 " BaseTex " );
        ST 
=  PSConstantTable -> GetConstantByName( 0 " SpotLightTex " );
        TT 
=  PSConstantTable -> GetConstantByName( 0 " StringTex " );
// ..

BT, ST, TT 为D3DXHANDLE类型,调试到这里时
这三个都为错误指针,PSConstantTable为获取正常的静态数据表指针,pixel shader编译也没问题,到底是哪里错了,抓狂。。
为什么编译没出错,获取静态数据表也没出错,就是在获取着色器里的sampler句柄时出错。。。谜团至今未解。。

你可能感兴趣的:(像素着色器的疑惑。。)