平行光对平面的投影
原理:把物体顶点变换到接收阴影的平面的局部空间中,然后计算顶点沿着平行光到平面上的投影坐标。
- 将接受阴影的平面的矩阵传递给每个发射阴影的物体。
public class PlaneShadowCaster : MonoBehaviour{
public Transform reciver;
void Update(){
renderer.shaderMaterial.SetMatrix("_World2Ground", reciever.renderer.worldToLocalMatrix);
renderer.shaderMaterial.SetMatrix("_Ground2World", reciever.renderer.LocalToWorldMatrix);
}
}
- 在发生阴影的物体的材质中计算平面阴影。
Shader "Tul/Shadow/PlanarShadow_1" {
SubShader{
Pass{
//对物体本身做一个简单的光照计算。
Tags{
"LightMode" = "ForwardBase" }
Material{
Diffuse(1,1,1,1)