如何制作使两个3D对象的交集透明的着色器?

问题描述 投票:0回答:2

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

enter image description here

c# unity3d shader
2个回答
0
投票

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

其中一个对象将具有

Stencil{
   Ref valueA
   Comp aways
   Pass replace
}

第二个:

Stencil{
   Ref valueB
   Comp greater
   Pass replace
}

第三:

Stencil{
   Ref valueB
   Comp less
   Pass replace
}

技巧是将第二个和第三个对象放在相同的位置


0
投票

Sprite着色器实际上是仅在单个四边形上渲染的3D着色器。换句话说,如果您知道如何使用精灵进行此操作,那么3D也不例外。

© www.soinside.com 2019 - 2024. All rights reserved.