几何验证能发现结构缺陷,但有些问题只有"看起来"才知道不对——贴图扭曲、材质错配、语义异常。渲染与视觉验证补上了这个维度,而闭环融合把"发现问题"和"解决问题"连成循环。
为什么需要视觉验证?
几何上完全合法的模型(水密、无穿插、法线一致),渲染出来可能:
- 贴图拉伸变形
- 材质分配错误(金属件看着像塑料)
- 语义不合理(人长五条腿)
这些问题的本质是:几何维度覆盖不到的缺陷。几何验证检查的是"结构对不对",视觉验证检查的是"看起来对不对"。
🧭 引导过程:用户一开始以为几何方法能覆盖所有问题,经过引导后自己总结出"几何验证和视觉验证是互补的两个维度"。
PBR 材质:基于物理的渲染
Phong vs PBR
| Phong | PBR | |
|---|---|---|
| 参数 | 随意调的经验值 | 物理含义明确的参数 |
| 能量守恒 | 不保证(反射光可以超过入射光) | 自动保证 |
| 真实感 | 特定角度"看着像" | 各角度都符合物理 |
PBR 核心参数
| 参数 | 含义 | 范围 |
|---|---|---|
| Base Color | 表面基础颜色 | RGB |
| Metallic | 金属度 | 0(非金属)→ 1(金属) |
| Roughness | 粗糙度 | 0(镜面光滑)→ 1(完全磨砂) |
| Normal Map | 表面凹凸细节 | 法线贴图 |
金属 vs 非金属的区别:金属的高光带金属本身颜色(金色反射金色),非金属高光是白色。
粗糙度:决定反射是集中(光滑镜面)还是散开(磨砂),和金属度是独立的两个维度。
BRDF(双向反射分布函数)
PBR 的数学核心,回答:光从方向 l 照进来,从方向 v 反射出去,有多少能量?
f(l, v) = reflected radiance / incoming irradianceCook-Torrance BRDF 模型:
f = kd * f_diffuse + ks * f_specular镜面反射由三个因子保证物理正确:
| 因子 | 含义 |
|---|---|
| D(法线分布) | 微表面法线朝向分布——粗糙面法线杂乱,光滑面法线集中 |
| F(菲涅尔) | 掠射角反射增强——斜看水面像镜子 |
| G(几何遮挡) | 微表面自遮挡——粗糙面凹陷处互相挡住 |
三者相乘保证能量守恒。
💡 记忆点:PBR 的"物理"不是玄学,就是三个约束——能量守恒、菲涅尔效应、微表面理论。参数少(4个)但约束强,所以"怎么调都不会假"。
多视图渲染
相机布局
6 个正交方向(上下左右前后)+ 8 个角的斜视方向 = 14 个基础视图。
核心问题:视图数量 vs 检测能力是一个采样问题——球面上采样有限个点,希望覆盖所有可能暴露缺陷的角度。视图越多覆盖越全,但计算成本正相关。
光照条件
| 光照类型 | 作用 |
|---|---|
| 多位置点光源 | 揭示表面凹凸——侧面打光让小凹陷产生阴影 |
| 环境光/平行光 | 均匀照明,检查整体材质颜色一致性 |
| 暗光条件 | 暴露自发光材质效果、贴图分辨率不足的噪点 |
完整渲染配置:标准化 PBR 材质 + 多种光照条件 + 多视图角度 → 渲染图
VLM 视觉验证
VLM 能检测的缺陷类型
| 类型 | 例子 |
|---|---|
| 语义错误 | 人长五条腿、杯子底部有把手 |
| 纹理错误 | 脸部贴图扭曲 |
| 材质错误 | 牛身上长草色的毛、金属件看着像塑料 |
VLM 的局限:“散光眼”
VLM 基于 CNN+CLIP 架构,擅长语义检测(“这条腿该不该在这”),不擅长像素级细节(“这里有个微小凹陷”)。卷积的下采样特性导致细节信息丢失。
VLM 验证的输入
- 用户原始描述(“一个金属质感的银色杯子”)
- 多视图渲染图
- 可选:参考图
材质验证检查项
| 检查项 | 验证方式 |
|---|---|
| 颜色 | 参数值 vs 描述(“银色”→ 灰白色 RGB) |
| 金属度 | 参数值 + 渲染图视觉判断 |
| 粗糙度 | 渲染图视觉判断(高光是否锐利) |
| 法线贴图 | 渲染图有没有异常凹凸/扭曲 |
🧭 引导过程:用户有 VLM 图片审核项目经验,采用"全局检测→坐标分割放大细查"的策略,自然理解了粗检测→细查的验证流程。
闭环融合:从"发现问题"到"解决问题"
几何验证 vs 视觉验证的互补关系
| 几何验证 | 视觉验证(VLM) | |
|---|---|---|
| 擅长 | 结构性缺陷(水密、穿插、法线) | 语义缺陷(多余部件、贴图扭曲、材质错配) |
| 不擅长 | 看起来对不对 | 微小几何细节、内部问题 |
交叉验证
VLM 发现视觉问题后,需要定位根因:
- 先查几何:该区域有没有几何异常?
- 如果几何没问题,查法线贴图有没有扭曲?
- 如果都没问题,可能是光照/渲染假象
用不同维度的检测结果互相印证——这就是"闭环"的核心。
修复方式
| 问题类型 | 修复方式 |
|---|---|
| 几何穿插 | 算法自动修复(删面、补面) |
| 法线贴图错误 | 从正确几何重新烘焙 |
| 材质分配错 | 直接改参数 |
| 贴图问题 | 2D inpainting 修复后映射回 3D |
完整闭环流程
用户输入提示词/参考图
↓
生成网络生成模型
↓
几何验证 + 算法修复
↓
VLM 视觉验证
↓
┌─→ 尝试修复(自适应策略)
│ ↓
│ 重新验证
│ ↓
│ 通过?──→ 输出结果
│ ↓ 没通过
│ 达到最大迭代?──→ 兜底方案(人工接管/重新生成)
│ ↓ 没达到
└─── 调整策略,继续循环自适应细化
核心思想:记忆 + 策略调整,类似 LLM Agent 的消息队列+记忆系统。
- 记住之前每一轮修了什么、修好了没有
- 根据历史调整下一轮的修复重点
- 对反复修不好的问题,换策略或升级处理方式
最大迭代保护:防止死循环的工程必要措施。
3D 领域的修复现状
类比 2D 领域的发展:
- 2D:抽卡(生成多张选最好的)→ 精准编辑(inpainting、指令编辑)
- 3D:目前以"抽卡"为主,局部针对性修复能力有限但正在发展
闭环的价值:把"抽卡"变成"诊断+修复"。
常见误区
- “几何验证能覆盖所有问题”:贴图扭曲、材质错配等视觉问题需要渲染+VLM 检测
- “Phong 和 PBR 只是效果好坏”:本质区别是能量守恒约束,PBR 怎么调都不会"假"
- “VLM 能检测所有视觉缺陷”:VLM 擅长语义检测,不擅长像素级细节(“散光眼”)
- “修复完就结束了”:修复可能引入新问题,必须再验一次(闭环)
- “重新生成就能解决”:不改变策略的重试可能重复同样的失败
阶段 3 & 4 核心概念清单
| 概念 | 关键点 |
|---|---|
| PBR 材质 | metallic + roughness,能量守恒,Cook-Torrance BRDF |
| BRDF | 双向反射分布函数,D/F/G 三因子 |
| 多视图渲染 | 球面采样问题,正交+斜视 |
| 多光照验证 | 点光源(凹凸)、平行光(整体)、暗光(自发光) |
| VLM 语义验证 | 擅长语义,不擅长细节,输入=描述+渲染图 |
| 交叉验证 | 视觉发现问题 → 几何/贴图定位根因 |
| 闭环修复 | 验证→修复→再验证循环 |
| 自适应细化 | 记忆+策略调整,越修越聪明 |
基于 2026-06-04 学习 session 生成 · 阶段3&4宏观框架 + PBR/BRDF 技术细节