UGUI添加半透明3d模型层级错乱问题

UGUI添加半透明3d模型层级错乱问题,第1张

本次研究需要达到的目的,3d模型能够正确参与UGUI排序,不会造成层级错乱。

前提:3d物体在Transparent层渲染,ZTest LEqual,ZWrite On,Blend SrcAlpha OneMinusSrcAlpha。

设想一:

在UGUI中穿插半透明模型,最先想到的就是通过Z排序,当我们半透明物体Z比UGUI背景Z小则在它上面,比其Z大则在它前面,于是收起我们调节Z轴:

事与愿违,我们发现3D物体并没有成功与背景颜色混合,打开FrameDebuger查看原因:

从图上我们可以看出3D模型在UGUI之前进行渲染,因为开启了ZWrite,于是在UGUI渲染的时候,ZTest失败,所以不会有UGUI参与混合。所以我们需要解决的是3D模型在背景渲染完成之后再进行渲染,于是想到了Canvas上的Order in Layer控制。我再Unity2018上面发现,只要Order in Layer小于0,则UGUI会在3d物体之前渲染,这里物体默认的Layer就是0,可以通过render.sortingOrder进行设置。

设想二:

设置背景Order in Layer值小于0

这里我们可以看出和背景层级正确,渲染顺序也正确那我们再继续插入前景,根据上面的结论,我们只要前景的Order in Layer设置大于0就行了,那么我们看:

这里渲染顺序正确的,但是为什么前景还是被模型给挡住了呢,并且没有混合,所以这里应该是ZWrite的问题,前景的ZTest测试失败,查看后发现果然是前景的Z比透明模型的Z大,所以造成了这样的结果,重现调节Z轴,最后得到效果

1,首先,用Photoshop打开需要添加透明条的图片,这里以一张视频截图为例。

2,选中ps右侧工具栏中的形状工具,此处以矩形工具为例,右键可以找到更多形状选项。

3,选中矩形工具之后,在图片上拉出一块矩形。

4,矩形填充颜色可以在拉取之前设置,或者在拉出矩形后在右侧属性栏总修改。

5,选择好合适的颜色之后,可以选中矩形的图层修改图层透明度来改变视觉效果,来做出这个形状这个颜色的透明条。

6,效果如图。

1、打开奥维地图软件,点击“文件”选择“导入”,选择要导入的半透明图形文件;

2、选择半透明图形文件后,点击“确定”,在地图窗口中将出现半透明图形;

3、在图层窗口中,点击“属性”,在d出的窗口中点击“显示方式”,选择“半透明”;

4、点击“确定”,半透明图形就会在地图窗口中显示出来。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11925871.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存