这可能是一个非常基本的问题,但我还没有找到解决方案,它一直在窃听我。我想在Maya中显示箭头,指示相机右下角的世界坐标方向(x,y,z),这样当在相机周围旋转相机或移动场景时,你仍然可以识别世界坐标的方向。我试图用两种不同的方法来实现这一点,至今都没有成功。Three.js:在场景的角落显示世界坐标轴
我有一个使用THREE.ArrowHelper
类的三个箭头的对象,我们暂且称它为XYZ
。第一种方法是让XYZ
成为场景的一个孩子,并为其提供一个根据相机当前位置计算的位置加上相机指向和偏移的位置,以便它在我希望的角落出现而不是在屏幕的中心。我几乎得到了这个工作,因为在箭头中保持正确的旋转,但是位置有点滑稽,我停止沿着这条路线前进,因为当移动相机时它真的很“紧张”。我不确定这是一个性能问题还是其他问题。
第二种方法是将XYZ
作为摄像机的一个孩子与本地位置偏移,然后颠倒摄像机的旋转,并将反向旋转应用到XYZ
,以便它匹配世界坐标。我似乎很接近使用这种方法,但我可以得到正确的位置,或旋转正确,而不是两个。
我目前使用的代码XYZ.matrix.extractRotation(camera.matrixWorldInverse);
为我提供了正确的方向XYZ
,但它的定位是关闭的。如果我使用XYZ.matrixWorld.extractRotation(camera.matrixWorldInverse);
,那么位置保持不变(连接到相机),但方向不会改变。
如果任何人有一个快速破解得到这个工作,将不胜感激。如果你有一个更好的方法,比我正在追求的方法,那也是有帮助的。 (https://googledrive.com/host/0B45QP71QXoR0Mm9Mbkp3WGI1Qkk/)我在谷歌驱动器中存储我的代码,但本地使用wamp和别名工作,这意味着我所做的任何更改只要谷歌驱动器同步,本地即可在线反映。 I.E.当你看一看它可能会被打破。
错过了链接莫名其妙。我会研究这种方法并回复你。不过,我想知道如果添加第二个摄像头会降低性能超过让我的方法之一以上的工作? – wackozacko 2013-04-26 10:39:27
它的工作原理!不得不删除线'camera2.position.sub(controls.target);'作为OribtControls.js不保持目标位置,但在其他的解决方案是几乎相同的。 – wackozacko 2013-04-26 11:34:34
不要删除该行。使用r.58中的'controls.center'。 – WestLangley 2013-04-26 14:37:04