opengl-es - opengl ARcore: 如何围绕它的Y 轴旋转对象?

139 2

我想知道如何围绕它的Y 轴旋转对象。

例如, 我想围绕它的Y轴以角度α旋转谷歌样本应用程序 hello_ar_java https://github.com/google-ar/arcore-android-sdk/tree/master/samples/hello_ar_java droid bot 。

时间:

58 0

刚刚以更简单的方式工作,虽然这不能正确处理帧速率增量,但它可能是一个有用的启动器。 在扩展AnchorNode的类中,我在类中定义了新的node,因此它的可用性如下所示:


private Node myNode = null;



然后重写 onUpdate,如下所示:


@Override


public void onUpdate(FrameTime frameTime) {


 super.onUpdate(frameTime);


 if (myNode!=null){


 Quaternion q1 = myNode.getLocalRotation();


 Quaternion q2 = Quaternion.axisAngle(new Vector3(0, 1f, 0f),. 2f);


 myNode.setLocalRotation(Quaternion.multiply(q1, q2));


 }


}



原作者:
113 2

我最近必须做类似的事情。 在绘制器方法的对象绘制中,可以添加:


 Matrix.translateM(mModelMatrix, 0, x, y, z);


 Matrix.rotateM(mModelMatrix, 0, rotationAngle, 0f, 1f, 0f);


 Matrix.translateM(mModelMatrix, 0, -x, -y, -z);



63 4

这不是一个ARCore问题,而是一个 OpenGL ES问题。 但是为了实现你想要的,你必须在 ObjectRenderer.updateModelMatrix(float [] modelMatrix, float scaleFactor) 中添加旋转到模型矩阵。 比如, 在这里解释了如何做旋转: http://www.learnopengles.com/tag/rotation/

...