【问题标题】:How can I make a shader that makes the intersection of two 3D objects transparent?如何制作使两个 3D 对象的交集透明的着色器?
【发布时间】:2020-05-16 05:25:08
【问题描述】:

我需要一个可以使两个 3D 对象的交集变得透明的着色器。我知道如何使两个精灵相交区域透明。我在着色器中使用模板缓冲区。但我不知道如何在 3d 对象中做到这一点。请帮帮我,谢谢!

enter image description here

【问题讨论】:

    标签: c# unity3d shader


    【解决方案1】:

    您可以使用 3 个对象,并使用模板缓冲区来制作效果。

    其中一个对象将具有

    Stencil{
       Ref valueA
       Comp aways
       Pass replace
    }
    

    第二个:

    Stencil{
       Ref valueB
       Comp greater
       Pass replace
    }
    

    第三个:

    Stencil{
       Ref valueB
       Comp less
       Pass replace
    }
    

    诀窍是将第二个和第三个对象放在同一位置

    【讨论】:

      【解决方案2】:

      Sprite 着色器实际上是仅在单个四边形上渲染的 3D 着色器。换句话说,如果您知道如何使用 sprite 来做到这一点,那么 3D 也不例外。

      【讨论】:

        猜你喜欢
        • 2015-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-22
        相关资源
        最近更新 更多