《Unity3D ShaderLab开发实战详解》第10章 平面阴影

本文详细讲解了Unity3D ShaderLab中实现平面阴影的三种方法:平行光投影,点光源投影以及阴影的淡出效果。通过将物体顶点变换到接收阴影的平面局部空间,计算投影坐标,并传递矩阵。点光源投影则需要计算光源方向。阴影淡出利用距离差来逐渐淡化阴影效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

平行光对平面的投影

原理:把物体顶点变换到接收阴影的平面的局部空间中,然后计算顶点沿着平行光到平面上的投影坐标。

  • 将接受阴影的平面的矩阵传递给每个发射阴影的物体。
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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值