简介:本教程帮助开发者借助AI大模型完成3D建模与可交互3D场景制作。读者将掌握参数化与生成式两种建模方式的选型与协作,学会拆解需求、编写提示词、定义参数表、生成场景与运镜,并完成结果验证、问题排查和性能优化,从而高效产出机械零件、建筑、3D网页和演示动画类作品。
AI大模型进入三维内容生产领域后,从文字描述生成几何、材质和场景代码的能力,为3D建模带来了新的工作方式。但“让模型直接生成一个三维模型”并不能稳定产出可用的结果。能否把创意拆解为模型能够理解的指令,并在建模阶段选择正确的路线,才是决定成品质量的关键。
本教程要完成的目标是:以一个明确的3D内容需求(如可交互的三维展示页面、一组机械零件、一栋建筑模型或一段带运镜的演示动画)为输入,完成以下完整流程:
本教程适合以下读者:
从原始需求来看,这类工作方式在以下场景中价值比较明显:
参数化建模的核心是“参数加约束”。模型形状由一组尺寸参数(长度、半径、角度、数量等)和几何约束(平行、对称、相切、同心等)决定。修改参数,模型自动更新。它主要包括以下几种构造方式:
参数化的优势是尺寸可控、结构清晰、便于批量生成变体,适合对精度和工程一致性要求高的内容。其不足在于:表达自由曲率和有机形态时成本较高;面对大量非标准造型时,参数关系会迅速膨胀,难以维护。
生成式建模的核心是“意图到代码”。大模型根据自然语言描述,直接生成构建场景的脚本或代码,如材质定义、灯光配置、相机路径、动画关键帧、交互逻辑,甚至整个场景的组织结构。代码驱动的生成有一个重要优点:结果本质上是可读、可改的源码,而不只是一个无法解释的黑盒结果。
以在浏览器中运行的三维场景为例,典型的生成内容包括:
生成式的优势是速度快、表达自由,适合概念验证、场景氛围塑造和复杂动效。其不足是几何精度不可控:生成的拓扑结构可能混乱,存在非流形边、翻转面、零面积面等缺陷,也不便于后续的工程修改。因此,对精度要求高的部分,生成式结果通常需要再做一层参数化约束,或转为静态展示用途。
两条路线并非互斥。从各类对象的特征出发,较稳妥的分工如下:
| 对象类型 | 推荐路线 | 原因说明 |
|---|---|---|
| 汽车、家电、机械零件 | 以参数化为主,生成式辅助 | 外壳用截面放样或曲面控制;轮胎、齿轮等用旋转截面;按钮、连接件逐件装配。尺寸、对称与零件层级均可精确控制 |
| 建筑 | 规则部分写参数,有机部分交给生成式 | 楼层、立面、梁柱、窗格适合参数化;地形、景观、装饰纹理适合程序化生成 |
| 三维网页与交互Demo | 以生成式为主 | 重点在于快速搭建场景、灯光与交互框架,再逐步替换为精确模型 |
| 演示动画与运镜 | 生成关键帧,人工微调曲线 | 由模型生成镜头路径与节奏,再对缓动、景深、构图进行人工修正 |
协作原则:凡涉及尺寸、装配关系和可复用结构的几何,优先用参数表达;凡涉及氛围、造型自由和镜头节奏的内容,优先交给生成式完成,再由人工约束质量。
先回答三个问题:作品给谁看、在什么设备上运行、交互到什么程度。例如“面向销售场景的产品展示网页,在主流办公电脑上以60帧运行,支持旋转、缩放、点击查看参数、一键切换配色”。
为什么要做:没有验收标准,就无法判断生成结果是“能用”还是“不能用”,后续每一轮修改都会缺乏依据。这一步是后面所有判断的基准,务必先于建模完成。
把需求拆成“零件—装配—场景—镜头”四个层级,并逐一标注路线:
为什么要做:混用两条路线最常见的结果,是为了追求外观“生成一次”而放弃尺寸控制,导致模型无法装配,也无法复用。提前分类能避免返工。
注意:拆分粒度以“能够独立验证”为准。如果一个零件生成后无法单独判断对错,就说明它拆得太大。
提示词不应是一句“帮我做一个三维模型”,而应包含五部分:对象与用途、尺度与单位、结构约束、风格与材质、输出形式。
示意性模板如下:
【对象】某型减速箱上盖,用于产品展示网页中的可旋转查看【尺度】单位毫米;外形包围盒约 200 × 150 × 60【结构约束】- 壁厚 3mm,所有外圆角 R2,所有内圆角 R3- 顶面均布 6 个 M6 沉头螺栓孔,位于 180 × 130 的矩形阵列上- 底面设置与下壳匹配的定位止口,深度 5mm【风格】哑光深灰金属外壳,接缝处略深,不使用贴图纹理【输出形式】参数表(JSON)+ 构建步骤(按序编号)+ 自检清单
为什么要做:模型并不会“看到”你的想法,它只能依据文本推理。尺度、约束和输出形式越明确,生成结果的偏差越小,后续修改次数也越少。
注意:不要在一条提示里同时要求“精确到毫米的装配关系”和“夸张的未来感造型”。二者目标冲突时,模型往往两头都做不好,应拆成两轮生成。
对于汽车、家电、机械零件类对象,先把参数表定下来,再让模型输出构建脚本。参数表就是模型的“设计输入”,后续所有变体都由它派生。
示意性参数表如下:
{"part": "housing_cover","unit": "mm","envelope": { "length": 200, "width": 150, "height": 60 },"wall_thickness": 3,"fillet": { "outer": 2, "inner": 3 },"bolt_pattern": { "count": 6, "spacing_x": 180, "spacing_y": 130, "hole_d": 6.6 },"spigot_depth": 5}
拿到参数表后,再要求模型输出按序执行的构建步骤。伪代码示意:
01 基础体 = 拉伸(矩形截面(200,150), 高度 = 60 - 5)02 止口 = 在底面内缩 (壁厚 + 2) 处向下拉伸 5,与基础体做布尔并集03 内腔 = 由外轮廓内缩 壁厚,向下挖除,保留 底部厚度 504 螺栓孔 = 按 (180,130) 矩形阵列生成 6 个直径 6.6 的通孔,减去沉头锥台05 圆角 = 对外棱边施加 R2,对内棱边施加 R306 校验 = 检查壁厚是否处处 ≥ 3;检查最小特征尺寸是否 ≥ 加工下限
为什么按这个顺序:先实体、后挖除、最后圆角与阵列,是三维建模中比较稳定的构建次序。若先倒角再布尔运算,圆角面常在后续运算中被破坏,产生碎面或运算失败。
注意:参数之间要标注依赖关系。如“沉头孔直径 ≥ 螺栓直径 + 0.6”属于约束而非固定值,模型生成时应把它写成校验条件,而不是写死数字。
对于三维网页、交互Demo和演示动画,核心是让模型输出一份完整、可运行、结构清晰的项目骨架,而不是片段代码。建议一次性要求模型给出以下产物:
场景描述的示意写法:
【场景】工业产品展示页【构图】产品置于画面中央偏下,留 15% 上部空间给标题【镜头】初始机位:距产品 4.5 倍包围盒对角线,仰角 12°进入动画:3.2 秒内由远景缓动推近至近景,先快后慢交互:鼠标拖拽环绕,滚轮缩放,缩放范围限定在 2~8 倍对角线【灯光】主光偏左上 45°,辅光右侧低强度补光,底部一盏弱反射光【材质】外壳金属度 0.9、粗糙度 0.35;logo 区域为自发光【交互点】3 个热点,分别标注功率、重量、接口;点击后弹出信息卡并轻微推镜【性能】目标 60 帧;面数上限 30 万三角面;贴图不超过 2048 × 2048
为什么要把运镜写进提示词:镜头运动是最容易被忽略、又最影响观感的部分。只写“做一个漂亮的旋转展示”,模型通常只会给一个匀速自转;把时长、缓动、起止机位写清楚,才能得到有节奏的运镜。
注意:如果单次输出被截断,不要反复重新生成,而应要求模型“先输出目录结构和接口定义,再逐个模块补全”。分模块补全的结果,通常比一次性长输出更完整、更一致。
无论是参数化脚本还是场景代码,都需要经过一次“落地检查”:
这一步常被跳过,但它是后续一切验证的前提:本地能跑不代表部署后能跑。路径错误、MIME 类型错误、压缩格式不被识别,都是部署后最常见的失败原因。
调优集中在三个方向:
调优后应记录一组基线数据(帧率、首屏加载时间、内存占用),作为后续版本的对比依据。
| 配置项 | 含义 | 常见取值逻辑 | 配置风险 |
|---|---|---|---|
| 单位制与坐标约定 | 场景使用毫米还是米;Y 轴向上还是 Z 轴向上 | 工程建模多用毫米,实时渲染场景多用米;全链路统一 | 混用会让模型比例错乱,相机距离、灯光强度全部失真 |
| 原点与枢轴 | 模型局部坐标系原点位置 | 放在对称中心或装配基准面 | 原点随意会导致旋转、缩放时模型绕错误中心运动 |
| 法线朝向 | 三角面正面的方向 | 统一朝外,必要时重新计算 | 朝向错误会出现局部透明、光照发黑 |
| 细节层级与面数预算 | 不同视距下的模型精度 | 远景用低模,近景用高模 | 不做分级会导致移动端严重掉帧 |
| 像素比与分辨率上限 | 渲染分辨率与设备像素比的乘积上限 | 移动端限制像素比,防止高分屏过度渲染 | 不限像素比时,高分屏设备帧率可能腰斩 |
| 阴影与光照 | 阴影贴图尺寸、投射阴影的光源数量 | 只让主光投影,其余光源不投影 | 多光源同时投影会显著增加绘制开销 |
| 资源加载策略 | 一次性加载还是按区域加载 | 首屏只加载必要资源,其余进入场景后再加载 | 全量预加载会拉长首屏时间,用户流失明显 |
验证分四层,逐层通过才能进入下一层:
建议在浏览器开发者工具的性能面板中录制一段完整交互过程,观察帧时间分布。均值正常但存在明显长帧,往往说明某一环节存在周期性开销(如贴图按需解码、几何体动态创建),比单纯的低帧率更值得排查。
| 现象 | 常见原因 | 排查思路 |
|---|---|---|
| 模型比例明显不对 | 单位制不一致 | 检查建模单位与导出单位;测量包围盒与预期尺寸的比值,若为 1000 或 0.001,基本可确认是毫米/米混用 |
| 模型部件散乱、位置错开 | 装配坐标未按同一基准计算 | 统一以装配基准面为原点,逐一核对子件变换矩阵 |
| 表面出现条纹、闪烁 | 深度精度不足(近远平面差距过大) | 收紧相机近裁剪面,拉开近远平面比例 |
| 表面发黑或局部透明 | 法线朝向错误 | 重新计算法线,或开启背面剔除以外的双面渲染做对比定位 |
| 旋转时模型绕错误中心运动 | 枢轴/原点位置不对 | 调整枢轴到对称中心或装配基准 |
| 场景加载后长时间空白 | 资源路径或格式不被识别 | 检查网络面板中资源请求状态码、MIME 类型与压缩编码 |
| 交互无响应 | 事件绑定对象错误或射线检测目标未设置 | 打印事件触发日志,确认命中的是哪个对象 |
| 移动端帧率大幅下降 | 面数、贴图或像素比超出移动设备预算 | 开启细节层级、限制像素比、降低贴图尺寸后再测 |
对于参数化生成结果,还需要额外检查两点:一是参数修改后模型是否自动正确更新(说明约束关系真的被建立了,而不是被写死);二是极值参数(壁厚趋近于零、阵列数量极大)下是否仍能正常构建。这两点能暴露“看起来对、其实不可维护”的参数模型。
本教程的核心结论是:AI大模型在3D内容生产中,真正擅长的不是“替你决定形状”,而是“把你已经想清楚的结构快速实现出来”。 围绕这一目标,关键步骤可以概括为:
后续可继续深入的方向包括:把参数表接入产品选型或在线配置系统,实现“改参数即出模型”;建立模型资产的自动化质检流水线;将生成式流程与团队既有的三维内容规范对齐,形成可复用的生产管线。