Merge 节点可以将多个图像叠加在一起。使用此节点时,你需要选择一种合成算法,来决定怎样计算一个输入和另一个输入的像素值,从而生成新的像素值作为合并图像的输出。operation 下拉菜单中有大量不同的合成算法,为你创建合成提供了很大的方便。
Merge 节点的合成算法可以让你控制怎样连接图像。
注意:使用大多数可用的合并算法时,Nuke建议使用预乘过的输入图像。但是使用 matte 运算时,你应该使用未预乘的图像。
使用 Merge 节点叠加图像
1. 选择 Merge > Merge(或在节点图上按M键)在要合并的图像后插入 Merge 节点。
2. 将图像连接到 Merge 节点的 A 和 B 输入。
3. 如果有需要,你可以连接多个 A 图像到 Merge 节点上。当你按照步骤2连接 A 和 B 输入后,从 Merge 节点的右侧拖拽出更多的连接到要添加的图像上。
每个输入都会按连接顺序进行合并,如 A3,A2,A1,B。
4. 将 Merge 节点的输出连接到 Viewer 上,你可以看到合并运算的效果。
5. 在 Merge 节点的控制面板上,从 operation 下拉菜单中选择图像合并的方式。默认的和最常用的运算是 over,over运算是根据 A 输入的 alpha 将 A 输入叠加到 B 输入上。所有可用运算的详细描述,见下文 Merge Operations 表格。
6. 在 A channels 和 B channels 的下拉菜单,选择使用 A 和 B 输入的哪些通道,以及将哪些通道用作 A 和 B 的 alpha。如果你想合并更多的通道,并将其输出到同一个通道中,从 also merge 下拉菜单和复选框中选择。
7. 从 output 下拉菜单中选择你想写入的通道。在 also merge 下拉菜单中的通道会被写入相同的输出通道中。
8. 如果需要,也可以调节以下控制:
- 使用 metadata from 下拉菜单选择哪些输入元数据流传到节点树中。
注意:当 metadata from 设置为 All,且在两个输入中有相同名称的 key,B 中的 key 会覆盖 A 中的 key。
更多文件元数据信息,查看 Working with File Metadata。
调节 mix 滑杆,在原始 B 输入图像(值为0)和完全 Merge 效果(值为1)之间叠化。一个浅灰色小方块出现在节点上,表示完全效果没有被使用。
如果要对 Merge 运算效果应用遮罩,从 mask 下拉菜单中选择 mask 通道。要反转 mask,勾选 invert。对 mask 边缘进行模糊,勾选 fringe。
注意:不要使用输入端的 alpha 作为mask,否则可能产生错误的结果(虽然这种错误一般不会产生);你可以通过打开 alpha 遮罩达到更好的效果。
从 Set BBox 下拉菜单中选择你想要怎样输出边界框。默认设置是 union,会连接两个边界框。你也可以选择 intersection 将两个边界框的交集作为输出。
默认情况下,Nuke 假定图像都是线性颜色空间。但是如果你想转换为项目设置(通常是 sRGB) LUT 选项卡中的默认 8位 颜色空间,勾选 Video colorspace。在图像合成前转换已经完成,合成后转换结果会返回到线性。其他任意通道如红、绿、蓝合并时不会被转换。
勾选此选项有助于复制你在一个使用标准合成运算但没有应用线性空间到图像的应用软件(如 Adobe Photoshop)中获得的结果。在这种情况下,你通常需要确保 Read 节点的控制面板上没有勾选 premultiplied。
默认情况下,和其他通道相同的算法会应用到 alpha 通道上。然而,根据 PDF/SVG 只是,很多合并运算(如 overlay 和 hard-light)应该将 alpha 设置为(a+b – ab)。这样,在其他图像 alpha 通道为0的区域上,输入图像保持不变。如果你想启用此功能,勾选 alpha masking。
小提示:由于现成的合成算法很多,在operation菜单内选择有点繁琐。这里有一种方便快捷的方法来找到合适的运算方法。在打开才参后,你可以输入一个字母,就可以跳到第一个字母为输入的字母的运算方法处。再按一次,将自动跳到第二个以该字母为首的运算方法处。 (还是喜欢鼠标点,嘿嘿,方法多了繁琐,最简单还是最好的,速度又不慢)
下面的表格介绍了每一个算法名称以及它的数学表达式。我想你会很愿意花一些时间来熟悉每一个算法。
运算方法 | 数学表达式 | 描述 | 预览 | 例子运用 |
atop | Ab+B(1-a) | 显示为B的形状, 在该区域内,A覆盖在B 图片上。 |
| |
average | (A+B)/2 | 两图片的平均值。结 果是比原来更暗。 |
| |
color-burn | 将B像A降暗 | 图片B以A的亮度为基础变暗。 |
| |
color-dodge | 将B向A提亮 | 图片B以A的亮度为基础提亮。 |
| |
conjoint-over | A+B(1-a/b), A if a>b | 类似于over运算, 如果一个像素的一部分 同时被a和b覆盖到,那 么该节点将完全隐藏b。 例如,两个polygons,a 和b共享1边,但是又 完全的与b fc叠。Over 节点将会在该地方产生 轻微的透明。 |
| |
copy | A | 只显示图片A。 |
| 这种算法在你使用mix 或者mask控制时,B的一部分还是会被看到。 |
difference | abs(A-B) | 可以看出A跟B重叠处的像素差异。也可以在Merge > merges > absminus。 |
| 用于对两张相似的图片做比较。 |
disjoint-over | A+B(1-a)/b, A+B if a+b<1 | 类似于over运算, 如果一个像素同时被A和B覆盖,该节点将不叠加两图片。例如,两个polygons想接触,并共享。一条边。Over节点将会在该地方产生轻微的透明。 |
| |
divide | A/B, 0 if A<0 and B<0 | 两值相除,且保证该值为正数。 |
| 这个 算法并不 适用于摄像运算,但能用于还原乘法。 |
exclusion | A+B-2AB | difference的另一种摄像格式。 |
| |
from | B-A | B减A |
| |
geometric | 2AB/(A+B) | 另一种平均两张图像的方式。 |
| |
hard-light | multiply if A<0.5, screen if A>0.5 | 图片B受图片A影响,图片A超过0.5的区域图片B越亮,图片A小于0.5的区域,图片B 越暗。 |
| |
hypot | sqrt (A*A+B*B) | 和plus、screen运算类似。但结果不像plus那样亮,又比screen亮。 Hypos的值可以大于1。 |
| 这对添加反射和有用,可作为screen的替代运算。 |
in | Ab | 仅显示A在A与B的alpha相重叠的区域。也可以使用 Merge > Merges > In. |
| Useful for combining mattes. 对连接遮罩很有用。 |
mask | Ba | in的逆运算。 仅显示B在A与B 的alpha相重叠的区域。 |
| |
matte | Aa+B(1-a) | 带有premultiplied的over运算。用于未预乘的图像。也可以使用 Merge > Merges > Matte. |
| |
max | max (A,B) | 选择两图像的最大值。也可以使用 Merge > Merges > Max. |
| 这是连接遮罩的好方法。对使明亮的头发细节等方面显示出来很有用处。 |
min | min (A,B) | 选择两图像的最大值。也可以使用 Merge > Merges > Min. |
| |
minus | A-B | B减A |
| |
multiply | AB, A if A<0 and B<0 | A乘以B,为避免两负值相成变乘正值,两负值相乘结果为0。也可以使用 Merge > Merges > Multiply. |
| 用于合成很黑 的A与灰色的B映衬在白色背景上。 |
out | A(1-b) | 显示A但不包含B的区域。也可以使用 Merge > Merges > Out. |
| 对连接遮罩很有用。 |
over | A+B(1-a) | Merge 的默认运算。A通过 alpha计算叠在B上面。 |
| 这个是最常用 的算法。用于叠加前景在背景上。 |
overlay | multiply if B<0.5, screen if B>0.5 | 通过图片A来提亮图片B。 |
| |
plus | A+B | 图片A加图片B。 注意:plus算法允许值超过1。如果想要不超过1, 就用 screen。 |
| |
screen | A or B ≤1? A+B-AB: max(A,B) | 如果A或B小于等于1,screen采用两者的最大值, 类似于Plus. 也可以使用 Merge > Merges > Screen. |
| 对连接遮罩或添加激光光效很有用。 |
soft-light | B(2A+(B(1-AB))) if AB<1, 2AB otherwise | 图片B提亮。但是不像hard-light那么强烈。 |
| |
stencil | B(1-a) | out的逆运算。只显示B但不包 含A的区域。 |
| |
under | A(1-b)+B | over 的逆运算。图片B叠在图片A上面。 |
| |
xor | A(1-b)+B(1-a) | A与B的差集。 |
|
小提示:如果使用了旧版的Nuke,你可能看到diagonal、nl_over、and nl_under运算。diagonal现在被重命名为hypot。如果你想要得到nl_over 和 nl_under 的结果,你可以检查视频的颜色空间,使用over和under。