Unity材质 - 如何停止透​​明对象的重叠?

时间:2017-01-12 01:56:29

标签: unity3d 3d shader transparency

好的,有很多关于此的帖子,但我跟随了大部分帖子,无法找到解决方案。我是着色器的菜鸟,我无法理解这一点。

我有2个移动的球体是透明的 - 当它们的网格重叠时我希望它们看起来像是一个 - 这意味着它们保持透明但彼此不重叠。到目前为止,这就是我所拥有的:

enter image description here

我看了https://docs.unity3d.com/Manual/SL-CullAndDepth.html并从https://forum.unity3d.com/threads/non-overlapping-transparency-for-several-objects.271277/获得了这个着色器,这就是我如何处理重叠的一些重复:

Shader "Custom/Diffuse ZWrite" {
    Properties
    {
        _Color ("Main Color", Color) = (1,1,1,1)
        _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
    }

    SubShader
    {
        Tags
        {
            // I HAD TO REMOVE THE LINE "Queue"="Transparent"
            "IgnoreProjector" = "True"
            "RenderType"      = "Transparent"

        }

        LOD 200

        // extra pass that renders to depth buffer only
        Pass
        {
            ZWrite On
            ColorMask 0
            Cull Back
        }

        UsePass "Transparent/Diffuse/FORWARD"
    }
    FallBack "Transparent"
}

当我将渲染队列切换到Alphatest时,我获得了所需的效果,但是在游戏开始时它没有出现,在场景中在线 enter image description here

我不明白为什么会这样,而且我不知道如何解决我的问题。如何阻止透明材料重叠?

0 个答案:

没有答案