我正在使用Three.JS和Collada装载机开发建筑物的3D模型。
我正在改善我的系统交互性,但我有两个主要问题:
1-当我在场景中旋转模型时,它会在3轴上旋转并使其上下颠倒!我想保持模型在水平轴上固定,只沿Y轴(向上)旋转。
A live sample如何围绕Y轴(向上)旋转此立方体?
2 - 如何使用鼠标移动对系统进行平滑控制?例如,在大型模型中,平滑地缩放到特定的小物体并不容易。如何配置相机进行平滑变焦,平移和旋转?
由于
答案 0 :(得分:1)
在脚本中添加以下内容:
controls.getMouseProjectionOnBall2 = controls.getMouseProjectionOnBall;
controls.getMouseProjectionOnBall = function(x, y){
return controls.getMouseProjectionOnBall2.call(controls, x, controls.screen.height/2);
}
关于生涩的动作,我看到你已经做了所有可能的事情(通常人们省略requestAnimationFrame)。除了降低建筑的复杂性之外,我认为除了减少混乱之外,你还有什么可以做的。
答案 1 :(得分:1)
您没有旋转模型。你正在旋转相机。
使用OrbitControls
代替TrackballControls
- 它会使相机正面朝上。
OrbitControls
应该是顺利的。如果不是,那么您的模型可能有问题。这只能根据具体情况处理。
您使用的是一年前的图书馆版本。更新到当前版本是明智的。
three.js r.57。