当我在屏幕上平移场景时,应该如何设置OrbitControls
以使场景逐渐变得停顿,而不是像this website那样瞬间停下来?
这是我的代码。
controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.mouseButtons = {
ORBIT: THREE.MOUSE.RIGHT,
ZOOM: THREE.MOUSE.MIDDLE,
PAN: THREE.MOUSE.LEFT
};
controls.enableDamping = true;
controls.dampingFactor = 0.25;
controls.screenSpacePanning = false;
const direction = new THREE.Vector3();
camera.getWorldDirection(direction);
camera.getWorldPosition(controls.target);
controls.target.addScaledVector(direction, 50);
谢谢!
答案 0 :(得分:0)
使用您的代码时,我可以在计算机上看到阻尼,请参阅https://jsfiddle.net/p2kgvxoc/。您可能希望将public class MyEndpointConfig implements ServerApplicationConfig {
@Override
public Set<ServerEndpointConfig> getEndpointConfigs(Set<Class<? extends Endpoint>> set) {
return new HashSet<ServerEndpointConfig>() {
{
add(ServerEndpointConfig.Builder
.create(MyEndpoint.class, "/websocket")
.build());
}
};
}
...
设置为较低的值,以使阻尼效果更加明显。另外,请确保使用活动的渲染循环。