← 全部概念
3D 与渲染 / 03
细节层次(LOD)
远处使用更简单的网格
交互演示
交互演示 · 移动指针或点击画面,观察变化
细节层次(LOD)会在模型远离镜头时,将它替换为更简单的版本。远处物体只占少量像素,完整网格中多出来的三角形看不出效果,只会消耗 GPU 时间。示例中的石块每跨过一条距离分界线,三角形数量就会从 1280 减少到 80,再减少到 20。
适用场景
当高精度网格在屏幕上变得很小时,使用 LOD。最佳切换阈值取决于投影尺寸、镜头视野角度,以及需要保留的轮廓。
实现示例
不依赖特定引擎的伪代码。请根据你使用的引擎调整函数和坐标约定。
if distance > farThreshold + margin: level = LOW
else if distance < farThreshold - margin: level = MEDIUM
setVisibleMesh(level)常见错误
隐藏的高精度网格不应继续执行开销较大的动画或 CPU 更新。也要检查阴影和切换过渡:如果简化网格的轮廓差异太大,切换时会出现明显跳变。
延伸阅读
Three.js 手册 ↗内容原作 Nicolas Zullo · 中文整理与交互改编