TiXL 中 InvertSDF 运算器详解:翻转有向距离场实现挖空与负空间雕刻

发布时间:2026/11/9 9:45:54

TiXL 中 InvertSDF 运算器详解:翻转有向距离场实现挖空与负空间雕刻 TiXL 中 InvertSDF 运算器详解翻转有向距离场实现挖空与负空间雕刻【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址: https://gitcode.com/GitHub_Trending/t3/t3导读InvertSDF 是 TiXL 开源实时图形系统Lib.field.adjust字段调整库中的基础运算器它通过把有向距离场Signed Distance FieldSDF的距离值取反实现实体与空腔的互换。本指南将以 InvertSDF.md 文档为主体结合仓库源码逐层拆解其工作原理、着色器代码生成细节以及与 CombineSDF 等运算器配合实现布尔挖空CutOut的完整实战链路。InvertSDF 是什么一场关于正负的空间互换TiXL 中的 SDF 字段用带符号的距离值描述空间距离值为负表示该点位于物体内部为正表示位于物体外部零值则落在物体表面。InvertSDF 的核心操作就是把这个符号完全翻转——把内部变外部、外部变内部。原文档给出的例子非常直观A cube in infinite empty space thus becomes a cut-out space in infinite matter.一个悬浮在无限空旷空间中的立方体经 InvertSDF 反转后就变成了无限实体物质中被挖出的一个立方体空洞。也就是说原本实心的立方体被翻转为立方体形状的负空间从而可以用它来雕刻、打孔、掏空其他实体对象。在 Lib.field.adjust 分组中InvertSDF 与 AbsoluteSDF取距离绝对值、PushPullSDF整体加厚/减薄表面、SpatialDisplaceSDF空间扭曲、TranslateUV平移 UV 坐标等同属字段调整工具族专门对 SDF 场的数值或空间属性做后处理变换。节点结构与数据类型根据原文档InvertSDF 仅有一个输出名称类型ResultT3.Core.DataTypes.ShaderGraphNode从源码看该节点实际上包含两个关键槽位InvertSDF.cs输入InputField类型为InputSlotShaderGraphNode接收上游任意 SDF 生成器如 SphereSDF、BoxSDF 等输出的着色器图节点输出Result类型为SlotShaderGraphNode把经过反转处理后的字段继续传递给下游节点如 CombineSDF、RaymarchField 等。整个节点的类型体系非常统一所有Lib.field下的运算器都通过ShaderGraphNode在 CPU 端拼接一段字段描述图最终由RaymarchField或Render2dField等渲染器将其编译为可执行的着色器代码见 RaymarchField.cs 中的SdfField输入。InvertSDF 并不直接参与逐像素的光线步进循环而是作为字段图中的一个纯变换节点存在。底层原理一行着色器代码背后的 SDF 语义InvertSDF 的实质实现极其精简其GetPostShaderCode只生成一行代码InvertSDF.csf{c}.w * -1;理解这行代码需要先弄清 TiXL SDF 字段的数据布局。以 SphereSDF.cs 为例球体生成器的预着色器代码为f{c}.w length(p{c}.xyz - {n}Center) - {n}Radius;可见字段变量f的.w分量专门存放带符号的距离值.xyz则用于携带法线、局部坐标等辅助信息球体把局部空间存入.xyz以便后续处理。因此f{c}.w * -1就是对该采样点的距离值做精确的符号取反原本距离为d 0的外部点反转后变为-d 0即从外部翻转为内部原本距离为d 0的内部点反转后变为-d 0即从内部翻转为外部表面上的d 0点保持不变因此物体表面轮廓的位置不变只是实体与空腔的归属被整体对调。由于 SDF 的距离场天然满足 Lipschitz 连续性逐点取反后依然是一个合法的有向距离场反转后的字段仍然可以放心地交给光线步进Raymarching做等值面求交——这正是 InvertSDF 能与其他字段运算器无缝级联的数学前提。典型案例用 InvertSDF 雕刻负空间基本链球体 → 反转 → 光线步进最小可用链路如下SphereSDF ──Result──▶ InvertSDF ──Result──▶ RaymarchField其中RaymarchField的SdfField输入接收反转后的字段DrawCommand输出用于渲染。渲染结果是从球的表面看场景变成了无限空间中存在一个球形空洞配合MaxSteps、MinDistance、MaxDistance等参数可控制步进精度见 RaymarchField.cs。进阶链反转 并集 挖洞原文档特别提示了 InvertSDF 的黄金搭档CombineSDF。BoxSDF ──Result──▶ InvertSDF ──┐ ├──▶ CombineSDF ──▶ RaymarchField SphereSDF ──Result──────────────┘这样组合的本质是用 CSG 布尔运算雕刻先用 InvertSDF 把某个形状翻转为负空间再通过 CombineSDF 将其与其他实体做并集等效于从后者中挖出前者的形状。有趣的是从 CombineSDF.cs 的源码看CutOut差集模式本身就是用取反实现的f{contextId}.w max(f{contextId}.w, -f{subContextId}.w);也就是说CombineSDF 的差集运算在内部等价于对第二个字段取反后再做交集——InvertSDF 的*.w * -1与 CombineSDF 差集路径中的-f{subContextId}.w完全同源。当你需要显式、独立地把一个字段翻转为负空间再复用时InvertSDF 就是那个可组合的显式算子。CombineSDF 还提供了 Union、Intersect、UnionSmooth、CutOutRound、Engrave、Pipe 等十余种组合模式CombineSDF.cs与 InvertSDF 配合可以构建复杂的雕刻与布尔造型管线。交互式验证SDFToColor 可视化在调试阶段可以把 InvertSDF 的输出接入Lib.field.use分组下的 SDFToColor将距离值映射为颜色梯度进行可视化直观确认反转前后内外区域是否正确对调也可接入VisualizeFieldDistanceVisualizeFieldDistance.cs观察距离场的分布。与同组运算器的对比与协同InvertSDF 经常与Lib.field.adjust中的其他调整器串联使用AbsoluteSDFf{c}.w abs(f{c}.w)AbsoluteSDF.cs把负距离全部归零/取正消除内部概念常用来把空腔转回实体边界与 InvertSDF 联用可对负空间做二次修正。PushPullSDF通过f{c}.w {n}AmountPushPullSDF.cs整体加厚或减薄表面先反转再 Push/Pull可以对挖出的空腔壁做厚度调节。SpatialDisplaceSDF / NoiseDisplaceSDF对距离值或空间坐标施加噪声位移让反转后的空洞边缘产生有机的侵蚀感。这些调整器都遵循同一套IGraphNodeOp接口与ShaderGraphNode数据协议因此可以按任意顺序自由串联构成丰富的字段造型表达式。典型使用场景小结负空间雕刻在无限场中制造空洞、隧道、内腔CSG 差集替代显式反转后与 CombineSDF 配合或直接使用 CombineSDF 的 CutOut 模式双面渲染辅助反转后再用 AbsoluteSDF 还原可得到仅保留空腔内表面的效果材质/颜色翻转与 SetSDFMaterial 配合为反转后的空腔注入独立的颜色提供者。参考与延伸阅读原文档InvertSDF.md同组索引Lib.field.adjust README节点实现InvertSDF.cs、定义文件 InvertSDF.t3组合运算器CombineSDF.cs字段生成示例SphereSDF.cs、BoxSDF.cs渲染端RaymarchField.cs、Render2dField.cs【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址: https://gitcode.com/GitHub_Trending/t3/t3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/9 9:45:54

LLVM实战指南:从源码构建到Pass开发与IR调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/9 9:39:27

电工证是哪个单位培训?电子证书怎么拿到手?

电工证是哪个单位培训?电子证书怎么拿到手? 之前考的证在外省能不能转过来?这是很多学员最关心的问题。特别是已经拿到电工证的朋友,如果打算回老家或者换个城市发展,往往担心证书能不能用、能不能转。其实,现在的 电子证书…

2026/11/9 9:39:27

池州办理电工证别怕学历低,官方报名入口全在这里

池州办理电工证别怕学历低,官方报名入口全在这里 你是不是也担心自己学历不高,根本报不了电工证?别急,池州办理电工证其实没有你想象的那么难,只要符合基本要求,就能顺利拿到手。本文就从 池州办理电工证…

2026/11/9 9:39:27

办电工证快速办理附近证全国通用吗

低学历也能报电工证?真实经历告诉你怎么快速办理附近 你是不是也担心自己学历不高,报不了电工证?别急,我来跟你分享一个 真实经历 。去年我在安阳一个水利工程工地干临时工,学历只有初中,但通过“ 办电工证快速办理附近…

2026/11/9 9:39:27

考电工证温州报名入口与办理流程

温州电工证过期了不知道怎么复审延期?含金量还在,方法不难 证书过期了不知道怎么复审延期?你不是一个人。很多在温州从事电工相关工作的人都有这个困扰,尤其是低压电工证、高压电工证这些实操性很强的特种作业操作证,一旦没及时办理复审,不仅影响日常工…

2026/11/9 0:37:55

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/9 0:03:09

建设厅的特种工有哪些含金量高?别交完钱考不过

建设厅的特种工有哪些含金量高?别交完钱考不过 怕考不过白交培训费?别急,先搞清楚建设厅的特种工有哪些含金量高的证,再决定是不是值得投入时间和金钱。 建设厅的特种工证是建筑行业里最基础、也最实用的证书之一,涉及多个作业类别,每种证的 含金量…

2026/11/9 0:03:09

荆门市电工证报名怎么考才靠谱 全国通用证别交冤枉钱

荆门市电工证报名怎么考才靠谱 全国通用证别交冤枉钱 怕考不过白交培训费?荆门市电工证报名前必须知道这些避坑指南。别看网上一堆培训机构广告,真要报个电工证,很多人被坑得一塌糊涂。特别是那些打着“包过”旗号的,最后不是考试不过,就是证不是全国通…

2026/11/9 0:03:09

高空电工作业过程通过率揭秘:怎么选靠谱机构不被坑

高空电工作业过程通过率揭秘:怎么选靠谱机构不被坑 不知道去哪报名怕被中介坑?你不是一个人。现在特种作业证报名渠道五花八门,从线下培训机构到线上代理,真假难辨。尤其是像高空电工作业这类高风险、高门槛的作业类型,证书含金量和考试通过率直接影响你…

2026/11/9 6:30:27

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/7 14:50:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑