我在Unity中制作了一个多通道着色器,我想让某些三角形跳过一些通道。我不能通过多个材料做到这一点,因为通道的顺序不会相同。例如,如果我有4个通道ABCD,一些三角形将使用ABD绘制,而另一些则使用ACD。所有的"A“通行证必须完成,然后所有的"B”通行证,等等...因此,它必须在单个材质和单个着色器中完成。
执行此操作的最有效方法是什么?我可以使用黑/白图像对对象进行纹理贴图,并将其用作过程的alpha值,但这似乎不是最优的。
发布于 2014-06-08 10:24:54
最有效的方法是使用子网格。材质过程并没有什么神奇的特殊之处。您可以安全地将它们替换为简单的一遍材质并使用子网格。Unity在绘制时保留了子网格的顺序(there was a bug in 4.2,但已修复),因此一切都应该很好。
https://stackoverflow.com/questions/24057329
复制相似问题