【向其他物体投射阴影】虽然当前的Shader中不存在Tags是”LightMode”=”ShadowCaster”的pass,但是只要FallBack “Specular”中存在就可以实现向其他物体投射阴影,前提是光源开启了阴影
【接收其他物体的阴影】
1.引入#include “AutoLight.cginc”,因为关于阴影计算的宏都在这里
2.在v2f结构体中加入SHADOW_COORDS(3),这里的3只是TEXCOORD的编号而已,因为前面使用了012
3.在vert着色器return之前不要忘了计算TRANSFER_SHADOW(o);的值。这里需要注意的是在v2f的结构体中SV_POSTION类型变量的名字必须是pos(小写的),因为这个func把o传递进去之后首先调用的就是o.pos,如果你没有pos那么就会报错了
4.在frag着色器中计算阴影的强度fixed shadow = SHADOW_ATTENUATION(i);
最后在frag返回颜色之前,将shadow的值与颜色相乘即可得到阴影
Shader "Unlit/Blinn-phong"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_SpecularColor(