Three.js相机旋转很奇怪

时间:2012-01-21 20:29:18

标签: camera rotation three.js

我刚开始使用Three.js。就像刚才一样。

玩了一个小时左右,并构建了一个工具,帮助我了解不同元素如何协同工作(相机,光线,物体),我发现了一些奇怪的东西。

工具:http://hotblocks.nl/tests/three/cubes.html

这是当前的默认设置:

  • 相机位于210上方
  • 500向后和
  • 246在右边
  • 相机稍微向左旋转
  • 光线直接位于上方并向各个方向照射

如您所见,对象位于视口的最底部。所以我想把相机向下转,所以我可以看到更多相机。

尝试:转动camera.rotation.x

这有效,但旋转角度是错误的!而不是相机旋转,它是绕Z轴旋转的世界。

那不对,是吗?

Y轴也是错误的。它围绕Y轴旋转世界。

围绕Z轴旋转相机,效果很好:相机旋转,而不是世界。

我做错了吗?或者理解错了?

PS 由于相机旋转仅围绕其Y轴,因此对象的垂直边缘也应在结果中垂直。在默认设置中,它们是。围绕X轴旋转相机不应该改变它,但确实如此。只绕其Z轴旋转应该改变它(它确实)。我错了吗?

PPS 我知道Camera.lookAt( THREE.Vector3 target ),但这会改变相机的旋转,包括其Z轴,这在逻辑上是不必要的。

1 个答案:

答案 0 :(得分:5)

在Github上收到的答复:https://github.com/mrdoob/three.js/issues/1163