数学(Math)节点¶
运算节点 的功能是执行数学运算。
输入¶
节点的输入值是动态可变的。某些输入插口类型只适合和某类数学运算符搭配使用。比如, "相加" 输入值与 "乘后相加" 运算符的搭配使用。
- 数值
输入值。可以输入三角法则定义的弧度数值。
- 加数
输入加数。
- 基础(基数)
输入底数。
- 指数
输入幂(指数)。
- Epsilon
输入对数的基数。
- 距离
输入距离。
- 最小值
输入最小值。
- 最大值
输入最大值。
- 增量
输入增量。
- 比例|缩放
输入比例。
- 角度
输入角度。
- 弧度
输入弧度。
属性¶
- 操作
数学运算符将两侧的输入值按运算符表示的含义进行数学运算:
- 功能
- 相加
将运算符两侧的数值进行加法运算。
- 相减
对两侧的输入值进行减法运算。
- 正片叠底(相乘)
将两个输入值进行相乘运算。
- 相除
将第一个输入值作为被除数,第二个值作为除数进行相除数学运算。
- 乘后再加
将两个乘积值再次进行相加运算。
- 能量(乘方)
将 "底数" 进行 "乘方" 运算。
- 对数
以 基数 为基数的值的对数。
- 平方根
求输入值的平方根。
- 平方取倒
即用数字1除以一个数值的平方根所得的结果。
- 绝对
The input value is read with without regard to its sign. This turns negative values into positive values.
- 指数
Raises Euler's number to the power of the value.
- 比较
- 圆滑(取舍)
- 圆(四舍五入)
Round the input value to the nearest integer.
- 基面
将输入值向下取最接近的整数值。
- 向上取整
将输入值向上取整到最接近的整数值。
- 截短
将一个 "输入值" 的整数部分进行输出,小数部分舍弃。
- 分数
- 模数
将第一个输入值被第二个输入值相除,输出所得结果的余数值。(备注:取模运算( "Modulus Operation" )和取余运算( "Remainder Operation " )两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。取模主要是用于计算机术语中。取余则更多是数学概念。参看百度百科 "取模运算" )
- 包裹
在输入值和小于最大值的最大整数倍数值之间,最小值 和 最大值 绝对值的差值之间取值进行输出。
- 吸附
Round the input value to down to the nearest integer multiple of Increment.
- 乒乓
将输入值映射到0.0和输入值乘以 "缩放" 值之间的范围进行输出。
- 三角函数
- 转换
- 到弧度
将输入值从角度数值转换为弧度数值。
- 到角度
将输入值从弧度数值转换为角度数值。
- 钳制
限定输出数值的范围(0到1)。参见 钳制。
输出¶
- 数值
数值输出。
示例¶
自定义Z深度通道节点设置¶
此范例场景输入数据由 渲染层 节点提供,距离摄影机10BU左右有个矩形物体。在另一个渲染层节点底部的输入连接端口上连有一个覆盖视图左半部距离摄影机7BU单位的平面。两个渲染层节点通过映射值节点分离Z缓冲区(Z深度)为20(乘以0.5,输入框如图所示)并且最小值/最大值的范围限分别限定在 0.0/1.0。
"使用最小值" 功能是依据靠近摄影机的像素将Z深度值选择出来;也可以选择矩形部分的平面Z深度值。背景有个初始的Z深度值,值限定为1.0(显示为白色)。在 "使用最大值" 范例中,矩形的Z深度值比图像平面要大,因此更靠近左侧,但是图像平面(FlyCam)渲染层Z值初始在右侧(对应于1.0),因此他们被选择。
使用正弦功能得到不断循环的变化数¶
范例中采用一个 时间 节点,其时间范围从1-101之间。在第25帧,输出为0.25。此数值转为由 2 × pi (6.28) 进行相乘运算并由正弦函数转换映射到1.0范围,用数学公式表示为 \(sin(2 × pi/ 4) = sin(pi/ 2) = +1.0\).
因为正弦函数将数值输出限定在(-1.0 to 1.0)之间, 映射值 节点比例缩放原取值范围 (-1 to 1)到 0.0 到1.0,将极值通过offset(偏移量)选项加1操作(结果范围为 0 to 2),,将结果和size(尺寸)选项中0.5进行相乘运算(缩放输出范围在0-1范围之间)。 颜色渐变 默认将输出值转为灰度范围。因此用中性灰用数值0来表示,黑色和白色分别用正弦值-1和1来表示。由此得到数学公式表示形式 \(sin(pi/ 2) = 1.0\)。这就像有了用户自己的输出视觉颜色计算器,将这一系列前后相连的节点进行动画就得到了周期往复不断循环的灰度颜色范围序列。
将这个功能引申,比如,图片的alpha通道形成渐入/渐出特效。改变Z深度通道的景深位置。改变颜色通道值使其有规律的进行色彩变化。
提亮(缩放)通道¶
范例中有一个 运算(相乘) 节点增加图像的亮度通道(Y)使其颜色变得更亮。使用 映射值 节点的 "使用最小值" 和 "使用最大值" 复选框来限定颜色的输出值在合理的区间范围之内。用这个方法,用户可以在高动态范围图像(HDRI)上应用对数函数。在这个特定范例中,使用一个 亮度/对比度 节点 对亮度进行简单控制。
重新限定颜色选择(色调分离)¶
此范例中,我们重新限定颜色值为以下数值中之一:0, 0.2, 0.4, 0.6, 0.8, 1。
To split up a continuous range of values between 0 and 1 to certain set of values, the following function is used: \(round(x × n - 0.5) / (n - 1)\), where "n" is the number of possible output values, and "x" is the input pixel color. Read more about this function.
要在Blender中执行该运算,可以考虑上图中的节点连线方式。我们通过将运算节点串连为一个函数,接受颜色值输入(取值范围从 0 到 1),分别乘以6,则现有的数值分布(取值范围从0 到 6 ),再将此结果偏移0.5 (-0.5到5.5), 然后四舍五入数值到最邻近的整数 (结果值为 0, 1, 2, 3, 4, 5), 然后将颜色像素值除以5,得到(0.0, 0.2, 0.4, 0.6, 0.8, 1.0)。
In the case of a color image, you need split it into separate RGB channels using Separate/Combine RGBA nodes and perform this operation on each channel independently.