单张图生成 3D 网格的验收,需要把“生成成功”拆成拓扑、贴图、法线三块分别看,而不是在查看器里转一圈觉得像就进管线。通常的顺序是:先在查看器里确认朝向和轮廓对得上输入图,再把网格导进 Blender 读顶点数与面数,然后检查 UV 与贴图的对应关系,最后打开面朝向看是否发黑。三项判据分开走,能避免贴图错位时去怀疑面数、面数异常时去重展 UV 这类错位排查。Hi3D 1.0 的输出质量受输入图构图、背景干净程度和部件遮挡关系影响较大,下面给的是可复现的检查动作,不涉及具体版本的参数承诺。
单图生成 3D 网格的验收建议按“拓扑 → 贴图 → 法线”分开做:拓扑看整体面数密度和部件交界是否有堆叠,贴图看 UV 岛与纹理块是否一一对应,法线看实体视图与渲染视图的差异。三项都通过后再考虑减面或重拓扑。边界在于:生成结果通常只适合中远景或背景物件;近景主体一般还需要重拓扑、重展 UV 或替换贴图。所有判断以当前导出格式和本地 Blender 版本的实际读数为准。
在查看器里转一圈:确认朝向与整体轮廓是否对得上输入图
这一步只排除第一眼就能发现的错误,不做精细判断。把模型导入查看器后,先和输入图并排,按正面、侧面、底面三个角度各看一次,每个角度对应一个观察点和一个典型异常。
- 正面轮廓:把视角转到与输入图接近的正面,对照外轮廓和主要凸起部位。异常表现通常是左右镜像、整体朝向反向,或者某个明显部件(如手柄、背包、帽檐)消失或被压成平面。镜像问题在查看器里比较难确认,可以先把视角拖到侧后方对照部件左右位置。
- 侧面厚度:把视角转到 90 度侧向,观察厚度是否和输入图暗示的比例接近。异常表现是整块模型被压成薄片,或厚度方向明显比正面比例夸张。单图生成缺少背面信息,厚度依赖模型对输入视角的推断,这一项只能看是否“离谱”,不能要求精确。
- 底面是否封口:把视角拖到下方。异常表现是底部开口、出现大片单面,或者底面与侧面的交界处有明显的拉伸面。底面开口在只看正面时几乎看不出来,但会影响后续布尔、打印和阴影表现。
这一步的结论只用于判断“要不要退回重新生成”。如果正面对得上、厚度不离谱、底面有封口,就可以进入下一项;如果镜像或大面积部件缺失,继续调贴图没有意义。
把网格导进 Blender,读出顶点数与面数
查看器为了流畅常做简化显示,面数要以 Blender 的统计为准。导入后打开统计面板,通常在 3D 视图右上角开启“统计”叠加层,可以看到顶点数、边数、面和三角形数。注意读取的是三角形数,四边面在导出时往往已经被三角化,只读“面”容易低估实际密度。
# 导入后在 Python 控制台里读一次,便于记录和对比
import bpy
obj = bpy.context.active_object
me = obj.data
print("verts", len(me.vertices))
print("polys", len(me.polygons))
print("tris", sum(len(p.vertices) - 2 for p in me.polygons))
读完之后要判断的是:面数是整体均匀的合理密度,还是局部堆叠造成的虚高。整体密度的特征是网格在模型各处分布接近;局部堆叠的特征是某些区域一眼看去非常密,其他区域却很稀。单图生成的布线容易在两类位置堆积:一是部件交界处,比如手臂与躯干、帽子与头部之间,模型为了区分部件会在交界带加密;二是纹理密集区,输入图上花纹、文字、边缘细节多的地方,往往被分配更多面。
把统计读数和布线视图对照着看:切到线框模式,密集区如果集中在交界带,说明是结构推断带来的堆叠,后续减面时容易在交界处破面;如果集中在贴图复杂区域,说明面数被贴图细节带走了,减面后贴图更容易糊。这两种情况处理策略不同,先分清再动手。
检查 UV 与贴图是否一一对应
贴图错位要先分清是生成贴图本身错位,还是 UV 展开被打乱。Blender 里切到 UV 编辑器和贴图视图并排,按下面的顺序比对。
- 选中模型进入编辑模式,全选后在 UV 编辑器里按 A 显示所有 UV 岛,再按 Home 缩放到全部可见。
- UV 编辑器切到贴图显示模式,贴图选择生成结果携带的那张贴图,通常在模型材质里已经引用,可在图像列表里直接选到。
- 在 3D 视图里选中某个面或某个 UV 岛,看它在贴图上落到的位置是不是对应的纹理块。比如选中面部区域,UV 岛应落在贴图的人脸区域。
- 如果 UV 岛整体形状正常、位置却整体偏移或旋转,通常是贴图与 UV 的约定不一致(例如上下翻转);如果 UV 岛互相重叠、大面积重合,说明展开本身被打乱。
判断依据是:UV 岛本身边界清晰、互相不重叠,但颜色落错位置,偏向贴图或坐标约定问题;UV 岛重叠、拉伸严重、边缘成锯齿状,偏向 UV 展开问题。前者可以先尝试调整贴图坐标约定或上下翻转来验证,后者不要急着改贴图,需要重展 UV 或重新生成。无论哪种情况,都建议先把当前 UV 和贴图各备份一份,再动手。
打开面朝向显示,看法线方向
渲染发黑常见两种原因:法线翻转,或平滑设置不当。在 Blender 的编辑模式下打开面朝向叠加显示(通常在“网格分析”或叠加层里可开启),翻转的面会以另一种颜色标出。切到实体视图,翻转发黑的面往往直接显示为深色甚至黑面;切到渲染视图或材质预览,翻转面要么变黑,要么不参与受光。
如果实体视图正常、渲染视图发黑,更像是平滑组或自定义法线的问题,而不是面整体翻转。可以先在物体数据属性里清除自定义拆分法线,再切换平滑与平直着色对比。确认是翻转面后,在编辑模式下全选,按 Shift+N 重算法线;如果结果仍不对,使用“网格 → 法线 → 重新计算外侧”入口,让法线朝外统一。重算后再开关一次面朝向显示确认。
需要注意:单图生成的双面薄片结构在重算法线后可能出现正反面判断错误,这类位置要单独回到实体视图检查,不能全选重算后就直接通过。
按资产用途划定可用边界
三项验收通过,代表结果在拓扑、贴图、法线三方面没有明显错误,不代表可以直接用在所有场景。按用途划分,边界比较清楚。
- 背景物件:中远景、小尺寸、只作为画面填充的物件,通常可以在验收通过后直接使用,或做一次轻度减面。仍建议保留原文件,便于后续替换。
- 近景主体:需要靠近观察的角色、道具或产品,一般还需要补三类工作:减面或重拓扑把布线整理成可编辑的结构,尤其在部件交界处重新布线;重展 UV 让 UV 岛分布均匀、减少拉伸;必要时替换生成贴图为手工贴图或材质。未处理结果直接用在前景,容易在近看时暴露面数堆叠和贴图接缝。
是否进入下一步,取决于资产在画面中占多大比例、是否会靠近镜头、是否需要后续编辑。可以先按背景用途落地一版,把近景主体单独列出来补工,不要用同一套标准要求所有输出。生成结果的角色更像一个起点,验收判据的作用是把“看起来还行”变成“知道哪里要改”。