2d shader unity 阴影_Unity 简单阴影shader的实现

本文介绍了如何在Unity中使用shader实现2D阴影。通过创建光源摄像机、渲染深度图、自定义shader,将物体深度值存储并比较,从而达到阴影效果。详细步骤包括设置渲染贴图、调整层级、编写shader代码等。
摘要由CSDN通过智能技术生成

这边文章会按照阴影实现的原理一步一步去解释每一步的代码和实现

这篇文章使用的是常规的阴影贴图的原理实现,原理很简单,就是在光源的位置假设一个摄像机我们叫做L,然后用L摄像机把照射物体A的深度值存储到一个深度贴图里面,我们正常渲染场景的摄像机叫做E,我们把E照射的物体P点,转换光源空间,然后对比两个点的深度值,就知道p点是否有阴影。

1 如图我们先建立一个简单的场景然后在光源下面建立一个摄像机用来渲染深度图,cube是我们产生阴影的物体,plane是我们接受阴影的物体。

2. 我们建立一个ShadowTest脚本挂接在光源上,在Start函数里面创建渲染贴图

Camera m_renderCam;

RenderTexture rt;

void Start()

{

m_renderCam = transform.Find("Camera").GetComponent();

rt = new RenderTexture(512, 512, 24);

m_renderCam.targetTexture = rt;

}

3.因为我们只对cube产生阴影,所以我们新添加一个player的层级,把cube的层级设置为player,同时把灯光摄像机的cullingmask设置为player,保证我们的深度图上只有这个cube。

4. 我们简单的建立一个unlit sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值