使用unity的内置shadow宏,会有很多坑要踩
现在踩过的坑有:
1.平台差异.使用pc平台看不到阴影了,使用安卓平台就有阴影了.就是这么神奇.版本2017.1.0f3(原因还未查明)
2.确保变量名匹配.a2f 结构体 vertex 顶点着色器v2f命名为v,定点位置变量为pos
3.Edit-ProjectSetting-Quality-Shadows-Shadow Distance控制阴影精度和可视距离
4.队列不能是transparent(有可能是shadowMap制作方式相关)
几个内置宏:
SHADOW_COORDS(3)
TRANSFER_SHADOW(o);
UNITY_LIGHT_ATTENUATION(atten, v, v.worldPos);//计算阴影
color = lerp (float3(0,0,0), color, atten);//阴影