【Quest开发】极简版!透视环境下抠出身体并能遮挡身体上的服装

前两天发了一个很复杂的版本,又鼓捣了一下发现完全没有必要。我之前的理解有点偏(不是错误的但用法错了),但是有一些小伙伴收藏了,害怕里面的某些东西对谁有用,所以写了一篇新的,前两步配置环境和之前一样。

软件:Unity 2022.3.51f1c1、vscode、Meta XR All in One SDK V72

硬件:Meta Quest3

仅实验urp管线

博主搞这个主要是想做现实里的人的变身功能,最后效果如下

可以看到虽然身体是半透明的,但是裙子依旧被完全遮挡了 

速通原理: 将打开DepthTest(深度测试)DepthWrite(深度写入)的透明物体(身体)的渲染队列调至不透明物体(衣服)的前面,即完成遮挡

一、使用BuildingBlocks设置透视环境

注意:透视有个坑是camera不能开postprocessing(后处理),开后处理会导致环境全黑

二、配置一个具有全身追踪的玩家物体,可参考这篇

【Quest开发】全身跟踪(一)_quest3如何识别跟踪脚部-CSDN博客​​​​​​

我为了绑定准确直接使用meta默认的全身追踪示例

三、修改材质

仅需修改身体材质,创建一个Lit ShaderGraph(主要是我不会写shader,会写shader的朋友也可以写shader)如下配置(红框地方一致即可)

把它给到身体要用的材质,修改属性如下

这里面翻译过来就是,这是一个透明的,透明度为0的,但会像不透明物体一样写入深度和测试深度的,渲染队列排在一般不透明物体更前面(也就是先将深度值写入深度缓冲区)的材质。

找到全身追踪物体下的Amature_Mesh,替换全身材质 

 

完成咯,是不是简单多了,也好理解多了。还是不太理解的朋友可以看一下这篇讲渲染顺序的,给了我很大的启发

Unity 渲染原理(十二)透明效果与渲染队列 | Origin of Ray

 


这样虽然实现了遮挡关系,但是运行了的朋友应该会发现衣服不会跟着身体动,需要导入到建模软件重新蒙皮哦,把衣服也蒙皮到meta原有的骨骼上才行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值