在three.js的r.72dev分支中添加了阻尼特性。
这可以让旋转更加平滑流畅。
它是否还能为缩放启用阻尼(惯性)呢?
controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.enableDamping = true;
controls.dampingFactor = 0.25;
在three.js的r.72dev分支中添加了阻尼特性。
这可以让旋转更加平滑流畅。
它是否还能为缩放启用阻尼(惯性)呢?
controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.enableDamping = true;
controls.dampingFactor = 0.25;
three.js r73
的OrbitControls
添加了缩放阻尼,请查看此演示:
使用的是three.js r107,但OrbitControls仍然是r73版本: http://jsfiddle.net/y62d4qnr/
使用方法与默认的Orbit Controls一样,您可以尝试调整这些设置以自定义它:
controls.constraint.smoothZoom = true;
controls.constraint.zoomDampingFactor = 0.2;
controls.constraint.smoothZoomSpeed = 5.0;
缺点: 仅适用于鼠标滚轮,不支持触摸缩放或中键。我想它可以扩展,但到目前为止我并没有太在意。欢迎提出建议。为了给您一个快速的概述,我进行了以下修改:
在OrbitContraint()
中:
需要缩放的一堆变量,
添加函数:this.smoothZoomUpdate = function () { /* ... */ };
并在OrbitConstraint.update()
函数内调用它:
this.update = function () {
//...
this.smoothZoomUpdate ();
//...
}
同时在THREE.OrbitControls()
中修改了函数onMouseWheel() { /* ... */ }
TrackballControls
如何实现它。 - Mouloud85