|
开门见山.
caster shader
{
vp
{
Out.position = mul(matWVP, In.position);
Out.depth.xy = Out.position.zw;
}
fp
{
Out.color = In.depth.x / In.depth.y;
}
}
receiver shader
{
vp
{
vec4 pos = mul(matWorld, In.position);
vec4 ShadowUV = mul(matShadow, pos);
Out.position = mul(matWVP, In.position);
Out.ShadowUV = ShadowUV;
}
fp
{
vec2 texcoord = In.ShadowUV.xy / In.ShadowUV.w;
float depth = tex2D(ShadowMap, texcoord);
Out.color = pow(final, 0.01f);
}
}
我测试了下, 我在receiver做了pow 0.01f, 理论上ShadowMap里存的是深度值的话,
阴影从近到远应该是从黑到白过度的, 但是阴影都是黑色的, 这说明ShadowMap里存的是黑色,
请问下大家我应该怎么做才对. |
|