2

我正在尝试将 Go Pro 陀螺仪数据转换为 Three.js 坐标,以便我可以将素材投影到球体内部,旋转球体并进行 3D 稳定。

在此处输入图像描述

相机是这样定位的,坐标的顺序是Z,X,Y

我正在尝试应用这个向量来旋转球体,就像这样

    this._nextVec3.set(this._next[0],this._next[1],this._next[2])
    this.el.object3D.rotation.setFromVector3(this._nextVec3) 

但我无法让旋转与相机的旋转相匹配,我认为这与左/右手配置有关?

任何人都可以帮忙吗?

4

1 回答 1

5

首先,确保您指定了正确的rotation.order属性。既然你说是ZXY,那应该是个简单的

this.el.object3D.rotation.order = "ZXY";

其次,查看 Three.js 轴,取自编辑器

在此处输入图像描述

如您所见,WebGL 轴与 GoPro 不同。我认为你必须翻转 X 轴,并交换 Z 和 Y。所以可能是这样的:

let xRot = this._next[0];
let yRot = this._next[1];
let zRot = this._next[2];
this.el.object3D.rotation.set(-xRot, zRot, yRot); 
于 2020-10-20T05:22:44.020 回答