概括
使用STMap可以高效地计算图像中的像素变化。该计算基于两个通道的组合,这两个通道根据输入图像定义了结果图像中每个像素的来源。
STMaps 可以在Nuke内部(和外部)用于各种用途,因此了解如何在Nuke内部创建 STMaps 非常重要。
本文介绍了一种使用表达式节点、一些简单表达式和重新格式化节点创建可自定义 STMap 的简单方法。
更多信息
STMap是由两个彩色渐变组成的,它为每个像素在二维空间中提供一个唯一的x和y坐标。一个渐变定义了输入图像高度x方向上的像素数量,另一个渐变定义了输入图像宽度y方向上的像素数量。
STMap 的目的并非在于颜色本身,而在于每个像素的x和y坐标。当两幅图像分别以绿色和红色通道组合时,会得到以下视觉效果:
STMaps 在Nuke中有多种用途。它们可以用来改变和重新对齐图像/纹理,甚至可以用作将 2D 对象跟踪到 3D 几何体的基础。
在Nuke之外,它们可以直接作为纹理烘焙到 3D 对象上,也可以用于关联其他应用程序和Nuke之间的镜头畸变。
工作流程
设置表达式节点
表达式节点可用于绘制图像的红色和绿色通道的 x 和 y 坐标。
1)在节点图中创建一个表达式节点
2)在分配给红色通道的第一个字段中,输入以下表达式:
x/(width-1)
3)在分配给绿色通道的第二个字段中,输入以下表达式:
y/(height-1)
注意:除数中的-1确保图像的红色和绿色通道范围为 (0,0) 到 (1,1),而不是 (0, 0) 到 (width-1/width, height-1/height)。
在查看器中看到的结果将是以下图像:
注意: STMap 的分辨率取决于 Project 的分辨率。可以通过向 Expression 节点的输入添加 Reformat 节点来更改此设置,如下所示:
渲染 STMap
最后一步是渲染 STMap。这样你就可以将其导入Nuke ,或者在第三方应用程序中使用它。
1)创建写入节点
2) 在“写入”节点的“属性”选项卡中,选择 STMap 的文件目录,并确保文件扩展名设置为 .exr。
3) 渲染前,请确保将数据类型值更改为 32 位浮点数。
注意:我们使用 32 位深度的 EXR 文件,因为 STMap 的计算并非基于输出颜色,而是基于 EXR 文件可容纳的像素变化量。虽然视觉上可能没有区别,但信息量的差异非常显著,最终结果也会有所不同。
延伸阅读
有关 STMap 本身功能的更多信息,请参阅以下在线文档:
除了上述方法外,还可以使用Nuke中的CaraVR节点,通过C_GenerateMap或C_STMap节点生成 STMap。有关如何创建这些节点的更多信息,请参阅此处提供的链接:
示例文件
我们很遗憾听到
请告诉我们