使用模具缓冲区和着色器在Unity中的UI图像上打孔

问题描述

有一种方法可以在Unity中打孔,也就是X射线视觉,请参见下图:

orange frame x-raying through the wall

这使用两个着色器完成,一个着色器具有配置A(切割器),另一个具有配置B(目标)。将配置A的着色器放入材质A,将配置B的着色器放入材质B。将材质A应用于具有橙色边框的某个平面。将材料B应用于3D灰色墙。在我们谈论世界空间中的3D组件时,此方法有效。

配置A(切割机):

        ColorMask 0
        ZWrite Off

        Stencil {
             Ref 1
             Comp always
             Pass replace
        }

配置B(目标):

        Stencil {
             Ref 1
             Comp notequal
             Pass keep
        }

问题1 :如何通过这个切出的“窗口/孔”切入UI层上的前景图像并显示3D世界空间的一小部分? UI层上的图像具有默认UI材质 UI / Default 着色器,因此无法向其添加自定义着色器。

例如,在以下视频中,城堡墙将是前景UI图像,相框将是UI层中的切割器,唱歌的人将成为世界空间中的活动3D化身:{{3} }

问题2 :创建着色器时,Unity 2019.4提出以下类型:标准表面着色器,不发光,图像效果,计算和光线跟踪。轻量级着色器对在UI层图像上打孔的最佳选择是哪一个?似乎所有人都有一些对打孔没有用的代码。

问题3 :哪种游戏对象是使用刀具着色器(配置A)制作材料的最佳主机?是2D精灵,UI图片,UI面板,还是其他?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...