标记三角形并使自定义着色器标志依赖于统一

时间:2014-06-05 10:09:39

标签: unity3d geometry conditional shader multipass

我在Unity中制作了一个多通道着色器,我希望某些三角形可以跳过一些通道。我不能通过多种材料来做到这一点,因为传球的顺序不一样。例如,如果我有4次ABCD,则使用ABD绘制一些三角形,使用ACD绘制一些三角形。所有" A"必须完成传球,然后全部" B"传递等等......因此必须在单个材质和单个着色器中完成。

最有效的方法是什么?我可以使用黑/白图像对我的对象进行纹理贴图,并将其用作通道的alpha值,但这似乎不是最佳的。

1 个答案:

答案 0 :(得分:0)

最有效的方法是使用子网格。物质传递没有什么神奇的特殊之处。您可以使用简单的一次通过材料和使用子网格安全地替换它们。绘制时(there was a bug in 4.2,Unity保留了子网顺序,但它已修复)所以一切都应该没问题。