去掉图片大小检测的warnning
texture.minFilter = THREE.LinearFilter;
释放内存
componentWillUnmount 时,要 cancelAnimationFrame;
另外也最好 dispose 掉 scene 下所有子组件的 geometry 和 material
cancelAnimationFrame(this.id);// Stop the animation this.renderer.domElement.addEventListener('dblclick', null, false); //remove listener to render this.scene = null; this.projector = null; this.camera = null; this.controls = null; empty(this.modelContainer);
再看 animate
function animate() {
requestAnimationFrame( animate );
renderer.render( scene, camera );
}
animate();
以前理解在threejs中必须要每帧不断render才有图像,其实是不对的。也可以只renderer.render( scene, camera );
一次,那么就是一张静止的图像,OrbitControls 下任何交互(缩放、旋转等)都不生效。
position 与 lookAt
两者都是Object3D的基本属性和方法 lookAt 把物体旋转到面向指定的位置
position设置camera的位置,lookAt设置它的朝向 lookAt 并非camera所特有的
点光
点光不能渲染阴影是因为点光会从各个方向发射光线,消耗性能太大。