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 (1024,1024)
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'