- 音视频
- 视频处理
- 图形学
- 桌面应用
【免费下载链接】Natron
Open-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry.
eu.gmic.PolarTransform是 Natron 随附的 G'MIC 插件包中用于极坐标坐标变换的特效节点,它通过可编辑的 Radius/Angle 字符串表达式把图像在直角坐标与极坐标之间任意重映射,是制作万花筒、涟漪拉伸、螺旋纹理等效果的核心工具。本文基于仓库内自带的节点参考文档,完整覆盖该节点的全部输入与参数(含默认值与取值选项),并结合源码仓库中的构建脚本、更新日志与相关节点文档,解释每个参数在渲染流程中的实际作用,帮助你在节点图中正确配置、动画化并集成这一节点。
节点来源与版本信息
该节点的参考文档由 Natron 自身自动生成(文档头部注释标明 "Do not edit this file! It is generated automatically by Natron itself"),对应插件版本为1.0 of G'MIC Polar Transform (eu.gmic.PolarTransform),原文档见 eu.gmic.PolarTransform.rst。
文档 Description 部分给出的事实信息如下:
- 作者:David Tschumperle(G'MIC 框架作者)。
- 实现方式:这是 G'MIC 框架的一个 OpenFX Wrapper,由 Tobias Fleischer 和 Frederic Devernay 编写,把 G'MIC 的滤镜能力封装为 OpenFX 插件供 Natron 这类宿主调用。
- 从仓库更新日志 CHANGELOG.md 可以看到 GMIC 插件包的演进脉络:
- "G'MIC plugins by Tobias Fleischer are now bundled with the binary distributions (beta)",即 GMIC 插件以 beta 状态随官方二进制发行版打包分发;
- "Update CImg and G'MIC to 2.8.4 and fix several issues in GMIC plugins (which are still beta)",当前文档对应的插件基于 G'MIC 2.8.4 版本;
- "Fix many G'MIC plugins. Changes are not backward compatible and existing graphs may need to be reworked",提醒老项目中的 GMIC 节点图在升级后可能需要重新调整。
构建层面,发行版打包脚本 common-buildmaster.sh 中定义了GMICPLUG_PKG=fr.inria.openfx.gmic以及插件仓库openfx-gmic,并在 Windows 安装脚本 Natron.iss 中以GMIC.ofx.bundle的目录形式安装到Plugins/OFX/Natron/下。也就是说,Polar Transform 节点属于独立的GMIC.ofx.bundle插件包,而非 Natron 主程序内置的 Transform 组节点。
在官方文档站点中,该节点归属于GMIC nodes分组(见 _groupGMIC.rst 的 toctree,PolarTransform 列于其中)。文档同时说明:各节点分组可通过点击左侧工具栏按钮或在 Node Graph 区域右键菜单创建。
输入(Inputs)
该节点只有一个输入,且为必选项:
| Input | Description | Optional |
|---|---|---|
| Source | (无描述) | No |
Source提供待变换的图像。由于是必选项,节点图中必须连接一个上游节点(如 Read、Generate 或上游特效节点)才能产生输出。
参数总览(Controls)
以下参数表完整继承自原节点文档,Preset至Log_Verbosity全部列出,类型(Type)与默认值(Default)均以文档为准:
| Parameter / script name | Type | Default | Function(选项) |
|---|---|---|---|
Preset /Preset | Choice | Custom Transform | Custom Transform/Inverse Radius/Swap Radius / Angle |
Center /Center | Double | x: 0.5 y: 0.5 | 变换中心 |
Radius /Radius | String | r + R/10*cos(a*5) | 极坐标半径表达式 |
Angle /Angle | String | a | 极坐标角度表达式 |
Boundary /Boundary | Choice | Mirror | Transparent/Nearest/Periodic/Mirror |
Output Layer /Output_Layer | Choice | Layer 0 | Merged/Layer 0/Layer -1~Layer -9 |
Resize Mode /Resize_Mode | Choice | Dynamic | Fixed (Inplace)/Dynamic/Downsample 1/2/1/4/1/8/1/16 |
Ignore Alpha /Ignore_Alpha | Boolean | Off | 是否忽略 alpha 通道 |
Global Random Seed /Global_Random_Seed | Integer | 0 | 全局随机种子 |
Animate Random Seed /Animate_Random_Seed | Boolean | Off | 随机种子是否随帧变化 |
Log Verbosity /Log_Verbosity | Choice | Off | Off/Level 1/Level 2/Level 3 |
其中"Parameter / script name"一列给出了两个名字:斜杠前是属性面板(Properties panel)中显示的参数名,斜杠后是脚本/项目文件中序列化的参数名,例如Center在 .ntp 项目与 Python 脚本里以Center作为 knob 标识使用。
极坐标变换原理与 Radius/Angle 表达式
Polar Transform 的核心数学模型是:以Center为极点,对源图像中的每个像素计算其极坐标(r, a)——r为到中心的距离,a为角度;然后节点在输出图像的每个像素处反向求解该像素的极坐标,代入Radius与Angle两个表达式得到一个新的(r', a'),再映射回源图像取样。两个表达式都支持字符串形式的公式,这就是它比固定算法的变换节点灵活得多的原因:
- 默认 Radius 表达式
r + R/10*cos(a*5):在半径方向叠加一个随角度变化、幅值为R/10的 5 瓣余弦调制,产生"花瓣"式的拉伸——这是该节点默认打开时即可看到的效果,R从表达式语义上推断是变换所覆盖的最大参考半径(与 Center 到图像边缘的距离相关)。 - 默认 Angle 表达式
a:角度保持不变,即纯径向调制。若把 Angle 改成随半径变化的表达式(例如让a与r相乘),即可获得螺旋/漩涡类效果。
由于表达式是自由字符串,可以写任意依赖r、a等极坐标变量以及图像尺寸、中心坐标的公式;配合 Natron 的曲线编辑器,还能为这些 knob 打上关键帧随时间动画化(仓库文档 CHANGELOG.md 记载了参数级表达式与关键帧动画机制)。与它同属极坐标家族的节点可作对照参考:
- Cartesian Transform(eu.gmic.CartesianTransform.rst):在直角坐标下直接写 XWarping/YWarping 表达式(默认
(w+h)/20 * cos(y*20/h)与(w+h)/20 * sin(x*20/w)),并提供Interpolation(Nearest Neighbor/Linear)选项; - Euclidean Polar(eu.gmic.EuclideanPolar.rst):固定算法的正交/极坐标互换,带
Stretch_Factor与Inverse_Transform,不需要写表达式,适合标准坐标互换需求。
如果只想做标准的"直角↔极坐标"互换而没有自定义公式需求,Euclidean Polar 更省事;Polar Transform 的价值在于可任意组合的Radius/Angle表达式。
Preset 预设
Preset下拉框提供三个内置预设,用于一键切换典型的变换形态:
- Custom Transform(默认):忽略预设逻辑,完全使用你在
Radius和Angle中编写的表达式; - Inverse Radius:对半径取反的典型预设,产生类似"反向径向拉伸/鱼眼"的效果,此时 Radius/Angle 输入框中的表达式会被预设逻辑接管;
- Swap Radius / Angle:交换半径与角度的角色,即把径向信息映射到角度方向、角度信息映射到径向方向,是制作"极坐标展开成条带"类效果(如把圆形图案拉平为矩形条带)的常用模式。
从参数排布看(Preset 列在 Radius/Angle 之前),选择预设后节点会按预设语义解释后续表达式;选择 Custom Transform 时则以你手写的两个表达式为准。
Center:变换中心
Center是 Double 类型参数,默认值x: 0.5 y: 0.5,即图像中心点(归一化坐标)。它定义了极坐标系的原点:所有r、a的计算都以此为基准。把 Center 移到图像一侧,可以让涟漪/螺旋从该位置"发出"。由于是 Double(双分量)参数,在曲线编辑器中可以对 x、y 分量分别打关键帧,动画化极点位置。
Boundary:越界取样策略
当表达式把某像素映射到源图像之外时,Boundary决定如何填充,四个选项含义:
- Transparent:越界区域输出透明;
- Nearest:使用最近边界像素的颜色填充;
- Periodic:把源图像当作周期边界,越界后回绕到对面取样;
- Mirror(默认):以镜像方式重复源图像来填充越界区域,通常能获得最自然的连续外观。
对照同族的 Euclidean Polar 节点,其 Boundary 默认值为Nearest,说明各 GMIC 节点的边界默认值并不统一,配置时应以本节点(默认 Mirror)的文档为准。
Output Layer:输出层选择
GMIC 系节点支持多图层(multi-layer)工作流,Output_Layer决定变换结果写进哪个输出层:
- Merged:把结果与源图像合并输出(单层结果);
- Layer 0(默认):输出到第 0 层;
- Layer -1 ~ Layer -9:输出到负索引层(从后往前数的第 1 到第 10 层)。
该选项与 Natron 通用的"Channels to process / Output Layer"层属性机制一致,通用说明见 thenodes-common-properties.rst 的 Layers Properties 一节。如果你的工程是单层合成,保持默认的 Layer 0(或按需求选 Merged)即可;只有在需要把多个 GMIC 效果叠放在不同图层、再交给下游 Merge/Output 节点合成时才需要显式切换。
Resize Mode:输出尺寸模式
Resize_Mode控制输出相对输入的尺度,默认Dynamic:
- Fixed (Inplace):输出与输入尺寸完全一致,变换"原地"进行;
- Dynamic(默认):由节点根据变换需求动态决定输出格式;
- Downsample 1/2 / 1/4 / 1/8 / 1/16:强制以输入尺寸的 1/2、1/4、1/8、1/16 输出。
降采样选项主要服务于预览加速与代理渲染(proxy rendering)场景——仓库功能文档 getstarted-about-features.rst 指出 Natron 的渲染管线支持以较低分辨率计算以加速反馈。对于像 Polar Transform 这类每个像素都要做表达式求值与反查取样的重映射特效,把 Resize Mode 临时设为 Downsample 1/4 再检查构图、确认效果后切回 Dynamic/Fixed,是常用的调试节奏。
Ignore Alpha 与随机种子
- Ignore Alpha(Boolean,默认 Off):开启后 alpha 通道不参与处理,适用于源素材的 alpha 不是有效遮罩、或希望只处理 RGB 的场景。
- Global Random Seed(Integer,默认 0):G'MIC 框架为滤镜提供的随机数种子。对 Polar Transform 而言,默认表达式本身不含随机性,该种子主要影响内部可能用到随机操作的环节;固定种子可保证多机渲染结果一致(网络渲染/渲染农场场景下尤为重要)。
- Animate Random Seed(Boolean,默认 Off):开启后种子随帧号变化,让含随机成分的效果逐帧变化(动画化噪点、闪烁类效果)。
Log Verbosity:日志输出级别
Log_Verbosity有Off / Level 1 / Level 2 / Level 3四档,默认 Off。当表达式报错、图像格式异常或节点行为不符合预期时,把级别调高可以在 Natron 的日志窗口中看到 G'MIC 侧的调试信息,便于定位是表达式书写问题还是输入数据问题。排查完毕建议调回 Off,避免渲染时产生大量日志 I/O。
典型配置组合
结合上述参数,几种常见起步配置供参考(均可复制进项目后微调):
- 花瓣涟漪(默认值):Preset = Custom Transform,Center = 0.5/0.5,Radius =
r + R/10*cos(a*5),Angle =a,Boundary = Mirror——打开节点即可见效果; - 反向径向(鱼眼式收缩):Preset = Inverse Radius,其余保持默认,观察图像中心被"推近";
- 极坐标展开成条带:Preset = Swap Radius / Angle,适合把圆形图案(如徽章、雷达图)拉平为矩形条带,便于在条带上做线性处理后反向映射回去;
- 自写螺旋:Preset = Custom Transform,把 Angle 表达式改写为角度与半径耦合的公式(保持
r、a变量名不变),Boundary 选 Mirror 或 Periodic 以避免透明缺口。
文档位置与相关索引
- 本文主体文档:Documentation/source/plugins/eu.gmic.PolarTransform.rst
- GMIC 节点分组索引(含全部 eu.gmic.* 节点 toctree):Documentation/source/_groupGMIC.rst
- 参考指南(Reference Guide)入口,节点分组从左侧工具栏或 Node Graph 右键菜单进入:Documentation/source/_group.rst
- 同类极坐标/坐标变换节点:EuclideanPolar、CartesianTransform、AboutGMIC(含 G'MIC 插件背景、外部数据下载与自定义 .gmic 滤镜说明)
- 通用参数面板与层属性说明:Documentation/source/guide/thenodes-common-properties.rst
需要提醒:官方日志多次强调 G'MIC 插件处于beta状态,且 2.3.14 版本曾做向后不兼容的修复——如果你的 .ntp 工程从旧版 Natron 迁移,出现 GMIC 节点行为变化时,应先对照上表核对参数默认值是否被重置,再检查表达式是否仍有效。
- 音视频
- 视频处理
- 图形学
- 桌面应用
【免费下载链接】Natron
Open-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry.
相关推荐
Natron 的 G'MIC Circle Transform 节点:圆形对称变换的参数详解与合成实战
Natron 的 G'MIC Circle Transform 节点:圆形对称变换的参数详解与合成实战 G'MIC Circle Transform(插件 ID
音视频视频处理图形学桌面应用Natron G'MIC Euclidean Polar 节点完全指南:极坐标重映射与滤镜参数实战解析
Natron G'MIC Euclidean Polar 节点完全指南:极坐标重映射与滤镜参数实战解析 G'MIC(GREYC's Magic for Imag
音视频视频处理图形学桌面应用Natron 节点详解:G'MIC Kaleidoscope Polar 万花筒极坐标滤镜的配置与使用
Natron 节点详解:G'MIC Kaleidoscope Polar 万花筒极坐标滤镜的配置与使用 导读 G'MIC Kaleidoscope Polar(
音视频视频处理图形学桌面应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考