@aiminminHu
-
从“CAD 拾取”到“机器人避障”:BVH 树不只是用来点模型的
-
从“秒加载 STL”到“大模型推理”:零拷贝是边缘设备的命脉
-
从“离散三角形”到“CAD Copilot”:让大模型理解几何
-
故事要从“点中一个三角形”说起
-
然后是“1GB 文件秒开”的魔法
-
然后是“让 AI 听懂 CAD”
-
为什么是你?
代码仓库入口:
-
github源码地址。
-
gitee源码地址。
系列文章规划:
- (OpenGL渲染与几何内核那点事-项目实践理论补充(一-1-(1):从开发的视角看下CAD画出那些好看的图形们))
巨人的肩膀:
- deepseek
解决了模态与非模态这些交互难题后,你的 CAD 引擎已经能稳定运行,加载几十 MB 的 STL 文件,鼠标一点就能选中模型,渲染流畅,内存占用极低。你以为这就够了?不,你看着 2026 年的技术浪潮——AI、大模型、具身智能——突然意识到,你手头这些看似“老派”的 C++ 底层优化,恰恰是这些前沿领域最需要的基础设施。
从“CAD 拾取”到“机器人避障”:BVH 树不只是用来点模型的
你记得自己写过一个 BVH(包围体层次结构)树,用来加速鼠标射线与三角网格的碰撞检测。在 CAD 里,你点一下模型,程序要在数百万个三角形中找出被击中的那个,毫秒级响应。BVH 的本质是把三维空间递归划分,让射线只检查少数几个包围盒,而不是遍历所有三角形。
写完那套代码后,你突然看到一条新闻:特斯拉人形机器人 Optimus 在工厂里需要实时计算机械臂的轨迹,避免撞到工人和机器。它的底层算法是什么?同样是碰撞检测,同样需要 BVH 或者类似的层次包围盒结构。只不过机器人要考虑的是自身连杆与环境的碰撞,以及动态的路径规划(Motion Planning)。
你想:我写的 BVH 树,虽然是在 CAD 里做“静态”拾取,但稍微改改——把射线换成机械臂的几何体,把静态模型换成动态障碍物——不就是机器人避障的核心吗?更关键的是,机器人对实时性要求更高,通常要在 1ms 内完成一次碰撞检测。你为了在普通笔记本上流畅渲染几百万三角面,精心优化的 SIMD 指令、缓存友好的 BVH 遍历,恰恰是嵌入式机器人控制器梦寐以求的“硬实时”性能。
于是你在技术笔记里写下一句话:“BVH 树不仅是 CAD 拾取的加速器,更是具身智能时代,每个机器人都需要内置的三维空间感知引擎。”
从“秒加载 STL”到“大模型推理”:零拷贝是边缘设备的命脉
你还记得那个 STL 文件加载器。面对 1GB 的 STL 文件,你用了 VirtualAlloc 和内存映射文件(mmap),让操作系统直接把你需要的部分映射到进程地址空间,而不是费劲地复制来复制去。加载速度从分钟级变成秒级,内存占用也大幅降低。
后来你接触到大模型,看到 Llama 3 70B 的权重文件动辄 70GB,而边缘设备(比如你的 Jetson AGX Orin)只有 32GB 内存。那些深度学习推理框架(NCNN、MNN、TFLite)怎么解决?答案就是内存映射 + 按需加载。它们把模型权重文件映射到内存,运行时只把当前要用的算子权重加载进来,用完了就丢弃。这和你加载 STL 文件的思路一模一样:只把必要的数据映射进虚拟地址空间,物理内存按需分配。
你突然明白,你为 CAD 写的这套内存管理,其实是在训练自己成为“内存资源紧缺环境下的大模型部署专家”。未来,当机器人要搭载一个 70B 的大模型在本地运行时,谁的推理引擎能更优雅地管理内存、谁就能在毫秒级延迟下跑通多模态任务。而你,早就用 C++ 在玩具项目里把这套机制玩透了。
你写下第二句感悟:“零拷贝内存映射技术,是让大模型在边缘设备上‘跑起来’的基础。我在这上面花的每一小时,都是在为 AI 推理框架打地基。”
从“离散三角形”到“CAD Copilot”:让大模型理解几何
你的项目最初只解析 STL 的离散三角形,但你在规划中提到了 NURBS 和 B-Rep(边界表示)。因为真正的 CAD 软件(如 SolidWorks、CATIA)不是用一堆三角形描述模型的,而是用 NURBS 曲线曲面,以及精确的拓扑关系(面、边、顶点、邻接关系)。
你开始研究如何从 DWG 或 STEP 文件中提取这些 B-Rep 数据,然后转换成一种大语言模型(LLM)能理解的表示。比如,把一个圆柱体表示成:
-
类型:圆柱
-
参数:半径、高度、位置、方向
-
约束:与底板垂直、圆心在某个面上
这些结构化的几何信息,可以向量化(Embedding),存入向量数据库。然后,你就能构建一个 CAD Copilot:用户对自然语言界面说:“把这个圆柱体的直径扩大两倍。”LLM 理解意图,从向量数据库中检索出对应的几何实体,生成修改指令(比如 “修改半径属性”),调用你的底层 C++ 几何内核,精确地重建模型。
这在 2026 年已经不是科幻。Figma、Photoshop 都有了 AI 插件,CAD 也必然走向自然语言驱动的智能设计。而你,正在把项目底层打磨成这套未来系统的“几何引擎”。
你在最后写下:“离散三角形只能让 AI‘看见’模型,B-Rep 拓扑才能让 AI‘理解’模型。当我的代码能向大模型输出结构化的几何语义,CAD 就不再是绘图工具,而是可以对话的设计伙伴。”
你以为,把 AutoCAD 的数据库搞懂、把模态与非模态的坑踩完,就足够写一个“专业级 CAD 插件”了?不,那是 2024 年以前的想法。现在是 2026 年。当你还在研究怎么让鼠标点中一个三角形时,外面的世界已经变了天——具身智能机器人正在工厂里学习抓取零件,大模型正在试图理解三维世界,AI Copilot 已经能听懂“把这个孔改成螺纹孔”这样的自然语言。
你突然意识到:我手里这些看似“老古董”的底层 C++ 技术,恰恰是这波 AI 浪潮中最值钱的“基础设施”。你不再只是一个 CAD 二次开发者,而是能为 AI 提供三维空间计算能力的架构师。
故事要从“点中一个三角形”说起
你还记得你写的那个 BVH(包围盒层次树) 吗?最初,你只是想优化鼠标拾取:一个 STL 模型有几百万个三角形,逐个检测太慢,你写了个 BVH 树,把三角形按空间位置分组,用盒子包起来,先判断鼠标点中了哪个大盒子,再递归进小盒子,最后只检测极少数的三角形。鼠标一点,瞬间选中。你当时觉得这只是一个“渲染层的小优化”。
但在 2026 年,你坐在会议室里,给一家具身智能机器人公司讲方案。他们的问题不是“怎么让鼠标点中”,而是:“我们的机器人臂有 6 个自由度,要在 10 毫秒内判断它会不会撞到工厂里随意摆放的零件。你们能解决吗?”
你打开 PPT,放上你写的 BVH 树的代码截图,说:“你们需要的,本质上是一个三维空间的碰撞检测加速结构。我们的 BVH 树,底层用 C++ 实现,每个节点只存 16 字节的包围盒,递归遍历极快。机器人运动规划中,连续路径上的每一次位姿变化,都可以用这棵树快速判断是否与环境模型相交。这套逻辑,与 CAD 鼠标拾取是数学同源的。”
对方眼睛亮了。你明白,你写的 BVH 不仅仅是 CAD 工具的一部分,它可以是机器人“触觉”的基础——让机器人在毫秒级内感知三维世界,避开障碍,抓取物体。这是具身智能时代最核心的“底层感知引擎”。
然后是“1GB 文件秒开”的魔法
你曾经为了解决 STL 文件的加载速度,用了 内存映射文件(mmap) 和 零拷贝 技术。普通的 fopen + fread 加载 1GB 文件要好几秒,你直接调用 Windows 的 CreateFileMapping + MapViewOfFile,让操作系统把文件直接映射到进程的虚拟地址空间,不经过用户态缓冲区,不产生多余的复制。结果,加载变成几乎瞬间完成。
这项技术在你眼里只是“提高用户体验”的小优化。但当你把目光转向 AI 大模型时,你发现了一个惊人的相似之处:**大模型(比如 Llama 3 70B)的权重文件动辄几十 GB,要在内存有限的边缘设备(比如你的机器人项目里用的 NVIDIA Jetson 上)快速加载,靠的就是内存映射和零拷贝。**深度学习推理框架(NCNN、MNN、TensorRT)的底层,正是用 mmap 来把模型权重“冷启动”到内存中,避免加载时的大量 IO 开销。
你意识到,你为了 CAD 打磨出的 极致内存管理技巧,恰恰是 AI 大模型在边缘端落地的关键能力。当你向面试官展示你写的 MappedFile 类,解释你如何用 VirtualAlloc 对齐大页内存、如何用 Prefetch 预加载热区时,你不再只是一个图形开发者,而是一个深谙硬件 IO 极限的底层系统工程师。
然后是“让 AI 听懂 CAD”
你最初只是想解析 STL 的三角形,但你的规划里一直有一个更大的野心:让 CAD 数据变得“可对话”。你研究过 NURBS 曲面、B-Rep 拓扑结构,你知道模型不仅仅是三角形的集合,还有面、边、顶点以及它们之间的约束关系——这些才是设计师真正关心的“语义”。
2026 年,大语言模型已经能理解向量化的文本。但三维模型呢?如果你能把一个圆柱体的半径、高度、位置、与相邻零件的配合关系,编码成 Embedding 向量,塞进 RAG(检索增强生成)知识库里,那么一个 LLM 就能通过自然语言来操作它。
你开始尝试:
-
写一个 C++ 函数,遍历 B-Rep 结构,把每个几何特征(孔、倒角、凸台)提取成结构化的数据。
-
用 ONNX Runtime 跑一个小模型,把这些数据转成向量。
-
最后接入 LangChain,让用户说“把这个圆柱体的直径从 50 改成 60”,AI Agent 就能自动找到对应的几何对象,调用你的底层 C++ 内核完成修改。
这不再是科幻。2026 年的 CAD 软件正在从“绘图工具”变成“AI Copilot”,而能提供底层几何语义提取和操作能力的 C++ 开发者,就是这条链路上最稀缺的人。
为什么是你?
你回顾自己写过的每一行代码:
-
BVH 树 → 具身智能的碰撞检测
-
零拷贝内存映射 → 大模型在边缘设备的快速加载
-
B-Rep 语义提取 → AI Copilot 操作三维世界的基础
你发现,那些看似与 AI 无关的“老派” C++ 基础(内存管理、空间索引、几何数据结构),恰恰是 AI 与物理世界交互时无法绕开的基础设施。大模型再聪明,也需要有人帮它“看见”三维空间,也需要有人帮它“摸到”几何实体。而你,正是那个能用 C++ 写出极致性能、可落地的三维空间计算引擎的人。
当你站在 2026 年的风口上,你不再需要追着 AI 的概念跑。你只需要说:“你们 AI 需要的物理世界接口,我早就用 C++ 写好了。”
-
如果想了解一些成像系统、图像、人眼、颜色等等的小知识,快去看看视频吧 :
-
认准一个头像,保你不迷路:
-
抖音:数字图像哪些好玩的事,咱就不照课本念,轻轻松松谝闲传
-
快手:数字图像哪些好玩的事,咱就不照课本念,轻轻松松谝闲传
-
B站:数字图像哪些好玩的事,咱就不照课本念,轻轻松松谝闲传
-
您要是也想站在文章开头的巨人的肩膀啦,可以动动您发财的小指头,然后把您的想要展现的名称和公开信息发我,这些信息会跟随每篇文章,屹立在文章的顶部哦