HOME / 第 5 部分 · 3D 游戏开发 / 第 57 课
MODULE 5 · 3D 游戏开发
第 57 课 · 3D 性能优化基础
🎯 本课学习目标
- 理解 3D 性能瓶颈
- 掌握遮挡剔除、LOD、合批
- 学会看性能监视器
3D 游戏卡顿多为性能问题。本课学会找出瓶颈并优化。
📖 详细教学步骤
性能监视器调试
运行游戏时打开性能监视器:
- 菜单 调试 → 性能监视器(Debug → Monitors) 或编辑器底部「性能」标签
- 关注:FPS(帧率)、Draw Calls(绘制调用)、Polygons(多边形)、Physics Frames(物理帧)
- Draw Calls 高 = 渲染压力大
减少绘制调用:合并网格优化
- 几百个小物体逐个渲染 = 高 Draw Calls
- 把静态物体合并成一个大网格:Mesh → 合并网格实例(MultiMesh)
- 或用
MultiMeshInstance3D批量渲染相同物体(草、石头)
💡 相同形状大量复制(草地、树木)用 MultiMesh 效率暴涨。
遮挡剔除(Occlusion Culling)优化
- 看不到的物体不该被渲染
- Godot 自动做视锥剔除(视野外的不渲染)
- 复杂场景可加遮挡剔除:
OccluderInstance3D挡住视线的区域不渲染 - 文件 → 快速遮挡剔除烘焙
LOD 细节层次优化
远处物体用低模,近处用高模(LOD):
- 给 MeshInstance3D 设置 LOD:添加多个精度等级
- 或简单做法:远处隐藏细节物体
- 模型导入时 Godot 可自动生成 LOD
材质与光照优化优化
- 少用透明材质(Render 顺序压力大)
- 少开阴影:远处灯光关阴影
- 粒子数量别过量(几千个会很卡)
- 纹理用合适的压缩格式
项目设置关键项优化
项目设置 → Rendering:
- Viewport 分辨率缩放(低端机 0.75 分辨率提升帧率)
- Shadows 阴影分辨率调低
- 反锯齿(MSAA)按显卡调整
⚠️
优化后画面变差了?
性能与画质是平衡。先测出真正瓶颈再针对性优化,别盲目全降。
⚠️
FPS 低但不知道哪的问题?
看性能监视器:Draw Calls 高 → 合批;Polygons 高 → 降模;GPU 时间高 → 减特效。
🧪 动手试一试
🏋️ 课后练习
搭一个 100 棵树的草地场景,先用 100 个 MeshInstance3D(看 FPS),再用 MultiMesh 批量渲染(对比 FPS)。
MultiMeshInstance3D + MultiMesh 设置 transform 数组,一帧画 100 棵。
💡
优化顺序:先量(监视器)→ 后改 → 再量。别凭感觉瞎改。
💡
移动端优化优先:减阴影、减分辨率、减粒子。
🎓 本课小结
3D 优化:性能监视器定位瓶颈 → 合并网格/MultiMesh 减 Draw Calls → 遮挡剔除 + LOD 减渲染 → 材质光照节制。