HOME / 第 5 部分 · 3D 游戏开发 / 第 57 课
MODULE 5 · 3D 游戏开发

第 57 课 · 3D 性能优化基础

⏱ 预计时长 35 分钟📊 难度 进阶📚 模块 第 5 部分 · 3D 游戏开发

🎯 本课学习目标

3D 游戏卡顿多为性能问题。本课学会找出瓶颈并优化。

📖 详细教学步骤

性能监视器调试

运行游戏时打开性能监视器:

  • 菜单 调试 → 性能监视器(Debug → Monitors) 或编辑器底部「性能」标签
  • 关注:FPS(帧率)、Draw Calls(绘制调用)、Polygons(多边形)、Physics Frames(物理帧)
  • Draw Calls 高 = 渲染压力大

减少绘制调用:合并网格优化

  • 几百个小物体逐个渲染 = 高 Draw Calls
  • 把静态物体合并成一个大网格:Mesh → 合并网格实例(MultiMesh)
  • 或用 MultiMeshInstance3D 批量渲染相同物体(草、石头)

💡 相同形状大量复制(草地、树木)用 MultiMesh 效率暴涨。

遮挡剔除(Occlusion Culling)优化

  • 看不到的物体不该被渲染
  • Godot 自动做视锥剔除(视野外的不渲染)
  • 复杂场景可加遮挡剔除:OccluderInstance3D 挡住视线的区域不渲染
  • 文件 → 快速遮挡剔除烘焙

LOD 细节层次优化

远处物体用低模,近处用高模(LOD):

  1. 给 MeshInstance3D 设置 LOD:添加多个精度等级
  2. 或简单做法:远处隐藏细节物体
  3. 模型导入时 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 减渲染 → 材质光照节制。