【发布时间】:2012-02-15 21:42:30
【问题描述】:
我刚刚开始使用 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轴,从逻辑上讲,这不是必需的。
【问题讨论】: