SHADOWS_SCREEN宏打开的时机
必须满足以下的两个条件:
1、平行光投射阴影
2、有物体构成阴影条件
3、设置好阴影距离
第一个条件,限定在平行光,对于点光、其他的光源是不行的。
测试,在场景中建立平行光,开启阴影:
第二个条件,必须有物体参与了shadowmap的绘制,也即是默认使用的是屏幕空间阴影。
如上图只有一个cube,是不会开启这个关键字的,需要有另外一个物体给自己投影。
如上图,我们有开启一个sphere,那么这个球可以在cube上投影了。
第三个条件,就是设置好阴影的距离,只有在指定的距离有阴影的时候才能开启。
测试代码可以这样写:
fixed4 frag (v2f i) : SV_Target
{
#if defined (SHADOWS_SCREEN)
return fixed4(1, 0, 0, 1);
#else
return fixed4(0, 1, 0, 1);
#endif
}