如何在unity的URP下实现阴影

本文详细介绍在Unity的通用渲染管线(URP)中处理阴影的方法,包括如何修改自定义shader以兼容URP,以及如何实现物体阴影和地面阴影。文章提供了具体的代码示例,解释了如何正确引用URP内建的接口和方法。

如果你之前是用buildin pipeline写的shader,其中用了SHADOW_ATTENUATION宏的话,在URP下会失效。

由于官方文档对自定义shader描述不多,所以自己只能去看URP内建的shader源码去看实现方法。

但是URP内建的shader都是用HLSLPROGRAM和ENDHLSL来写的,并且引用文件都是.hlsl。

和之前的CGPROGRAM,还有引用文件类型.cginc有所不同。

所以,如果想引用URP内建的方法和接口,必须得按照它们现在的方式来写。

但经师傅指点,我看到了Unity官方的这一段话:

原来我们一直都是用HLSL来写的shader,并非是cg语言,只是keywords和文件引用没改成HLSL方式的。

所以我们要直接改成HLSL方式的shader还是比较友好的。

具体的操作方法是:

首先把我们的CGPROGRAM、ENDCG分别改成HLSLPROGRAM和ENDHLSL。

接着把#include "UnityCG.cginc"等文件引用改成

#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"这种方式,

具体要引用哪些文件,要自己去

Editor\Data\Resources\PackageManager\Editor\com.unity.render-pipelines.universal-7.3.1

目录下,解压包,看具体想引用哪个文件,再把相对路径写上去。

上面只是把cg的方式改成HLSL的方式,下面是具体实现urp的阴影方法:

首先,我看到了这一篇文章:

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值