将颜色转化为 RGBA 灰度,方法是提取 Alpha 分量、求 RGB 平均值或者根据突出绿色、弱化红色的生理色模型计算 RGB 权重。生成的灰度值也可用作标量。返回的 R、G、B 和 A 分量都具有相同值。
color "mib_color_alpha" ( color "input", scalar "factor")
color "mib_color_average" ( color "input", scalar "factor")
color "mib_color_intensity" ( color "input", scalar "factor")
根据给定的标量或颜色,执行多色贴图的查找和插值。贴图是一个最多含 8 种颜色的集合(而不是阵列)。实际的颜色数由参数指定。
color "mib_color_interpolate" ( scalar "input", integer "num", scalar "weight_1", scalar "weight_2", scalar "weight_3", scalar "weight_4", scalar "weight_5", scalar "weight_6", color "color_0", color "color_1", color "color_2", color "color_3", color "color_4", color "color_5", color "color_6", color "color_7")
接受基础颜色和最多 8 个输入(具体数目由参数决定),其中每个输入都包含输入颜色、权重标量和模式。按顺序计算输入结果,每次都对上一个输入结果进行运算(首先从基础颜色开始,默认为透明黑色)。支持下列模式:
模式 | 操作 | 计算 |
---|---|---|
0 | 混合 | R = A·(1−Ba)·w + B·w |
1 | 混合 | R = A·(1−w) + B·w |
2 | 相加 | R = A + B·w |
3 | 有界限的相加 | R = bound(A + B·w, 0, 1) |
4 | 相乘 | R = A·B·w |
5 | 有界限的相乘 | R = bound(A·B·w, 0, 1) |
6 | 替换 Alpha | Rrgb = Argb; Ra = Ba |
R 是下一个结果,A 是前一个结果,B 是当前的颜色,w 是当前的权重。下标 r、g、b 和 a 分别为红色、绿色、蓝色和 Alpha 分量。请注意,模式 6 不能确保得到的 Alpha 值是有效的,也就是说,不能小于红色、绿色或蓝色。在帧缓冲区存储颜色时,除非预乘处于禁用状态,否则 mental ray 将会校正 Alpha。
color "mib_color_mix" ( integer "num", integer "mode_0", integer "mode_1", integer "mode_2", integer "mode_3", integer "mode_4", integer "mode_5", integer "mode_6", integer "mode_7", scalar "weight_0", scalar "weight_1", scalar "weight_2", scalar "weight_3", scalar "weight_4", scalar "weight_5", scalar "weight_6", scalar "weight_7", color "color_0", color "color_1", color "color_2", color "color_3", color "color_4", color "color_5", color "color_6", color "color_7", color "color_base")
将一个颜色输入分散为最多 8 个颜色输出(确切数量由参数决定)。在指定的转化中,每个输出等于对应的输入与权重的乘积。该公式为
模式 | 操作 | 计算 |
---|---|---|
0 | 加权颜色 | R = w·A |
1 | Alpha 中的灰度颜色 | Rrgba = w·Aa |
2 | 平均强度中的灰度颜色 | Rrgba = w·(Ar+Ag+Ab) ⁄ 3 |
3 | 加权强度中的灰度颜色 | Rrgba = w·(0.299·Ar+ 0.587·Ag+ 0.114·Ab) |
4 | 红色分量中的灰度颜色 | Rrgba = w·Ar |
R 表示当前结果(八个中的一个),w 表示当前权重,“模式”表示当前转化,A 表示所有输出所共用的输入颜色。模式 4 旨在将标量转化为灰度颜色。
struct { color "out_0", color "out_1", color "out_2", color "out_3", color "out_4", color "out_5", color "out_6", color "out_7" } "mib_color_spread" ( color "input", integer "num", integer "mode_0", integer "mode_1", integer "mode_2", integer "mode_3", integer "mode_4", integer "mode_5", integer "mode_6", integer "mode_7", color "weight_0", color "weight_1", color "weight_2", color "weight_3", color "weight_4", color "weight_5", color "weight_6", color "weight_7")
Copyright © 1986, 2015 NVIDIA ARC GmbH. All rights reserved.