Unity3d 统一着色器图形彩色面

Unity3d 统一着色器图形彩色面,unity3d,shader,Unity3d,Shader,假设我们有一个有6个面的立方体。现在,我可以在着色器图形中以不同的颜色为所有面着色吗 基本上我想做的是用Shader Graph自己复制“极简-低多边形平面/渐变着色器”。有什么提示吗?这取决于您希望显示哪种几何图形。如果仅使用基数轴,则可以使用对象空间的分割X/Y/Z组件法线、饱和,并将它们与各自的颜色相乘,然后将它们相加。这涵盖了6个面中的3个面。对于其他轴,除了在饱和之前对所有轴执行负一之外,执行相同的操作 解决这个问题最常用的方法是使用点积。点积计算一个向量与另一个向量的平行度,并返回-

假设我们有一个有6个面的立方体。现在,我可以在着色器图形中以不同的颜色为所有面着色吗


基本上我想做的是用Shader Graph自己复制“极简-低多边形平面/渐变着色器”。有什么提示吗?

这取决于您希望显示哪种几何图形。如果仅使用基数轴,则可以使用对象空间的分割X/Y/Z组件法线、饱和,并将它们与各自的颜色相乘,然后将它们相加。这涵盖了6个面中的3个面。对于其他轴,除了在饱和之前对所有轴执行负一之外,执行相同的操作

解决这个问题最常用的方法是使用点积。点积计算一个向量与另一个向量的平行度,并返回-1到1范围内的结果,其中1是完全平行的,-1是反平行的。对于轴(1,0,0)、(0,1,0)和(0,0,1),执行点(法线,轴)、饱和和与颜色相乘,并将颜色结果相加。使用与上面相同的方法,在饱和之前将点积导入一个负节点,以获得其他3个轴。这允许您在世界空间和对象空间中应用效果