TiXL 图像颜色运算符 HSE 完全指南:用 HueShift 着色器实时调整色相、饱和度与曝光
TiXL 图像颜色运算符 HSE 完全指南用 HueShift 着色器实时调整色相、饱和度与曝光【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址: https://gitcode.com/GitHub_Trending/t3/t3导读HSE 是 TiXLLib.image.color 运算符库中专门用于快速调整 2D 纹理Texture2D色相Hue、饱和度Saturation与曝光Exposure的图像处理运算符常见于实时动态图形的后期调色链中。其独特之处在于色相不仅可以通过数值参数控制还能借助一张灰度 Fx Texture仅读取其绿色通道逐像素驱动从而实现按亮度/遮罩区域变化的动态色相偏移。读完本文你将掌握 HSE 的完整输入输出约定、各参数的取值范围与默认值、底层 HueShift 着色器的数学原理以及如何将它接入 TiXL 节点图实现实时调色与色相动画。运算符定位Lib.image.color 中的快速调色入口在 TiXL 运算符库中HSE 属于Lib.image.color分类该分类统管图像的颜色处理类运算符分类总览 所在的目录下还包含 AdjustColors、ChannelMixer、ColorGrade、ColorGradeDepth、ConvertColors、KeyColor、RemapColor、Tint、ToneMapping 等成员可参见 Lib.image.color 索引。文档对 HSE 的定位是快速quickly它只暴露 5 个输入参数聚焦于色相、饱和度、曝光三个最常用的调色维度适合作为调色链中的第一步或轻量级校正节点当需要对比度、亮度、暗角、橙青色调OrangeTeal、防钳制PreventClamping等更多控制项时文档明确指引使用功能更完整的姊妹运算符 AdjustColors其底层着色器为img/fx/AdjustColors.hlsl。输入参数与输出完整签名与默认值根据官方文档的输入参数表并结合 HSE.t3 中记录的默认值与 HSE.t3ui 中记录的 UI 控件范围可以得到如下完整签名名称相关性与类型说明默认值UI 范围Texture2dTexture2D Required输入源纹理必填无必连—HueSingle色相偏移量0–1 表示绕色环完整旋转一圈0.00.0 – 1.0FxTextureTexture2D灰度 Fx 纹理仅绿色通道参与色相控制无可选—SaturationSingle饱和度增益系数0 得到灰度1 提高饱和1.0-2.0 – 2.0ExposureSingle曝光增益系数1 为原始亮度1.0-5.0 – 5.0步进 0.02输出名称类型OutputT3.Core.DataTypes.Texture2D以上默认值与范围全部来自仓库中的运算符定义文件数值默认值记录在 HSE.t3 的Inputs段Hue0.0、Exposure1.0、Saturation1.0UI 的 Min/Max/Scale 及分组标题记录在 HSE.t3uiHue 归入 Hue shifting 组Saturation 归入 Extra parameters 组。从 C# 侧看HSE 的五个输入槽与一个输出槽在 HSE.cs 中通过InputSlotT声明两个InputSlotT3.Core.DataTypes.Texture2DTexture2d、FxTexture与三个InputSlotfloatHue、Saturation、Exposure输出为SlotTexture2D并带有[Guid]标识符用于图结构序列化。这说明 HSE 是一个纯函数式组合运算符InstanceHSE本身不含渲染逻辑而是把参数转发给内部的子运算符执行。底层实现HSE 其实是一个 HueShift 着色器包装器从 HSE.t3 的Children段可以看到HSE 内部实例化了一个名为_multiImageFxSetupStatic的子符号并将其ShaderPath参数设置为Lib:shaders/img/fx/HueShift.hlsl图文件中的Connections段把 Texture2d、Hue、FxTexture、Saturation、Exposure 五个输入逐一连接到该子符号的对应槽位最终结果连回Output。_multiImageFxSetupStatic的宿主实现位于 _multiImageFxSetupStatic.cs是Lib.image.fx._中用于装配多图像输入 静态着色器的通用装载器。真正决定 HSE 行为的核心是 HueShift.hlsl它接收三路常量参数cbuffer ParamConstants : register(b0) { float Hue; float Saturation; float Exposure; }以及两张纹理输入inputTextureregister t0即 Texture2d与inputFxTextureregister t1即 FxTexture。像素着色器psMain的处理流程如下采样与预处理采样输入纹理得到c将 RGB 钳制到[0.000001, 1000]以保留 HDR 高光信息Alpha 饱和到[0,1]。RGB → HSB 转换调用rgb2hsb()把线性 RGB 变换到色相/饱和度/亮度空间着色器中使用的是 HSB 模型亮度轴取q.x * 0.5。曝光Exposurehsb.z * Exposure;直接乘在亮度轴上——值小于 1 压暗、大于 1 提亮1 保持原样。色相偏移Hue FxTexture 绿色通道float hueShift Hue fx.g; // 仅取 fx 纹理的绿色通道 hsb.x mod((hsb.x hueShift / 1), 1); // 0–1 色环取模注意两点其一Hue 的单位是色环比例1.0 代表完整 360° 旋转因此 UI 范围设为 0–1 恰好覆盖整圈与 AdjustColors.hlsl 中Hue / 360的度数语义不同其二fx.g正是文档所述只使用 FxTexture 绿色通道的出处——rgb2hsb会把彩色 Fx 纹理的灰度亮度换算到其绿色分量附近因此一张普通灰度图即可直接使用。饱和度Saturationhsb.y saturate(hsb.y * Saturation);以乘法增益调整饱和度0 时完全去饱和灰度1 保持原样大于 1 提高色彩浓度负值区域被saturate收敛到 0。HSB → RGB 回写c.rgb hsb2rgb(hsb);还原为 RGB 输出Alpha 通道原样保留。上述第 4 步与文档中 The Hue can also be controlled by greyscale Fx Texture (only the green channel is used) 的描述完全对应属于可验证的实现事实。实战用法静态调色与动态色相动画在 TiXL 节点图中使用 HSE 的方式非常直接基本调色链将视频/图片纹理接入Texture2d把Output接到下游显示或合成节点调节Exposure默认 1.0校正明暗Saturation默认 1.0控制色彩浓度Hue默认 0.0做整体色相旋转。三个参数的 UI 范围Exposure -5~5、Saturation -2~2、Hue 0~1均在 HSE.t3ui 中定义可直接在参数面板滑动微调。按遮罩动态偏色为FxTexture接入一张灰度遮罩例如文字、渐变或亮度抠图使色相偏移量随像素位置变化——遮罩绿色通道越亮处色相旋转越大可做出区域化色偏或扫光换色的实时效果。时间驱动色相循环将Hue接入 TiXL 的动画曲线或音频节拍同步值使整个画面色相随时间在 0–1 的色环上循环是生成循环色调转场的高性价比方案。相似运算符对比与选型建议TiXL 在颜色调整领域提供了多个相互补充的运算符索引见 Lib.image.color README选型时可参考HSE极简三参数Hue/Saturation/Exposure支持 FxTexture 绿色通道驱动色相适合快速校正与轻量动态色相。AdjustColorsHSE 的超集额外提供 Colorize、Contrast、Brightness、Vignette、OrangeTeal、PreventClamping、Background 等控制项见 AdjustColors.md对应 AdjustColors.hlsl 中更长的参数缓冲与 S 曲线对比度、防钳制 tone mapping 逻辑。ColorGrade / ColorGradeDepth面向 Gain/Gamma/Lift 三段式分级适合精细的影视级调色其中 ColorGradeDepth 还能利用深度缓冲实现远近物体的差异化着色。注意事项与已知限制HDR 处理HueShift 着色器在转换前将 RGB 钳制在[1e-6, 1000]允许一定的 HDR 高光保留但过曝区域在 HSB 变换后仍可能被saturate收敛极端亮度下的色相细节有限。参数语义Hue是 0–1 色环比例而非角度Saturation为乘法增益而非百分比Exposure直接乘在亮度轴上线性语义下 ±1 约对应一倍/半倍亮度。FxTexture 通道约定仅绿色通道生效彩色纹理接入时请自行换算其绿色分量预期必要时先用 ConvertColors 等节点预处理成灰度。必填输入Texture2d标记为 Required见 HSE.t3ui 的Relevancy: Required未连接时运算符无法产出有效结果。小结HSE 是 TiXL 中少即是多的典型代表它以 5 个输入参数、1 个输出槽的极简接口封装了 HueShift.hlsl 中 RGB→HSB→RGB 的完整调色流水线并通过_multiImageFxSetupStatic装配机制与Lib.image.color家族的其他运算符AdjustColors、ColorGrade 等形成从快速校正到精细分级的完整调色梯度。理解了它的输入默认值、绿色通道语义与色环比例单位你就能在实时图形项目中稳定、可预期地使用这枚基础调色节点。延伸阅读HSE 官方文档Lib.image.color 运算符索引HSE C# 槽位定义HSE 图结构子符号装配与连接HSE 参数 UI 配置HueShift 着色器实现AdjustColors 着色器增强版参考AdjustColors 运算符文档【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址: https://gitcode.com/GitHub_Trending/t3/t3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →