1.物体的清理

scene.remove(cube)
cube.geometry.dispose()
cube.matertial.diapose()

不销毁模型和材质只是单纯的remove的话还是会内存泄漏的.
2.减少灯光,灯光尽量就用平行光、环境和半球,灯光位置移动会影响性能。
3.阴影比较吃内存,可以用直接烘焙的方式比较方便。
使用辅助器对灯光和阴影进行调整

directionalLight.shadow.camera.top = 3
directionalLight.shadow.camera.right = 6
directionalLight.shadow.camera.left - - 6
directionalLight.shadow.camera.bottom = - 3
directionalLight.shadow .camera.far = 10
directionalLight.shadow.mapSize.set (10241024)

const cameraHelper = new THREE.CameraHelper(directionalLight.shadow.camera)scene.add(cameraHelper)

4.优化物体阴影的接受和投射,不需要接受阴影的物体就不要设置castShawdow,或者设置false;
如果物体的阴影不用实时更新,可以在光源改变时单独添加更新,不用放在tick()内

renderer.shadowMap.needsUpdate = true

5.render优化像素,兼容高像素高分辨率的设备

renderer.setPixelRatio(Math.min(window.devicePixelRatio,2))

6.优化shader如果有大量的shader导致很卡的话可以降低shader的质量

precision:'lowp'

在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐