//------------------------------------------------------------------------------
// technique:胶囊体
//------------------------------------------------------------------------------
technique DefaultTech
{
pass P0
{
CullMode = CCW;
// 颜色融合方式
AlphaBlendEnable = true;
BlendOp = Add;
SrcBlend = SrcColor;//One;
DestBlend = InvSrcColor;//Zero;//One;
// Z 缓冲区设置
//ZWriteEnable = false;
//ZFunc = Less;
// 模板缓冲区设置:设置通过比较,参考值为0,总是通过比较,通过后缓冲区 -1
StencilEnable = true;
StencilRef = 0;
//StencilMask = 0xFFFFFFFF;
//StencilWriteMask = 0xFFFFFFFF;
StencilFunc = Equal;
//StencilZFail = Decr;
StencilPass = Decr;
//
VertexShader = compile vs_2_0 RenderSceneVS( );
PixelShader = compile ps_2_0 RenderScenePS( );
}
pass P1
{
CullMode = CW;
// 总是通过比较,通过后缓冲区 +1,部分原来为 0xff的会为 0x0
StencilEnable = true;
StencilFunc = Always;
StencilPass = Incr;//Decr;
//StencilZFail = Incr;//Decr;
//StencilWriteMask = 0x0f;
//StencilMask = 0x0f;
VertexShader = compile vs_2_0 RenderSceneVS( );
PixelShader = compile ps_2_0 RenderScenePS( );
}
pass P2
{
FillMode = WireFrame;
VertexShader = compile vs_2_0 RenderSceneVS( );
PixelShader = compile ps_2_0 RenderScenePS_Line( );
}
}
//------------------------------------------------------------------------------
// technique:地面
//------------------------------------------------------------------------------
technique DefaultTech
{
pass P0
{
CullMode = CCW;
//
/*
ZEnable = true;
ZWriteEnable = true;
ZFunc = LessEqual;
*/
StencilEnable = true;
//
/*
AlphaBlendEnable = true;
BlendOp = Add;
SrcBlend = SrcColor;
DestBlend = InvSrcColor;//DestColor;
*/
//
StencilRef = 0x0;
StencilFunc = Equal;//Greater;
//StencilPass = Keep;
//
VertexShader = compile vs_2_0 RenderSceneVS( );
PixelShader = compile ps_2_0 RenderScenePS( );
}
}