Unity特定Layer层物体渲染顺序调整

需求描述

某个层级物体始终处于另一个层级前面渲染

第一个想法肯定是通过材质的shader ,如果这两个层级的物体使用不同材质,可以通过调整材质的渲染队列即可

除此之外另一个不动材质的办法,即通过调整RenderPipelineAsset 增加渲染特性,根据层级调整

这里的层级指物体的Layer

file

指定层写入模板

使用Urp,打开UniversalRenderPipelineAsset_Renderer,Add Feature

file

关闭默认对于指定层级的渲染,使用Feature

file

假设我们需要PlayerBack处于Player后面,先渲染PlayerBack 层,

Queue 与所宣传层的材质渲染队列保持一致
Layer Mask选中要渲染的目标层
不写深度,写入模板
file

目标层在写入层之后做模板测试、

目标层在写入层之后做模板测试,会只在目标层渲染,(因为只有写入层才能通过模板测试)

此处深度测试总是通过,同时写入深度,目的是为普通层通过深度测试(如果出现黑色,是因为还需要再渲染普通层)
file

file

普通层

普通层正常渲染,因为之前写入过深度,所以可以在渲染在指定层之上,且又因为只有指定层写入模板,所以不会干扰其余渲染层级(指定层高亮原理也是应用模板测试)

file

效果

红色Player,白色PlayerBack,PlayerBack始终处于Player 后方

file

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值