[英]Place 2D Bitmap on ARCore anchor Android openGL ES 2.0
如何将2D位图放置在始终面对用户(相机)的ARCore锚位置上? 我想在用户点击的位置放置一个标记。
您是否需要将模型,视图,投影矩阵相乘才能实现这一目标?
目前,我尝试使用andy_shadow.obj来显示位图,因为它是平面3D对象。 但是我无法使其面对用户(旋转)并将其放置在用户点击的位置。
Matrix.rotateM(mModelMatrix, 0, 90.0f, 1.0f, 0.0f, 0.0f);
这样可以旋转对象使其面向相机,但是当您左右旋转45度并放置新的对象时,由于它与帧的起始位置成90度,因此它将看起来很平坦。
也许可以在openGL的屏幕UI上放置2D对象?
您要问两个问题。 首先,如何旋转对象以始终看着相机。
通过使用框架的旋转与锚点的旋转,我能够做到这一点。 在HelloArActivity.onDrawFrame()中更改
planeAttachment.getPose().toMatrix(mAnchorMatrix, 0);
成为
float translation[] = new float[3];
float rotation[] = new float[4];
planeAttachment.getPose().getTranslation(translation,0);
frame.getPose().getRotationQuaternion(rotation,0);
Pose rotatedPose = new Pose(translation,rotation);
rotatedPose.toMatrix(mAnchorMatrix,0);
这将使“ Andy”在您四处走动时总是看着您。
绘制2D图像的第二部分需要更多代码。 在高层次上:
一个有效的示例在QuadRenderer.java中 。 在该示例中,就像使用ObjectRenderer类一样使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.