欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 【Quest开发】极简版!透视环境下抠出身体并能遮挡身体上的服装

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

2025/5/3 4:18:12 来源:https://blog.csdn.net/m0_73117967/article/details/147656651  浏览:    关键词:【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原有的骨骼上才行

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词