我正在使用 Three.JS 和 Collada loader 制作建筑物的 3D 模型。
我正在改进我的系统交互性,但我有两个主要问题:
1-当我在场景中旋转模型时,它会在 3 轴上旋转并使其倒置!我想将模型固定在水平轴上,并且只沿 Y 轴(向上)旋转它。
现场示例我如何才能仅围绕 Y 轴(向上)旋转这个立方体?
2-如何使用鼠标移动对系统进行平滑控制?例如在大模型中,平滑缩放到特定的小对象并不容易。如何配置相机以平滑缩放、平移和旋转?
谢谢
我正在使用 Three.JS 和 Collada loader 制作建筑物的 3D 模型。
我正在改进我的系统交互性,但我有两个主要问题:
1-当我在场景中旋转模型时,它会在 3 轴上旋转并使其倒置!我想将模型固定在水平轴上,并且只沿 Y 轴(向上)旋转它。
现场示例我如何才能仅围绕 Y 轴(向上)旋转这个立方体?
2-如何使用鼠标移动对系统进行平滑控制?例如在大模型中,平滑缩放到特定的小对象并不容易。如何配置相机以平滑缩放、平移和旋转?
谢谢
在您的脚本中添加以下内容:
controls.getMouseProjectionOnBall2 = controls.getMouseProjectionOnBall;
controls.getMouseProjectionOnBall = function(x, y){
return controls.getMouseProjectionOnBall2.call(controls, x, controls.screen.height/2);
}
关于生涩的动作,我看到您已经在尽一切可能(通常人们忽略了 requestAnimationFrame)。我认为除了降低建筑物的复杂性之外,您无法做任何事情来减少抖动。
您没有旋转模型。您正在旋转相机。
使用OrbitControls
而不是TrackballControls
- 它将保持相机正面朝上。
OrbitControls
应该是光滑的。如果不是,那么您的模型可能有问题。这只能根据具体情况来处理。
您正在使用一年前的库版本。更新到当前版本是明智的。
三.js r.57。