如何用一张图片生成 3D 模型:决定结果的四个选择
图生 3D 预测的是相机没拍到的那部分几何。本文说明照片怎么准备、单视图与多视图引擎如何取舍、一分钟内怎么判断网格质量,以及按正确比例导出。
同一张照片可以变成游戏资产、可打印浮雕或实测扫描,但不可能三者兼顾。本文拆开四种目标、各自对应的方法,以及每种方法要付出的清理代价。
把二维图片变成三维模型并不是一个操作,而是至少四种共用同一个输入文件的不同任务:用照片做游戏或 AR 资产、做可打印的实物、测量真实存在的物体,以及给网页首屏做假的视差效果。目标不同,工具、导出格式和后续要付出的清理工作也完全不同。
这篇教程先把目标拆开,再逐一说明每种目标该用的方法,并给出真正影响结果的数字:典型面数区间、常见输入分辨率、打印公差,以及在 2026 年仍然必须手工完成的修复步骤。文中会在有明确默认选择的地方点名工具,能力与限制都照实写。
同一张照片可以走向四种完全不同的产物,把它们混为一谈,是很多人认定“图生 3D 没用”的主要原因。给 Unity 或 WebGL 查看器用的资产,只需要在玩家会看到的角度上好看,做成一层外壳加烘焙贴图就够了,不必有内部结构。要打印的实物必须是封闭实体,要有真实厚度,因为切片软件无法处理一张开放曲面。想要测量尺寸,就得靠多张标定过的照片,单张图片本身不包含深度信息。网页首屏要的视差效果,需要的是一张深度图和位移着色器,根本不需要网格。
| 路线 | 输入 | 典型输出 | 仍需清理的部分 |
|---|---|---|---|
| 单图 AI | 一张 1024 px 以上的照片 | 2 万至 20 万三角面,带烘焙基础色 | 背面靠推测、需要减面、UV 与贴图微调 |
| 多视图 AI | 3 至 6 张光照一致的视图 | 面数更密,贴图一次性拼合 | 需要相机标定,补上未见底面的孔洞 |
| 摄影测量 | 30 至 200 张有重叠的照片 | 数百万三角面,附带相机解算结果 | 减面、重拓扑、核对真实比例 |
| 深度图浮雕 | 一张照片加一张深度估计图 | 约 5 万至 50 万三角面的封闭浮雕 | 调整高度夸张系数、加背板、保证壁厚 |
| Blender 位移 | 把图片当作高度图使用 | 参数化曲面,分辨率由自己决定 | 手工建模、手工展 UV、手工加厚 |
照片里每个像素只记录颜色,不记录距离。图生 3D 系统分两步补上缺失的那一维。第一步是深度估计:在图像与深度成对数据上训练过的网络会预测一张深度图或一个隐式场,MiDaS、Depth Anything V2 这类单目估计器输出的是相对深度,前后顺序可靠,绝对距离粗略。第二步把这个估计抬升成三维表示,可能是辐射场、一组高斯或一个符号距离场,再用可微等值面提取方法取出表面,常见的有 marching cubes、DMTet 和 FlexiCubes。
由此带来的现实结果是:几何是推断出来的,不是观测到的。相机拍到的部分通常能保持在百分之几的误差内,轮廓线背后的部分是平滑而合理的猜测。细带子、手指、椅腿和线缆这类结构容易糊成一团,因为深度估计器没有办法把它们分开。网格同样没有单位:花瓶和公交车出来是一样大的,所以每次导出都必须显式设置比例。
如果实物就在手边,与其拍得更好,不如多拍几张。TRELLIS 2、Hunyuan3D 2.x 的多视图模式,以及 Meshy、Tripo、Rodin 这类在线服务,都接受 3 到 6 张视图,去重建一个前后一致的物体,而不是猜一个背面。如果目的是真实测量,摄影测量仍是基准方案:COLMAP 或 Meshroom 从 30 到 200 张有重叠的照片中解算相机位置,生成稠密点云,重建出真实表面。它更慢,也要求物体表面有纹理,但它是在测量而不是在编造,也是本文所有路线中唯一能直接从图像得到真实尺寸的一种。
生成的网格通常带着三个反复出现的毛病。法线反向或不一致,会让模型在 Unity 里渲染成黑色,也会让部分切片软件判断错误。底面或肢体之间的小孔洞,会破坏 FDM 与光固化切片软件所要求的流形条件。零厚度的薄壁在屏幕上看着是实体,打印出来却只有一圈外壁,甚至完全打不出来。Blender 的 3D-Print Toolbox 能一次性标出非流形边、自相交和过薄区域,Meshmixer 的 Analysis 工具给出类似的检测结果,trimesh 和 MeshLab 则可以用脚本批量完成同样的检查。先重算法线,再补洞,最后用实体化修改器或布尔并集加上厚度,之后才谈得上能不能打印。
如果目标本来就是把一张平面图变成可打印的东西,深度图加高度图往往比生成式网格更合适。照片浮雕灯是最典型的情况:转成灰度、反相,让暗部变厚,剩下的高度差交给切片软件处理。做浮雕牌时,可以先用 Depth Anything V2 估计深度,导出为 16 位 PNG,再在 Blender 里对一张高密度平面做位移。以长边约 1920 px 的原图起步,150 mm 宽的浮雕在 0.1 mm 层高下大约能分辨 0.4 mm 的细节,这基本就是 0.4 mm 喷嘴的实际极限。
这里的两个坑都很无聊,却极其常见。生成的网格是归一化的,本该 180 mm 高的模型导出后只有 1 个单位,切片出来什么都没有。常见约定是 1 个 Blender 单位等于 1 米,而 STL 和 3MF 文件本身不携带单位字段,读它的工具一律按毫米处理。用标尺叠加层量一下,再显式缩放。第二个问题是轴向:Blender 是 Z 轴向上,大多数游戏引擎和 glTF 是 Y 轴向上,没有做转换就导入的模型会脸朝下站着。上下轴和朝向轴都要检查,并且在导出时改好,而不是进引擎之后再改。
| 格式 | 适用场景 |
|---|---|
| GLB / glTF | 游戏引擎、AR 查看器和网页:单文件、内嵌贴图,默认 Y 轴向上。 |
| OBJ | DCC 工具或渲染农场期望散装文件时:网格加独立的 MTL 与 PNG 贴图集。 |
| STL | 单色打印,代价是它没有单位、没有颜色,也没有材质信息。 |
| 3MF | 需要毫米单位、多零件,以及把打印参数带进 Bambu Studio、OrcaSlicer、Cura 或 PrusaSlicer 时。 |
| PLY | 点云与扫描数据,以及需要顶点颜色的流程。 |
按经验,单图任务里大约有一半需要做第二遍。带细长结构的物体、透明或镜面表面,以及特征完全长在背面的东西(椅背、汽车远端侧面),都是稳定的失败案例。文字和精细雕刻会被抹糊,因为深度估计本身比原图更平滑。重复结构最难处理,比如链环或网眼织物。补救办法都不光鲜:改成四分之三视角重拍,补一张视图,把遮挡部分手工建出来,或者如果实物在手边、能绕着走一圈,就改用摄影测量。
在这个格局里,Open3DAI 的定位是浏览器里的工作台,而不是桌面建模软件的替代品。它支持文生 3D、单图生 3D 和多视图输入,可以做 AI 贴图,也能把同一个提示词或同一张图片放到可用引擎上并排比较之后再导出;导出格式包括 GLB、glTF、OBJ、STL、PLY 和 3MF,并配有 REST API 和 48 个格式转换器。它不做摄影测量、绑定、动画、自动重拓扑、UV 展开,也不产出 CAD 级别的参数化实体,更不保证输出就是流形或可以直接打印。这些环节请留给 Blender、Meshmixer,或者 FreeCAD、OpenSCAD 这类参数化工具。
引擎可用性、积分价格和第三方条款会随版本变化;在投入预算或把流程绑定到某一个引擎之前,请到厂商页面核对当前信息。
只要背面可以被合理推断,就可以。瓶子、杯子、简单生物和风格化道具都没问题;椅子、披风和细长机械结构不行,因为一半形状压根没进画面。按经验,单图任务里大约有一半需要再清理一遍。
在在线接口上,单次生成通常 20 到 90 秒返回,具体取决于引擎和分辨率。在消费级显卡上跑 ComfyUI 的 Hunyuan3D 2.x 或 TRELLIS 2 流程,每个资产通常要几分钟。摄影测量完全是另一个量级:一次完整重建从几十分钟到数小时不等。
生成的网格是归一化的,通常约等于一个单位立方体,而 STL 和 3MF 不携带单位字段,读取工具一律按毫米理解。导出前用标尺工具量一下,并显式缩放。
用在线服务不需要,浏览器负责上传,引擎在远端运行。如果要在本地跑 ComfyUI 的 Hunyuan3D 2.x 或 TRELLIS 2 流程,就要准备一块独立显卡,显存大约 8 至 24 GB,视模型和目标分辨率而定。
两者回答的是不同问题。摄影测量用 30 张以上有重叠的照片测量真实物体,给出真实比例和真实表面细节;AI 重建最低只要一张图,但相机没拍到的部分只能靠编。实物在手且精度重要时用摄影测量,只有一张图时用 AI。
多数情况下修复之后可以。让网格封闭、给出真实壁厚、切出平整底面,并在切片预览里检查有没有悬空壳体。用深度图做的浮雕和浮雕灯最容易打印,因为加一块背板之后它几乎是天然实心的。
取决于用途。手游道具通常在 2000 到 15000 三角面比较舒服,PC 端主角级资产在 3 万到 10 万之间;要打印的物体则可以尽量多,几百万三角面的 3MF 照样能切片。先减面再展 UV,如果贴图变糊就重新烘焙。
清晰、光照均匀、画面里只有一个物体,主体占画面的 70% 至 90%,背景干净或透明,短边至少 1024 px。引擎内部会缩放,小图或模糊裁切里丢失的细节再也回不来。
给 Unity、Unreal、Godot、网页查看器和 AR 用 GLB 或 glTF,贴图打包在文件里,轴向约定为 Y 轴向上。单色简单打印用 STL;希望把毫米单位和打印参数带进 Bambu Studio、OrcaSlicer、Cura 或 PrusaSlicer 时用 3MF。
把同一份提示词或图片交给多个引擎,并排对比网格,然后导出 GLB、glTF、OBJ、STL、PLY 或 3MF。注册即赠免费积分,无需信用卡。
图生 3D 预测的是相机没拍到的那部分几何。本文说明照片怎么准备、单视图与多视图引擎如何取舍、一分钟内怎么判断网格质量,以及按正确比例导出。
轮廓拉伸、透光浮雕高度图和 AI 图生 3D 最终都导出同一个扩展名,除此之外几乎没有共同点。下面说明三条路线各自控制什么、什么照片能活下来,以及第一层打印之前要做的检查。
贴图是四个按顺序做出的决定:模型是否需要 UV、UV 岛如何排布、要制作哪几张 PBR 贴图、像素从哪里来。下面逐条给出判断依据和具体数值。