数据是基础

  • 在Ue中,一切引擎中,一切都是由数据构成的。
  • Ue中最上层数据为四通道数据,即RGBA
  • 数据代表颜色一样可以代表法线方向等等其他含义

数据运算

  • 本质都是向量的运算
  • 一位数据因为是一个常量因此是可以与任意数据进行乘除法运算的

加减乘除

色域

  • 在Ue中基础颜色的色彩范围是0-1,它是根据输入值计算的,如果大于1则为1,小于0则为0.
  • 而自发光颜色是可以无限增加的,直到照亮整个场景(配合虚幻五特有的Luman全局光照系统)

色彩运算

加法运算

  • 前文提到,一切颜色依然是由数据组成的,因此我们同样可以通过向量运算来计算颜色:
  • image.png
  • Ue中的颜色计算使用了与现实世界颜料不同的减色法,即模拟自然光是由白光分出的红绿蓝三色光。
  • 上图的运算我们可知,白色对应RGB通道值为(1,1,1),这也对应了前文提到色彩范围是0-1
  • 除法运算同理

乘法运算

  • 乘法运算是根据向量基础进行的运算,如果将上图中的红色通道与绿色通道相乘,那么结果为0,自然会显示黑色
  • image.png
  • 而白色为(1,1,1),那么它与任何颜色相乘,仍为该颜色

除法运算

  • 在除法运算之中,如果除数为0,则会保存一个有效值,若全为0 则会不进行这个运算,同样返回原有值,但不建议这样做!任何情况下!

纹理图像的运算

  • 纹理图像是一个一个数组,它们同样可以进行加减法运算,因为本质都是向量组成的,这也被称为矩阵。

图像的加减法运算

  • 这里我们通过PS来进行观察:
  • image.png
  • 这里我们设置了线性减淡添加,这本事就是一种相加算法,它会让图片越来越亮
  • 反之如果我们使用相减运算,那么就会让图片越来越暗

图像的乘除法

  • 在Ps中,乘法被称为正片叠底,因为是乘法,如果黑色部位乘上一个不为黑色的部位,那么就会让图片变暗,并且保留黑色部分。
  • image.png
  • PS中,除法运算的方式叫做划分,它会根据图像的乘除关系,让图片变亮抑或是变暗,取决于除数与被除数的大小关系
  • image.png

偏差比例运算

  • 这是一种组合运算,先加上一个值再乘上一个值,相当于先进行加法运算,再进行乘法运算
  • image.png

线性插值运算

  • 本质上是一种混合运算,可以通过调节Alpha输入的值来控制线性插值的结果。我们同样可以通过输入某一个纹理的Alpha值来控制。
  • 一般Alpha通道值需要一个一维向量为参数,我们可以通过Clamp或saturate节点来限制范围,后者在UnityShader中就很常见,它的系统损耗最低,我们一般倾向于使用它作为限制数值范围的工具,但它的范围只有0-1这一个固定参数范围,而前者clamp可以接受我们自主定义:
  • image.png
  • 混合节点最好使用Saturate节点控制,这样可以减少性能损耗!