1

我正在使用 Three.JS 和 Collada loader 制作建筑物的 3D 模型。

我正在改进我的系统交互性,但我有两个主要问题:

1-当我在场景中旋转模型时,它会在 3 轴上旋转并使其倒置!我想将模型固定在水平轴上,并且只沿 Y 轴(向上)旋转它。

现场示例我如何才能仅围绕 Y 轴(向上)旋转这个立方体?

2-如何使用鼠标移动对系统进行平滑控制?例如在大模型中,平滑缩放到特定的小对象并不容易。如何配置相机以平滑缩放、平移和旋转?

谢谢

4

2 回答 2

1

在您的脚本中添加以下内容:

controls.getMouseProjectionOnBall2 = controls.getMouseProjectionOnBall;
controls.getMouseProjectionOnBall = function(x, y){
    return controls.getMouseProjectionOnBall2.call(controls, x, controls.screen.height/2);
}

关于生涩的动作,我看到您已经在尽一切可能(通常人们忽略了 requestAnimationFrame)。我认为除了降低建筑物的复杂性之外,您无法做任何事情来减少抖动。

于 2013-03-19T04:15:36.563 回答
1

您没有旋转模型。您正在旋转相机。

使用OrbitControls而不是TrackballControls- 它将保持相机正面朝上。

OrbitControls应该是光滑的。如果不是,那么您的模型可能有问题。这只能根据具体情况来处理。

您正在使用一年前的库版本。更新到当前版本是明智的。

三.js r.57。

于 2013-03-19T04:59:51.390 回答