ShaderForge-数据

ShaderForge-数据

在进行ShaderForge的学习之前,我们先来了解下Shader中的数据。
什么是数据,一切信息都是数据。数值,颜色,贴图,法线信息,UV信息,都是数据。
ShaderForge的节点连接,就是对数据的加工处理流程。

数据维度

维度,自然可以想到平面空间和立体空间 。我自己理解为有几个方向的变化。
常见的一维数据:数值 整数 小数
常见的二维数据:平面坐标轴,uv信息
常见的三维数据:liti立体空间的坐标,向量,RGB颜色信息,模型法线信息,法线贴图
常见的四维数据:RGBA颜色信息(多一个透明通道)

如果是一系列的数据呢?那数据便组成了数组。
通常情况下,一维数组只能储存线性发展或组织的数据,如某个值随时间的变化,或某一类事物的不同下属事物的数量或状态;二维数组多用来储存平面信息,比如图片就是一种二维数组的体现;而三维数组可以储存空间信息和更复杂的时空信息,比如视频就是一种三维数组的体现。而随着数组维数的增加,数组本身的复杂度也相应提升,所以需要对信息的维度有着准确的把握,在满足需求的情况下,尽量使用低维度的数组。
图片的本质就是一个二维数组,数组中的每个元素是一个三维数据,有很多很多的像素点构成的数据。
ShaderForge-数据ShaderForge-数据

数据转换

数据维度的转换
不同维度的数据如何进行计算,
一维数据到高维数据 复制自身如1-(1,1,1)
二维数据到高维数据 后边加0 (1,1)-(1,1,0)
数据意义的转换
看到信息要看到数据的本质 比如绿色 本质是0,1,0 不只可表示一个绿色
还有可能是一个向量,位置等等。

数据维度的附加
两个低维数据附加成一个高维数据 Append节点 具体看官方手册

数据维度的筛选
屏蔽掉高维数据的某些维度,仅仅使用其中的某几个维度。CompMask节点。

运算的使用优先级(+-*/)
使用优先级并不是运算优先级
能用加法不用减法
能用乘法不用除法

UV信息

“UV”这里是指u,v纹理贴图坐标的简称(它和空间模型的X, Y, Z轴是类似的). 它定义了图片上每个点的位置的信息. 这些点与3D模型是相互联系的, 以决定表面纹理贴图的位置. UV就是将图像上每一个点精确对应到模型物体的表面. 在点与点之间的间隙位置由软件进行图像光滑插值处理. 这就是所谓的UV贴图。

UV信息包含两个方面,模型的UV点信息,UV的空间信息。
UV节点的本质是二维数组(横纵都是0-1的范围)(黑到白的渐变贴图)

UV流动的本质就是对UV进行偏移处理(这个偏移是动态的) 所以会产生流动效果。
常见的偏移是XY方向的偏移,其实UV还可以进行旋转操作,实现让贴图旋转的效果,(Rotater节点)
甚至通过贴图进行局部旋转控制。

UV的缩放,通过乘法操作进行。默认的缩放是以左下角为基准。
通过对UV的操作来最终影响贴图的效果。