1

我的着色器代码是:

Shader "Custom/Transparent" {
     Properties{
         _Color("Main Color", Color) = (1,1,1,1)
         _MainTex("Base (RGB) Trans (A)", 2D) = "white" {}
     }
     SubShader{
         Tags {"RenderType" = "Transparent" "Queue" = "Transparent" }
         Blend SrcAlpha OneMinusSrcAlpha
         ZTest Always
         Pass {
             ColorMask 0
         }

         UsePass "Transparent/Diffuse/FORWARD"
     }
     Fallback "Transparent/VertexLit"
 }

我只能得到这个结果: 在此处输入图像描述

手指向下: 在此处输入图像描述

我真正想要实现的是: 在此处输入图像描述 所以手是透明的,但它并不仅仅显示它背后的对象。我能做些什么?

编辑 1:我尝试将“ZWrite”更改为“On”并重新启动 Unity,但结果相同,手是 Oculus Hands。特别是问题是我有“ZTest Always”,当我删除它时,它已经工作了,但我还需要在固体物体之间可以看到幽灵般的手,所以我不能删除那个部分

4

1 回答 1

0

为此,您需要通过将 ZWrite 选项调整为“关闭”来启用深度缓冲区写入,如下所示:

Pass {
         ZWrite On
         ColorMask 0
     }

您可以在此处找到有关该主题的更多阅读

https://docs.unity3d.com/2020.1/Documentation/Manual/SL-CullAndDepth.html

于 2021-10-04T14:55:34.587 回答