Unity Shader Graph彩色面孔

时间:2019-11-13 19:35:16

标签: unity3d shader

想象一下,我们有一个6个面的多维数据集。现在,我能以某种方式在“着色器图形”中为所有“面孔”着色吗?

基本上,我想用Shader Graph自己复制“极简主义者-Lowpoly Flat / Gradient Shader”。有提示吗?

1 个答案:

答案 0 :(得分:0)

这取决于您想要显示的几何类型。如果仅使用基数轴,则可以使用对象空间法线的分割X / Y / Z分量进行饱和,饱和,然后将它们与各自的颜色相乘,然后将它们相加。这覆盖了6个面中的3个。对于其他轴,除了在饱和之前对所有轴执行OneMinus以外,请执行相同的操作。

解决这个问题的最通用方法是使用点积。点积计算一个向量与另一个向量的平行程度,并返回-1至1范围内的结果,其中1完全平行,-1则为反平行。对于(1、0、0),(0、1、0)和(0、0、1)轴,进行Dot(法线,轴),使其饱和并与颜色相乘,然后将颜色结果相加。使用与上述相同的方法,将点乘积通过管道传递到OneMinus节点,然后饱和以获取其他3个轴。这使您可以在世界空间和对象空间中应用效果。