2026/9/20 16:30:56

TiXL 浮点加法算子 Add 完全解析:源码实现、输入输出与实战用法

TiXL 浮点加法算子 Add 完全解析:源码实现、输入输出与实战用法 音视频图形学桌面应用【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址https://gitcode.com/GitHub_Trending/t3/t3点击查看免费下载导读Add 是 TiXL 实时动态图形realtime motion graphics编辑器中Lib.numbers.float.basic浮点数基础运算算子库最常用的两个浮点值相加算子。本文以官方算子文档为主体结合仓库内该算子的 C# 源码与符号定义文件完整解析其输入输出契约、底层求值逻辑、默认值与 UI 配置并给出在节点图与表达式中的典型接线方式同时对比多输入场景下的 Sum 算子帮助你在构建参数化动画、偏移量与数据驱动控制时做出正确选择。读完本文你将能够熟练使用 Add 算子并理解其与 Sum、Sub、Multiply 等基础浮点算子的协作模式。一、算子定位在浮点基础运算家族中的角色Add 属于 TiXL 算子库Lib.numbers.float.basic分类该分类下共有 9 个基础浮点运算算子分类索引 中逐一列出算子说明AddAdds two float values and outputs the result as a floatDivDivides two float values and outputs the quotient / result as floatLogCalculates the result of a logarithmic functionModuloModulo for floatsMultiplyMultiplies two floatsPowCalculates the result of an exponential functionSqrtComputes the square root of a float valueSubSubtracts two float valuesSumAllows connecting any amount of floats whose sum is output官方文档指出Adds two float values and outputs the result as a float。它是节点图中最基础、最常用的数学运算之一凡是需要把两个浮点信号叠加的场景——例如把基础数值与动态偏移量相加、把两条控制曲线求和、或把时间参数与相位偏移组合——都可以用 Add 完成。该分类下的索引文件末尾注明Auto-generated from the operator library.即算子文档由库自动生成反映的是算子符号的真实契约。二、输入输出契约从文档到源码的双重印证2.1 输入参数Input Parameters文档给出的输入参数表如下Name (Relevancy Type)DescriptionInput1(Single Relevant)—Input2(Single)—两个输入的类型均为浮点float.NET 中对应System.Single。其中Input1被标记为 Single Relevant表示在 UI 中它属于高相关度Relevant输入从符号 UI 配置 Add.t3ui 可以看到Input1Guide3550929-8905-4cdf-bc85-c31e97da4baa设置Relevancy: Relevant即默认展开显示为高相关度输入Input2Guid993d59bb-1fc0-4857-a36d-629b0e7aa0d2未标记 Relevant属于常规输入需要时可在参数面板中展开。两者的 UI 数值范围Min/Max均配置为-100.0 ~ 100.0其中Input2还额外带有Scale: 0.01的滑杆缩放适用于精细微调。2.2 输出Outputs文档给出的输出表如下NameTypeResultSystem.Single输出类型为System.Single即 C# 中的float与两个输入的类型一致因此 Add 可以无缝串接其他浮点算子。2.3 源码级印证算子源码位于 Add.cs完整呈现了上述契约namespace Lib.numbers.float.basic; [Guid(c160f925-0a66-4505-a569-cadd878dbb6f)] internal sealed class Add : InstanceAdd { [Output(Guid {5CE9C625-F890-4620-9747-C98EAB4B9447})] public readonly Slotfloat Result new(); public Add() { Result.UpdateAction Update; } private void Update(EvaluationContext context) { Result.Value Input1.GetValue(context) Input2.GetValue(context); } [Input(Guid {E3550929-8905-4CDF-BC85-C31E97DA4BAA})] public readonly InputSlotfloat Input1 new(); [Input(Guid {993D59BB-1FC0-4857-A36D-629B0E7AA0D2})] public readonly InputSlotfloat Input2 new(); }值得注意的源码细节求值逻辑只有一行Result.Value Input1.GetValue(context) Input2.GetValue(context);即输出始终等于两个输入当前值的直接和。输出类型Slotfloat对应文档中的System.Single[Output]特性中的 Guid{5CE9C625-...}与符号 UI 文件中的输出 Ui 一一对应。输入槽位InputSlotfloat是 TiXL 的标准浮点输入槽其取值逻辑见 Core 的 InputSlot.cs当输入没有连接外部信号且未做动画时InputUpdate直接使用默认值当存在连接或动画时GetValue(context)返回上游求值结果。这意味着 Add 既可以接收来自其他算子的动态信号也可以直接使用面板上的常量数值。源码中还保留了被注释掉的Input3/Input4扩展痕迹说明该算子的设计定位就是两数相加需要更多输入时官方推荐改用 Sum 算子见下文。2.4 符号定义与默认值算子的默认状态保存在符号定义文件 Add.t3FormatVersion 3中{ FormatVersion: 3, Id: c160f925-0a66-4505-a569-cadd878dbb6f/*Add*/, Inputs: [ { Id: 993d59bb-1fc0-4857-a36d-629b0e7aa0d2/*Input2*/, DefaultValue: 0.0 }, { Id: e3550929-8905-4cdf-bc85-c31e97da4baa/*Input1*/, DefaultValue: 0.0 } ], Children: [], Connections: [] }两个输入的默认值均为0.0因此在未接线、未改参数时Add 的 Result 输出恒为0.00.0 0.0。任何一端输入改变输出立即随之变化。三、典型实战用法3.1 静态常量相加直接在参数面板中给Input1与Input2输入数值例如1.5与2.5Result 输出4.0。这是 Add 最直观的用法适合做常量运算或把多个偏移量合并成单一数值再馈入下游算子。3.2 动态信号叠加最常用把上游算子的动态输出接入 Add 的任一输入即可实现信号叠加。典型场景包括基础值 动态偏移把一个固定数值如位置基准与一个随时间变化的偏移如正弦振荡、Noise 输出相加产生基准 扰动的复合控制信号曲线求和把两条浮点曲线例如通过 Curve 算子或动画曲线得到的信号相加得到叠加后的新曲线时间参数偏移把时间Time与相位偏移相加驱动动画错峰播放。Add 的输出System.Single可以直接接入 Transform、Color、参数化材质等任何接受浮点输入的算子实现数据驱动。3.3 数值范围平移利用加常量可以平移数值范围若某个信号取值在-0.5 ~ 0.5通过 Add 加上0.5即可平移到0.0 ~ 1.0便于后续接入百分比类参数或映射算子。四、与 Sum 算子及兄弟算子的协作文档特别提示If more values are to be added, there is also Sum。当需要相加的浮点数量超过两个或数量不固定时应改用 Sum 算子Sum 支持多输入其源码 Sum.cs 使用MultiInputSlotfloat InputValues可任意连接多个浮点信号循环累加全部已连接输入Result.Value 0; var connectedCount 0; foreach (var input in InputValues.GetCollectedTypedInputs()) { Result.Value input.GetValue(context); connectedCount; } if (connectedCount 0) { Result.Value InputValues.GetValue(context); }即有一个或多个输入连接时输出它们的总和没有任何连接时回退到 InputValues 自身的值。选择建议固定两个输入用 Add输入更清晰、默认值显式可见两个以上或数量可变的输入用 Sum。此外同分类下的 Sub减法、Multiply乘法可与 Add 组合成(a b) * c这类复合表达式覆盖大部分数值处理需求。五、类型与实现原理小结项值依据分类Lib.numbers.float.basic分类索引输入Input1、Input2floatAdd.cs输出ResultSystem.Single官方文档与 Add.cs默认值均为 0.0Add.t3求值Result Input1 Input2惰性求值Add.cs符号 Guidc160f925-0a66-4505-a569-cadd878dbb6fAdd.cs、Add.t3Add 的求值采用 TiXL 的依赖驱动dirty-flag机制Result.UpdateAction注册到输出槽上仅当上游输入变化dirty时才会重新执行Input1 Input2避免每帧无谓的重复计算而输入槽的默认值回退逻辑在 Core/Operator/Slots/InputSlot.cs 中实现Input.IsDefault ? TypedDefaultValue.Value : TypedInputValue.Value。这意味着把 Add 放入高帧率渲染管线中其计算开销几乎可以忽略。六、快速查阅指引官方算子文档Add.md本文主体来源算子源码Add.cs符号定义Add.t3界面配置Add.t3ui同分类算子见 Lib.numbers.float.basic 索引多输入求和请参考 Sum.md掌握 Add 之后配合 Multiply、Sub、Modulo 等基础算子即可在 TiXL 中搭建从简单数值运算到复杂参数化动画的完整信号链。赞分享音视频图形学桌面应用【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址https://gitcode.com/GitHub_Trending/t3/t3点击查看免费下载相关推荐TiXL BlendImages 算子深度解析用浮点索引对多输入图像实现交叉淡化TiXL BlendImages 算子深度解析用浮点索引对多输入图像实现交叉淡化 TiXL 是一款用于创作实时动态图形的开源软件本文聚焦其算子库中 Lib.音视频图形学桌面应用deit_base_patch16_224.fb_in1k完全指南ImageNet-1k数据集上的17.6GMACs高效模型deit_base_patch16_224.fb_in1k完全指南ImageNet 1k数据集上的17.6GMACs高效模型 想要在ImageNet 1k数据音视频图形学桌面应用x64dbg add 命令完全解析通用加法运算的实现原理与实战用法x64dbg add 命令完全解析通用加法运算的实现原理与实战用法 add 是 x64dbg 调试器命令系统中通用运算General Purpose命逆向工程调试器开发工具应用安全创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考