TiXL 节点详解:FluidFeedback —— 位移驱动型流体反馈效果实战指南
2026/9/19 14:26:34 网站建设 项目流程

TiXL 节点详解:FluidFeedback —— 位移驱动型流体反馈效果实战指南

【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址: https://gitcode.com/GitHub_Trending/t3/t3

导读

FluidFeedback 是 TiXL 图像反馈(feedback)节点族中的代表性示例,其核心思路是"将上一帧输出与当前画面反复合成,并叠加位移(displacement)扰动",从而产生流动、融化、扩散等流体质感。本文以官方文档为主体,结合仓库中的节点定义(.cs)、图结构(.t3/.t3ui)与示例工程,完整解读该节点的 12 个输入参数、内部渲染链路与调参思路,并给出与 AdvancedFeedback、AfterGlow2 等兄弟节点的选型建议,帮助读者在实时视觉项目中快速落地。


1. 节点定位:它是什么,解决什么问题

FluidFeedback 属于 Lib.image.fx.feedback 反馈节点族。官方文档对其定位只有一句话:

An example of how feedback combined with displacement can lead to a variety of effects.

即"反馈 + 位移可以组合出多种效果"。它的核心机理是帧间自反馈(recursive feedback)

  1. 将上一步渲染结果写回一个循环缓冲区(RenderTarget);
  2. 下一帧开始时,把当前画面与该缓冲区内容再次合成;
  3. 在合成路径上插入位移(Displace)、模糊(Blur)与几何变换(缩放/旋转/偏移);
  4. 每一帧的结果都会成为下一帧的输入,由此积累出持续的流体运动感。

这种结构非常适合实时视觉(VJ、livecoding、生成艺术)场景——同一段素材在不同参数下会演化出完全不同的质感,这正是文档中"a variety of effects"的含义。

2. 输入参数全解析(含默认值与推荐调节范围)

文档给出的输入参数表共 12 项。下面结合 FluidFeedback.t3 中保存的默认值,逐一说明其作用与调参方向:

参数名类型/相关性默认值作用说明
CommandCommand(必需)null驱动节点执行的命令输入,提供画面来源或渲染触发,是整条反馈链的入口,必须接入
DisplacementSingle15.0位移强度。控制 Displace 节点的核心扰动幅度,数值越大流体感越强,过大则画面破碎
ShadeSingle0.4着色/暗部强度。影响位移通道的明暗处理,通常配合 Displacement 微调出层次感
BlurRadiusSingle4.0模糊半径。作为 Blur 子节点的 Size,控制反馈图像的软化程度,越大越"弥散"
SampleDistanceSingle-0.07位移采样距离。微调位移的取样偏移,改变流动方向与细腻度
TwistSingle140.0扭转强度。使位移场发生旋转扭曲,是制造漩涡、卷曲效果的关键参数
ZoomSingle1.002每帧缩放比例。默认 1.002 意味着反馈图像每帧略微放大,产生缓慢向内的收缩/推进感
RotateSingle0.0每帧旋转角度(度)。持续旋转反馈图像,配合 Twist 可产生螺旋运动
OffsetVector2(0, 0)反馈层的位置偏移。用于漂移、漂移路径动画
DisplaceOffsetSingle0.06位移偏移量。整体平移位移场,影响流动的起始相位
ResetBooleanfalse重置反馈缓冲区。置为 true 时立即清空循环缓冲,重新开始积累,适合换段、切场景
IsEnabledBooleantrue总开关。关闭后节点不再更新反馈循环

默认值均来自 FluidFeedback.t3 的Inputs段;输入槽的类型定义见 FluidFeedback.cs,其中Command使用MultiInputSlot,支持接入多个命令来源。

3. 输出

输出名类型说明
ColorBufferT3.Core.DataTypes.Texture2D反馈循环最终合成的 2D 纹理,可继续接入下游图像/视频/合成节点

在 FluidFeedback.cs 中,输出槽为Slot<Texture2D>,其数据源是内部 RenderTarget 子节点的输出(见下文第 4 节连接关系)。

4. 内部实现:从 .t3 图结构还原反馈链路

FluidFeedback 不是一行 shader,而是一个由 13 个子节点组成的宏节点(macro symbol)。从 FluidFeedback.t3 的ChildrenConnections可以完整还原它的内部数据流,这也是理解参数语义的关键。

4.1 参与节点清单

子节点作用
Displace位移核心:把Displacement × 0.01Shade × 0.01DisplaceOffset × 0.01Twist接入其位移参数,图像源来自 UseTextureReference(引用循环缓冲区纹理)
Blur模糊:BlurRadius接入其 Size 输入;内部默认 Samples=30、Size=1.99
Layer2d几何变换:Zoom接入 Scale、Rotate接入旋转、Offset接入 Position;默认 Scale=0.998、Position=(0, 0.003)、关闭深度测试与混合
Execute执行控制:接收 Command 输入与 Layer2d 的渲染内容
DrawScreenQuad绘制全屏四边形,作为反馈内容的一条分支
Switch双路切换:Index 决定使用"绘制分支"还是"反馈分支"
RenderTarget反馈缓冲区:默认开启 Clear、带深度缓冲、4x 多重采样,负责承接与输出合成结果
HasTimeChanged时间变化检测:Mode=1,用于判断是否应推进反馈
And逻辑与:将IsEnabled与 HasTimeChanged 的结果合并
BoolToInt ×2布尔转整数:一个将 Reset(true→2)转换,一个将"启用"逻辑(true→1/false→0)转换,共同驱动 Switch 的 Index
Multiply ×3缩放:将各 Single 参数乘以 0.01 后送入 Displace,便于用户用较大的数调节

4.2 关键数据流(依据 Connections 段还原)

  • 位移参数链路Displacement → Multiply(×0.01) → Displace.DisplacementShade → Multiply(×0.01) → Displace.ShadeDisplaceOffset → Multiply(×0.01) → Displace.DisplacementOffsetTwist → Displace.Twist;循环纹理经UseTextureReference → Displace.Image
  • 反馈循环Displace 输出 → Layer2d(缩放/旋转/偏移) → Execute → Switch 分支2;同时DrawScreenQuad → Switch 分支1RenderTarget接收 Switch 输出作为渲染内容,其输出再作为ColorBuffer输出,并经由 UseTextureReference 回到 Displace 形成自反馈闭环。
  • 开关/重置逻辑IsEnabled ∧ HasTimeChanged → BoolToInt → Switch.Index(false→0 走绘制分支,true→1 走反馈分支);Reset → BoolToInt(true→2) → Switch.Index,强制切换到清屏绘制分支,从而"重置"反馈积累。

由此可以看出:文档参数表中的每个参数都对应图内一个明确的子节点输入,调节参数的本质是调节内部反馈链路的某个环节。

4.3 界面分组线索

从 FluidFeedback.t3ui 的InputUis可见,官方在参数面板上对常用参数做了分组提示:Displacement属于Feedback组,Twist属于Movement组,Offset增加了间距(AddPadding),Command标记为 Required(必需)。这提示了推荐的第一层调参顺序:先调 Feedback 组定强度,再调 Movement 组定运动。

5. 实战调参:从默认值出发的四种典型质感

以默认值为基准(FluidFeedback.t3),可快速演化出不同风格:

  1. 温和熔蜡:保持Displacement≈15BlurRadius≈4,将Zoom降到 1.0 附近并Rotate设为 0.01~0.1,得到缓慢扩散、边缘软化的熔融感。
  2. 漩涡扭曲:大幅提高Twist(如 300~800),配合正负SampleDistance调整流动方向,画面出现卷曲与螺旋。
  3. 漂移粒子感:将Offset用时间曲线(如正弦)驱动,让反馈层来回漂移,配合中等Shade突出明暗层次。
  4. 场景切换:在新段落开始时把Reset触发为 true 一帧,清空缓冲再关闭,避免旧画面的残影污染新内容。

6. 仓库中的真实使用案例

FluidFeedback 在示例库中已有落地作品,可直接作为参考模板:

  • FluidFireLogo.t3ui:官方描述为"SVG 线条动画与 FluidFeedback 结合,模拟火焰燃烧"——这是"反馈制造流动能量感"的典型示范。
  • VJSpermZoomer.t3ui:描述为"Weird experiment with FluidFeedback effect",展示了其在 VJ 场景下的实验性使用。
  • FadingFaces.t3ui:将 FluidFeedback 用于人脸/图像的渐变消散效果。

这些示例均位于 Operators/examples/Symbols/user/pixtur 下,可直接在编辑器中打开观察其参数接线方式。

7. 与同族节点如何选型

同目录下还有多个反馈节点,选型建议如下:

节点特点适用场景
FluidFeedback(本文)结构简单直观,参数少,反馈+位移核心思路清晰快速出流体质感、学习反馈原理
AdvancedFeedback在 FluidFeedback 基础上增加边缘检测(DetectEdges)、色相/饱和度/亮度偏移、限制亮部、边缘增强等参数,并把反馈缓冲区稳定到有效数值范围,避免过黑或过亮需要更强可控性与色彩处理的进阶使用(参数差异见 AdvancedFeedback.md)
AdvancedFeedback2基于 OKLab 色彩空间的改进版反馈,色彩混合更自然注重色彩保真的高级反馈场景
AfterGlow2面向运动图像的余辉(残影)效果,与反馈类节点互补拖尾、光轨类效果(详见 AfterGlow2.md)

三者的官方对照关系记录在反馈族目录 README.md:AdvancedFeedback 被描述为"FluidFeedback 的更通用但更难控制的进阶版",AdvancedFeedback2 则强调 OKLab 色彩空间。

8. 小结

FluidFeedback 以最少的参数封装了"反馈 + 位移"这一实时视觉中的经典范式:循环缓冲(RenderTarget)+ 位移扰动(Displace)+ 软化(Blur)+ 几何变换(Zoom/Rotate/Offset),并通过 Reset/IsEnabled 完成生命周期控制。掌握它的内部图结构后,读者可以:

  • 在编辑器中打开 FluidFeedback.t3 直接观察/复制其反馈链路,改造出属于自己的反馈效果;
  • 结合文档参数表与默认值快速调出四种以上的视觉质感;
  • 在需要更复杂控制时平滑迁移到 AdvancedFeedback 与 AdvancedFeedback2。

本文中所有参数默认值、子节点构成与连接关系均取自仓库内的 FluidFeedback.t3、FluidFeedback.cs 与 FluidFeedback.t3ui 文件,可自行打开核对。

【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址: https://gitcode.com/GitHub_Trending/t3/t3

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询