【问题标题】:Unity Shader Graph Colored FacesUnity Shader Graph 彩色面
【发布时间】:2019-11-19 17:36:39
【问题描述】:

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

基本上我想做的是用 Shader Graph 自己重现“极简主义 - Lowpoly Flat/Gradient Shader”。有什么建议吗?

【问题讨论】:

    标签: unity3d shader


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-05-19
      • 2021-10-07
      • 2020-09-02
      • 2021-09-16
      • 2021-09-12
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多