AI生成的3D模型可以快速地将您从空白场景带到可识别的道具、建筑或生物。它们也可以带着密集的地形、零碎的材料、超大小的纹理、无名的节点或几何图形到达,这些几何图形在转盘中看起来无害,但在游戏关卡重复时变得昂贵。
因此,优化在生产结束时不是一个按钮。它是一个序列:定义资产必须做什么,在代表性场景中测量,清除浪费,简化相机无法奖励的东西,压缩交付文件,并在真实设备上再次测试。
目标不是最小的可能文件。 目标是一个可靠资产, 可以快速加载, 在场景预算范围内进行, 仍然容易调试, 并且仍然可以沟通预定的 silhouette 和 material 语言。
快速阅读
核心要点
- 设置完整场景背景下的资产预算, 而不是孤立地从多边形计数中选择。
- 在应用压缩前,先修复重复的几何,隐藏的表面,过多的材料,变形,以及纹理浪费。
- 几何压缩可以减少传输大小,但并不能消除绘制过于复杂的网状元件的运行时间成本。
- 保留一个可编辑源模型,并导出一个单独的交付GLB,可以验证,测量,安全替换。
在优化前定义浏览器- Ready
从资产的工作开始。 近镜头看到的英雄人物需要从背景岩石上重复50次的不同几何和纹理处理。 静态地标比起皮肤上的敌人, 其顶点必须被改变, 更能忍受复杂的淤泥。
在触摸网格之前写一个小的验收表。 仅使用区域作为项目专用的守护栏, 然后在配置后加以精细。 这样可以防止团队将任意三角计数作为质量的通用定义来对待。
| 预算领域 | 回答问题 | 须记录的证据 |
|---|---|---|
| 视觉角色 | 相机能接近多少,什么必须保持可读性? | 近、典型和远距离的参考截图 |
| 场景密度 | 一次出现多少份或类似的资产? | 代表最坏情况 |
| 渲染 | 有多少个网格和材料通行证,一个实例会增加多少? | 绘制调用和渲染器统计 |
| 内存 | 目标设备上的解码纹理和几何尺寸有多大? | 纹理尺寸、格式和装置内存观测 |
| 交付 | 在玩家互动之前, 需要下载什么? | GLB 尺寸、纹理有效载荷和装载跟踪 |
在真实场景中测量原始模型
切勿仅从模型视图端口优化。 将未触动的资产导入游戏使用的相同的渲染器、照明装置、相机范围、以及物体密度。 单靠模型本身表现良好,仍可能使场景拥挤,超出预算。
记录一个基线:文件大小、网格和原始的计数、材料计数、纹理计数和维度、动画剪辑和可见渲染统计。 三.j通过渲染器信息暴露出绘图调用、三角形、点、线、几何和纹理;即使不解释每个设备级别的成本,这些值也可用于比较修改。
将两到三个截图和数字并列。 性能测量可以显示变化, 配对图像可以显示变化是否损坏了硅、 阴影、 紫外线接合或可识别的特性。
- 测试一份副本和预期的可见副本最大数量。
- 包括动画,透明,阴影,以及制作中使用的后处理。
- 使用至少一个低功率的目标设备,而不是只依靠一台开发笔记本电脑。
- 保持基线GLB,以便以后的回归可以复制。
清洁几何和场景等级
生成的模型往往包含与仓促组装的手工资产相同的结构废物:隐藏在模型内的松散块、重复的表面、微小的断开组件、空节点、未应用的变换以及比形状更密集的地形。 在毁灭之前消除这些废物,简化器有更清洁的问题需要解决。
保护带有身份特征的特征。对于建筑物来说,这些特征可能是屋顶、门道和窗体节奏。对于生物来说,它们可能是头部、手或附属形状。 保持平面的屏幕区域通常比横跨天空的轮廓损失更多的几何形状。
如果资产动画,则在每次大减后验证变形。网格可以保持固定姿势,在肩部、膝盖、手指或面部关节上仍然会崩溃。保留关节周围的额外支持,测试实际动画片段,而不仅仅是旋转预览。
减少绘图调用而不点燃艺术方向
浏览器场景往往受到渲染器必须提交的多个独立的片段的限制,而不仅仅是三角形的数量。 十种有十种材料的微小的网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网状网
将静态部件合并, 当它们总是移动在一起时, 通过沉淀来重新使用相同的几何图形, 并合并共享同一阴影模型的材料。 删除不再影响可见面的材料槽。 这些变化应该遵循场景行为: 如果游戏必须独立打开, 请不要将一个门合并到一个建筑中。
材料还原也是艺术决定。 将每个表面合并为一个地图集可以保存提交文件,但会使作者、 mip行为或未来变体更加难。 当它们传达真正的渲染需要时,例如透明玻璃或发射信号,保持单独的通行证,并删除仅仅因为生成的文件是零散的而存在的分离。
将纹理作为运行时的预算, 而不仅仅是图像文件
压缩图像在磁盘上可以看起来很小,在解码后仍然占据大量的GPU内存。 审计像素尺寸,通道使用,α,色彩空间,纹理实际覆盖的屏幕区域有多少,背景道具很少从与特写字符相同的分辨率中获益。
将纹理大小调整到目标相机最有用的详细级别。 包装兼容的灰色比例通道, 删除未使用的地图, 当材料完全不透明时避免α, 并在可重复的情况下重复使用可重用瓦片的材料。 对于道具的家族来说, 共享的地图集或材料库可以提高一致性和分批性。
KTX2/ Basis 纹理送出可以在您的管道和目标浏览器支持时降低网络和GPU的成本。 将转换作为视觉QA步骤:在批准结果前,在游戏播放距离上比较梯度,正常细节,透明边缘和颜色变化。
在视觉QA之后压缩 GLB 交付
一旦几何,层次,材料,纹理都是有意的,应用送行压缩。 Three.js GLTFLoader支持常见的glTF路径,包括Draco压缩几何,Meshopt压缩的meses,以及配置对应解码器时的KTX2纹理。
根据满载体验选择压缩。 较小的下载需要解码码和CPU时间, 因此比较时间与第一个有用的框架, 而不是单独庆祝文件大小。 网格简化和几何压缩解决了不同的问题: 简化会减少GPU处理的内容, 而压缩会主要减少这些数据的行程和存储方式。
glTF Transform提供检查,验证,调试,prune,简化,调整大小,纹理转换,压缩命令。 它的文档还警告说,默认优化的通过对于每个场景来说并不理想,这就是为什么生产预设应该被版本和审查而不是盲目应用的原因。
目标浏览器和设备验证
运行 glTF 验证通过, 然后通过游戏所用的相同生产路径加载送货资产。 请检查控制台警告, 缺少纹理, 翻转正常, 动画损坏, 色彩空间差异, 透明排序, 玩家离开现场时处理。
配置每个支持的性能级别上的代表性级别。 注意稳定的帧体验, 但也检查加载暂停、 重复的场景变化后的内存增长、 以及多个模型一起出现时的悬念。 正确的结果是, 版本可以满足您的项目目标, 而不明显丧失视觉。
完成替换测试: 将资产换成新的修订,而不改变游戏游戏代码。 可预测的节点名称、小点、尺度、物质惯例和碰撞代理使得未来的AI生成的变体更不费钱整合。
- 将可编辑的高细节源保存在已运出捆绑之外。
- 使用资产版本导出和优化设置。
- 比较基线和游戏播放相机距离的优化截图。
- 如果一个较小的文件导致可见的文物或较慢的首次交互,则拒绝它。
- 将核准的交付模式作为下一个资产家族的模板。
常见问题
浏览器游戏模型的最佳多边形算什么?
数据没有通用,因为成本取决于场景密度、材料、动画、阴影和目标设备。 从具有代表性的场景设定项目预算,并根据背景衡量每项资产。
Draco压缩是否提高了帧率?
Draco主要减少几何传输大小,可以提高下载成本,它不会取代网目简化,也不会在模型解码后减少绘图呼叫次数。
每个AI生成的模型是否应该转换成GLB?
GLB 是支持 glTF 的浏览器运行时间的方便的发送容器, 但选择仍然取决于您的引擎和管道。 将可编辑源格式分开, 以便所运出的文件不会成为生产主机。
我首先应该优化什么:多边形或纹理?
在选择前同时测量。在一些场景中,纹理记忆和物质计数占主导地位,而在另一些场景中,皮肤几何、阴影或重复的网状体则产生更大的成本。
我能把每个网状的网状都合并成一个物体吗?
仅合并那些共享动作,能见度和物质需要的部件。 门,武器,可毁灭的部件和动画组件往往需要保持独立才能进行游戏。
我该如何保存生成的3D模型的风格?
识别在简化前可以识别模型的形状、比例、颜色块和材料提示。比较实际游戏播放相机的修改,而不是只判断特写渲染。
压缩的纹理看起来总是更糟糕吗?
否,但每一种格式和质量设置都会产生不同的权衡。在批准转换前,先审查正常、梯度、透明度以及目标设备上小幅高争议细节。
我该怎么测试一个最优化的模型?
装入最坏情况代表场景, 并比较发送大小, 渲染统计、 内存行为和视觉输出与基线。 在您支持范围内至少一个低功率设备上重复测试。
资料来源与延伸阅读
- 3.js GLTF 记录器文档
支持glTF扩展和解码器集成,包括Draco,Meshopt,以及KTX2路径。
- 3.js WebGLRender 文档
调用、三角形、点、线、几何和纹理的渲染器信息域。
- glTF 变形 CLI 文档
检查,验证,查核,简化,纹理处理,以及glTF资产压缩命令。
下一步

