想象你是一位城市规划师,要为市民打造一座巨大的城市沙盘。沙盘最前排的主街道,建筑精细到窗户、招牌、阳台栏杆,每一处雕花都清晰可见;而远处的住宅区,只需要一个个灰色的小方块——不是因为你偷懒,而是因为观众的视线根本无法分辨那些细节。这个“近处雕花、远处砌块”的智慧,正是3D渲染中大名鼎鼎的LOD(Level of Detail,细节层次)技术。 然而传统做法里,每栋建筑的“精细版”和“粗略版”都要沙盘师一砖一瓦手工制作,费时费力。AI驱动LOD,就像请来一位阅“模”无数的智能助手——它看过成千上万个建筑模型,深谙“哪些细节在远处会被眼睛自动忽略”,于是能自动为每栋建筑生成适配各距离的精简版本,还能在观众走动时实时切换。本文将带你读懂这套“城市沙盘智能化妆术”的完整流程。
掌握AI驱动LOD,你就握住了3D渲染性能优化的核心钥匙。它是游戏引擎、数字孪生、元宇宙场景开发中不可或缺的硬技能,能让你在图形学岗位上脱颖而出。
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
传统LOD(均匀简化) vs AI驱动LOD(感知加权) 传统LODAI驱动LOD均匀QEM: 面部和背面同等简化传统LOD传统LODAI驱动LOD均匀QEM: 面部和背面同等简化传统LOD 传统LODAI驱动LOD均匀QEM: 面部和背面同等简化传统LOD传统LODAI驱动LOD均匀QEM: 面部和背面同等简化传统LOD
LOD基础概念
回到城市沙盘现场。你站在沙盘前,目光先落在最前面主街道——每栋建筑都要刻出门窗、砖缝、招牌,因为观众伸手就能触到;再抬眼望远处社区,一排排火柴盒大小的楼宇,你只涂上统一灰色便收工。这不是敷衍,而是“距离决定了细节的极限”。在3D渲染中,这条原则被形式化为LOD机制:相机近处的物体使用精细网格,远处的物体使用简化网格,让每一分性能都花在刀刃上。
传统LOD依赖美术师手工制作。同一个物体往往要准备2~5个精度递减的版本:LOD0是精雕细琢的高模,LOD1去掉雕花,LOD2只剩主体轮廓,LOD3退化为几何方块。每版都要人工调校,耗费大量工时;若项目场景包含上万种建筑、角色、道具,工作量便成了无底洞。
现代引擎用统一公式决定何时切档。物体与相机距离越远,LOD级别越高,网格越粗略:
这个公式就像沙盘的分区规划:离观众席最近的A区用雕刻级模型,中区用简化版,远端用方块。不同之处在于,LOD公式为每栋建筑算出了精确的“换挡距离”,让远近层次井然有序,也让后续所有智能优化有了一个量化坐标。
- 当前距离 \(d\)相机到物体中心的直线距离,单位通常是米,它是触发LOD切换的决定性输入。
- 基准距离 \(d_0\)物体的LOD0档位所能覆盖的最远距离,小于它时始终使用最高精度。
- 对数缩放 \(\log_2\)距离每翻一倍,LOD级别提升一档,符合人眼“远处细节衰减”的感知规律。
- 向下取整 \(\lfloor \cdot \rfloor\)LOD级别必须是整数,不允许出现“半档”。
- 封顶 \(L_{\max}\)即使距离无穷远,也保留最简模型,不会无限降阶。
几何简化算法
沙盘师要把一栋精细建筑改造成远处的粗模,会怎么做?他会把一排小窗户合并成一个长色块,把圆柱门廊削成多边形棱柱,把背面永远看不见的结构整个拆掉。几何简化算法做的是同一件事:在尽量保留外观的前提下,用更少的三角形表达同一个物体。
主流方法有两派。顶点聚类最直观:把三维空间切成小格子,每个格子内的顶点合并成一个代表点,格子越大、简化越猛;边折叠则是一条边一条边地“缝合”,每次选择代价最小的边折叠为一个点,逐步减少三角形数量。两者都需要回答同一个问题:合并时哪个顶点该保留、折叠哪条边最“不痛”?
图形学给出的经典答案是二次误差度量(QEM)。它把“折叠后模型偏离原表面多远”量化成一个可计算的代价:
QEM的价值在于它把“简化得是否走样”变成了一个可排序的数值。沙盘师每一次合并前都翻看“损毁账本”,优先挑代价最小的下手;迭代地进行边折叠,直到面数达标。这保证了每一步都牺牲最小的视觉信息,为后续AI自动生成LOD打下了理论基础。
- 待折叠顶点 \(\mathbf{v}\)边折叠后要移动的位置点,算法优化的对象。
- 关联平面集合 \(\mathcal{P}(\mathbf{v})\)与顶点相邻的所有三角形所在平面,它们是“原有表面”的代言人。
- 平面单位法向量 \(\mathbf{n}_p\)垂直于平面p的归一化向量,携带该平面的朝向信息。
- 点到平面的有符号距离 \(\mathbf{n}_p^{\top}\mathbf{v} + d_p\)把顶点v代入平面方程得到的偏移量,表示v离开原表面多远。
- 平方累加所有相邻平面的距离平方求和,将偏差转为总代价,平方保证正负不抵消。
AI自动LOD
如果给那位沙盘师配一位人工智能学徒呢?学徒不必从零上手,而是观摩过成千上万次“师傅的简化决策”——哪些窗棂被合并、哪些飞檐被保留、哪些曲面被拉平。它逐渐学会一套直觉:一个细节能不能省,不看它多重要,只看观众在特定距离上能不能察觉。这就是AI自动LOD的核心思想:用深度神经网络学习人眼感知下的“无损简化”。
工作流程分三步。第一步,数据准备:收集大量“高模+多级低模”的成对网格,用QEM等传统算法生成标注,或由美术师手工制作教学样例;第二步,训练:网络接收高模的点云或占据特征,以各档低模为回归目标,迭代学习从三维结构到简化结果的映射;第三步,推理:新的高模输入网络,一次前向传播直接吐出低模顶点坐标,完全不需要逐边计算代价。训练目标由一个复合损失函数驱动:
这个损失函数就像一个双重考核的学徒制度:几何损失是“师傅打分数”——你的模型骨架对不对;感知损失是“观众投票”——最终渲染出来有没有人看得出破绽。学徒在反复迭代中学会兼顾“形似”和“神似”,最终出师时,只需看一眼高模就能给出各距离档位的简化方案,把美术师从繁重的手工低模制作中解放出来。
- 几何损失 \(\mathcal{L}_{geo}\)衡量网络输出的顶点位置与真实低模的L2距离,保证“形状不跑偏”。
- 感知损失 \(\mathcal{L}_{per}\)把模型渲染成多视角图片,与人眼观看参考低模的渲染图对比,惩罚“看得出的差异”。
- 正则项 \(\mathcal{L}_{reg}\)约束网格拓扑合理性,防止出现穿插、破洞、孤立面等结构畸形。
- 加权系数 \(\alpha, \beta, \gamma\)三个损失项的比例权重,经验上感知损失通常占大头(\(\beta > \alpha\))。
视觉质量保持
LOD的敌人不是“面数少”,而是“穿帮”。就像沙盘做得再省,观众一低头发现面前的大楼缺了个角,那就是事故。视觉质量保持的核心,是建立一把“穿帮标尺”:什么样的简化误差在屏幕上会被观众的眼睛抓住,什么样的误差可以安全放行。
这把标尺最关键的单位是屏幕空间像素误差——简化造成的几何偏移,在最终渲染画面中占据多少个像素的偏差。偏移越大、相机越近、视野拉得越大,误差就越刺眼;反之,同一偏移量在距离20米的远景里可能不足一个像素,完全可以忽略。屏幕上小于1像素的偏差,人眼几乎无法察觉。这一直觉可写成:
有了这把标尺,AI生成的LOD就可以被自动化质检。质检流程还能做“重点保护”:轮廓边界的顶点误差权重提高一倍,因为人眼对剪影变化最敏感;平滑曲面可以放开手脚简化,因为光影渐变能掩盖瑕疵;纹理贴图则配合UV重烘焙,让简化后的模型依旧保留视觉上的细节丰富度。
- 几何偏移量 \(\delta\)简化后顶点相对原始表面的空间位移长度,是误差的源头。
- 相机距离 \(d\)顶点到相机的距离,越远则同一偏移在画面中显得越小。
- 视场角 \(\theta_{fov}\)相机的垂直视场角,广角镜头会放大近处物体的误差。
- 屏幕分辨率系数 \(\rho\)把世界空间的偏差换算成屏幕像素的缩放系数,由屏幕高度和像素密度决定。
- 保护性下限 \(\epsilon_{min}\)杜绝距离为零导致的除零异常,同时给数值稳定性留出余量。
动态LOD切换
沙盘做好了,观众在展台前缓缓走动。站在沙盘这头时,那栋地标建筑要展示雕刻级细节;当他踱步到另一头,同样的建筑在视野里只剩下拳头大小,此刻还渲染着上万面的精模,就是巨大的浪费。动态LOD切换正是那位经验老到的现场调度员——它每帧都会重新评估每个物体的距离、朝向、可见性,决定哪些该换成低模、哪些该升级回高模。
切换判定的第一依据是距离阈值:物体与相机距离超过某个档位的边界,就触发切换。但只比距离远远不够——如果物体在视野边缘即将移出,或已被更近的楼宇遮挡,立刻降到最低档也无人察觉。因此调度员还会协同视锥裁剪:视锥外的物体直接剔除,视锥内但在屏幕上的投影面积很小的物体,即使距离不远也可提前降档。
直接“啪”的一声换模型会引发画面跳变,专业术语叫“弹出”。解决方案是做连续过渡插值——在切换区间内,新旧两个模型的顶点按时间权重进行混合渲染:
过渡结束后,旧模型才被真正卸载。这套“无感换挡”机制让调度员可以大胆决策:距离阈值、投影面积、遮挡状态、帧率余量,全部纳入考量。玩家在场景中飞奔时,成千上万个物体在后台悄然换代,画面上却如行云流水,没有一丝卡顿或闪烁。
- 归一化进度 \(\tau\)过渡进度从0到1线性增长,0表示完全使用旧模型,1表示完全切换至新模型。
- 余弦变换 \(\cos(\pi \tau)\)通过余弦函数改变速度曲线,使过渡在起点和终点时缓慢、在中途最快。
- 平滑权重 \(w(\tau)\)当 \(\tau=0\) 时 \(w=0\),当 \(\tau=0.5\) 时 \(w=0.5\),当 \(\tau=1\) 时 \(w=1\),全程无突变。
性能优化实践
项目总监最终的KPI只有一个:让沙盘以最流畅的姿态呈现给每一位观众。LOD的优化收益,正是这条KPI的核心支柱。渲染管线中,三角形数量直接决定GPU的顶点着色压力,面数减半往往意味着渲染耗时近半。
动态LOD带来的降幅相当可观。一个100万三角形的城市级场景,启动LOD后同时渲染的面数可能骤降至20万。除了逐帧渲染,预计算与缓存同样关键:AI生成的多级LOD模型在资源导入阶段就计算完毕并序列化到磁盘,运行时按需加载,避免了首帧卡顿;热门的简化结果驻留内存缓存,镜头反复来回时无需重新计算。整体性能收益可用一个简洁的公式评估:
在一个复杂场景中,LOD通常能带来50%~80%的渲染耗时下降。更重要的是,它把帧率从“时高时低的过山车”变成了“稳稳压住60FPS的巡航”。沙盘的观赏体验因此脱胎换骨:观众只看到一片精致连贯的城市,而背后则是一场由AI调度、几何算法与感知科学共同完成的无声魔术。
- 全精模耗时 \(T_{full}\)场景中所有物体都用最高精度渲染时,一帧的GPU渲染时间。
- LOD后耗时 \(T_{LOD}\)应用动态LOD与视锥裁剪后,同机位同视角的一帧渲染时间。
- 耗时比 \(T_{LOD}/T_{full}\)LOD优化后剩余的渲染工作量比例。
- 收益百分比 \(R\)渲染耗时的节省率,通常伴随内存占用同步下降。
AI 应用场景
游戏引擎的自动化LOD管线
阶段:资产制作与预处理
解决的问题:传统管线中,美术师要为每个角色、道具手工制作2~5级LOD,一个AAA游戏包含上万份资产,人工成本极其高昂;且不同美术师制作的简化质量参差不齐,远处常出现“穿帮”。
具体案例:某游戏工作室在Unreal引擎中接入AI-LOD插件,美术师只需上传高模,AI自动生成LOD1~LOD3,并在预览窗口中实时显示切换效果。美术师只需审核和微调轮廓问题,单份资产的LOD制作周期从2天缩短到2小时。
数字孪生城市的大规模场景调度
阶段:运行时渲染调度
解决的问题:数字孪生城市包含百万级建筑体块,若全部加载精细模型,内存将耗尽且帧率跌至个位数;传统LOD依赖手工设定距离阈值,面对海量异构建筑极易漏配。
具体案例:某智慧城市平台使用AI预测每个建筑的“可感知简化程度”,在巡航飞行模式下动态切换LOD,配合视锥剔除,将同时渲染三角形数控制在30万以内,在普通笔记本上也能保持60FPS流畅浏览全景。
云游戏与元宇宙的端侧自适应
阶段:端侧自适应分发
解决的问题:云游戏与元宇宙需要把同一份虚拟场景推送到性能差异巨大的终端设备上——旗舰手机和入门电脑的渲染能力天差地别,统一使用一套LOD策略必然顾此失彼。
具体案例:云端服务器使用AI模型实时评估用户设备的GPU帧耗时,预测合适的LOD档位,并将对应精度的网格流送到端侧。低端设备自动获得更简的模型与轻量纹理,高端设备则享受满血画质,实现了“千人千面”的渲染体验。
Python 演示
import math class Vertex: def __init__(self, x, y, z): self.x = x self.y = y self.z = z def __repr__(self): return "({:.2f}, {:.2f}, {:.2f})".format(self.x, self.y, self.z) def build_sphere(n_lat=24, n_lon=32): """生成球体网格顶点, 模拟一个高模物体""" verts = [] for i in range(n_lat + 1): phi = math.pi * i / n_lat for j in range(n_lon): theta = 2 * math.pi * j / n_lon verts.append(Vertex( math.sin(phi) * math.cos(theta), math.cos(phi), math.sin(phi) * math.sin(theta), )) return verts def simplify_by_clustering(verts, cell_size): """顶点聚类简化: 空间格子内的顶点合并为一个平均点""" cells = {} for v in verts: key = (int(v.x / cell_size), int(v.y / cell_size), int(v.z / cell_size)) cells.setdefault(key, []).append(v) result = [] for bucket in cells.values(): avg_x = sum(v.x for v in bucket) / len(bucket) avg_y = sum(v.y for v in bucket) / len(bucket) avg_z = sum(v.z for v in bucket) / len(bucket) result.append(Vertex(avg_x, avg_y, avg_z)) return result def screen_space_error(verts, simplified, cam_dist, screen_h=1080.0): """估算简化网格相对原始网格的最大屏幕像素误差""" if not simplified: return float("inf") max_px = 0.0 fov_scale = screen_h / (2.0 * math.tan(math.radians(30.0))) for v in verts: nearest = min( simplified, key=lambda s: (s.x - v.x) ** 2 + (s.y - v.y) ** 2 + (s.z - v.z) ** 2, ) offset = math.sqrt( (nearest.x - v.x) ** 2 + (nearest.y - v.y) ** 2 + (nearest.z - v.z) ** 2 ) px = offset * fov_scale / max(cam_dist, 0.1) max_px = max(max_px, px) return max_px def pick_lod(original, lods, cam_dist, threshold=1.5): """AI决策: 保持像素误差不超阈值的最大简化版本""" chosen = lods[0] for candidate in lods[1:]: error = screen_space_error(original, candidate, cam_dist) if error <= threshold: chosen = candidate else: break return chosen if __name__ == "__main__": sphere = build_sphere() print("原始球体顶点数: {}".format(len(sphere))) lod_candidates = [ simplify_by_clustering(sphere, 0.30), simplify_by_clustering(sphere, 0.45), simplify_by_clustering(sphere, 0.70), ] print("候选LOD顶点数: {}".format([len(c) for c in lod_candidates])) for dist in [2.0, 5.0, 10.0, 20.0]: best = pick_lod(sphere, lod_candidates, dist) err = screen_space_error(sphere, best, dist) print("相机距离 {:5.1f} -> 选择 {:4d} 顶点, 屏幕误差 {:5.2f}px".format( dist, len(best), err))
def simplify_by_clustering(verts, cell_size):顶点聚类函数,把空间格子内的顶点合并为平均值,是几何简化最直观的实现。key = (int(v.x / cell_size), int(v.y / cell_size), int(v.z / cell_size))用格子坐标做字典键,将顶点分桶,cell_size 越大桶越粗、简化越猛。avg_x = sum(v.x for v in bucket) / len(bucket)取桶内所有顶点的平均位置作为代表点,这是聚类合并的核心操作。def screen_space_error(...)计算简化网格的最大屏幕像素误差,相当于那把“观众是否穿帮”的标尺。px = offset * fov_scale / max(cam_dist, 0.1)几何偏移经过视场角和距离换算成屏幕像素,距离越大误差越小。def pick_lod(...)AI决策函数:在候选列表中挑选满足阈值的最粗略版本,模拟“感知约束下的最大简化”。if error <= threshold: chosen = candidate else: break从精细到粗略逐个尝试,遇到超出阈值的版本立即停止,保证选择安全。for dist in [2.0, 5.0, 10.0, 20.0]:遍历四个典型相机距离,展示同一套LOD候选在不同距离下的最优选择变化。
常见误区
误区我一开始觉得LOD不就是远处换低模吗?那岂不是面数越少越厉害?最好所有远处物体都变成几个三角形,性能直接起飞。
正解LOD的本质是“视觉质量与渲染性能的平衡”,而不是无脑削减面数。如果简化过度,即使物体在远处,轮廓依然可能出现明显的抖动、棱角和“跳动感”。好的LOD必须保证简化误差低于人眼的感知阈值——正如沙盘远处的建筑虽简,但绝不能变成一团无法辨认的废土。缩减的每一分面数,都要用屏幕空间误差这把标尺量过,确保观众看不出来。
为何常见:初学者容易把LOD理解为“距离远就用低模”的口诀,忽略了质量底线。因为面数指标直观可见,而视觉质量的损失需要对比渲染画面才能感知。
误区有了AI自动生成LOD,美术师是不是要失业了?以后机器看一遍高模就能吐出所有低模,人工环节完全可以取消。
正解AI确实能大幅加速LOD生产,但远未到完全替代人类的程度。AI生成的简化结果在形状上可能合理,却会在拓扑结构、语义完整性(比如门把手和螺丝孔这类功能构件)上出问题;训练数据本身也依赖美术师的高质量标注。实践中的主流方案是“AI生成+人工抽检”,美术师转型为审核者和标准制定者。沙盘大师的审美判断力,依然是智能助手的上限来源。
为何常见:技术宣传爱用“颠覆”“取代”等字眼,导致AI能力被舆论高估。实际工程落地时,AI通常先服务于最繁琐的批量环节。
误区动态LOD切换不就是if距离大于某个数就换低模、小于某个数就换高模吗?一行判断的事,有什么复杂的。
正解真实游戏引擎中的LOD调度远比“二选一”复杂。除了距离,还要综合视锥外的剔除、屏幕投影面积、遮挡关系、当前帧率预算;更关键的是切换不能“啪”地跳变,需要做连续过渡插值来消除视觉弹出。整套机制如同沙盘现场调度员——他既要看观众站在哪,还要看沙盘上哪些建筑被挡住了、哪些建筑即将移出视线,再决定何时以何种方式悄悄换挡。
为何常见:从概念理解LOD很容易,但工程实现中的大量细节——特别是“切换不跳变”的要求——往往被初学者忽略。
误区LOD是给远处物体用的,在近处的模型精度那么关键,根本不应该做任何简化。
正解LOD的理念同样适用于近处物体。近处物体虽然要保持高模,但可以配合视锥裁剪剔除背面的不可见面、利用遮挡关系简化被挡住的局部结构;另外,画面边缘的低投影面积物体也可以提前降档。现代引擎甚至会用流送技术管理近处物体的贴图分辨率,本质上是同一思想的不同维度——按需分配渲染资源,而不是按距离一刀切。
为何常见:教科书上的LOD示意图几乎都以“远处模型变简”为例,让学习者误以为距离是唯一适用条件。
面试题
Q1. LOD的核心设计思想是什么?
- A.所有物体都用最高精度渲染
- B.根据距离动态调整物体细节← 正确答案
- C.把画面分辨率降至最低水平
- D.增加场景中光源的数量来优化
答案:B。LOD的核心是根据物体与相机的距离,动态选择不同精度的模型——正如城市沙盘远处用方块、近处雕花。A完全违背LOD初衷,C与LOD无直接关系,D是光源管理而非几何细节管理。
Q2. 以下哪项属于典型的几何简化算法?
- A.三角形边折叠算法← 正确答案
- B.快速排序算法
- C.随机梯度下降法
- D.卷积神经网络
答案:A。边折叠是经典几何简化方法,通过反复折叠代价最小的边减少三角形数量。快速排序是排序算法,梯度下降是优化方法,卷积网络是深度学习工具,都与几何网格简化无直接关系。
Q3. QEM二次误差度量主要衡量的是什么?
- A.顶点颜色的变化幅度
- B.顶点到原始平面距离← 正确答案
- C.显卡渲染管线的工作量
- D.纹理贴图的像素尺寸
答案:B。QEM计算的是折叠后顶点到所有相邻原平面的有符号距离平方和,偏差越小说明模型越贴近原始表面。颜色、渲染管线、纹理尺寸都不在QEM的度量范围内。
Q4. AI驱动LOD相比传统LOD的核心优势是什么?
- A.让美术团队彻底免除工作
- B.直接从最终画面生成低模
- C.学习感知上不可见的简化← 正确答案
- D.支持同时渲染更多的光源
答案:C。AI-LOD通过大量训练样本学习“哪些细节在人眼感知上可忽略”,从而自动生成高质量的简化版本。它并不免除美术审核,也不从渲染画面生成模型,更与光源数量无关。
Q5. 以下哪些指标可用于评估LOD的视觉质量?
- A.屏幕像素误差指标← 正确答案
- B.内存占用大小的数值
- C.轮廓特征保持的程度← 正确答案
- D.CPU主频频率的高低
答案:AC。屏幕像素误差直接量化简化偏差在画面中的可见程度,轮廓特征保持则关注人眼最敏感的剪影变化。内存占用是资源指标而非视觉指标,CPU主频更是与视觉质量完全无关。
Q6. 动态LOD切换中的“弹出”问题指的是什么?
- A.画面帧率突然向下掉
- B.切换瞬间模型突兀变化← 正确答案
- C.纹理颜色出现明显失真
- D.阴影渲染出现整块缺失
答案:B。当模型从一个LOD档位瞬间切换到另一个档位时,顶点数量和形状突变会在画面上表现为明显的“跳动”或“弹出”。这正是连续过渡插值要解决的问题。
Q7. 顶点聚类算法的核心步骤是什么?
- A.将顶点按照颜色值做聚类
- B.空间划分格子并合并顶点← 正确答案
- C.把网格整体转换为点云
- D.依据顶点权重值做排序
答案:B。顶点聚类把三维空间划分为均匀格子,每个格子内的顶点合并为一个代表点,格子越粗简化越多。它是按空间位置聚类,与颜色无关;也不是点云转换,更没有做权重排序。
Q8. 以下哪些属于LOD性能优化的常用策略?
- A.预计算LOD模型并做缓存← 正确答案
- B.与视锥裁剪协同剔除物体← 正确答案
- C.提高显示器的刷新频率
- D.增量加载渐次载入低模数据← 正确答案
答案:ABD。预计算缓存可以避免运行时重复生成LOD,视锥裁剪剔除视野外物体,增量加载分批载入场景数据,都能显著降低渲染压力。显示器刷新频率属于硬件层面,与LOD优化策略无关。
Q9. 屏幕空间误差公式中,影响误差大小的是哪些因素?
- A.几何偏移和相机距离← 正确答案
- B.物体表面颜色和纹理
- C.光照方向与阴影长度
- D.网络延迟与带宽波动
答案:A。屏幕空间误差 = 几何偏移在屏幕上的投影像素大小,偏移越大误差越大,相机越远误差越小;视场角影响缩放系数。颜色、光照、网络都与几何偏差在屏幕上的可见程度无关。
Q10. 训练AI自动LOD生成网络时,训练数据通常采用什么?
- A.大量人工标注的图片集
- B.成对的高低模网格数据← 正确答案
- C.游戏实机录制的视频帧
- D.自然语言的文本描述
答案:B。AI-LOD需要学习“从高模到低模”的结构映射,因此训练数据是成对的高模网格和对应低模网格,低模可由QEM算法自动生成或美术师手工制作。图片、视频、文本都不包含所需的几何拓扑对应关系。