【发布时间】:2014-05-28 07:30:37
【问题描述】:
我是 Android Vuforia AR 开发的新手。在google和vuforia论坛都没有结果后,我来这里需要你的建议。我成功地用我自己的 3d 对象替换了一个茶壶,现在我需要将另一个茶壶添加到“石头”目标中,就像这张图片 link?你曾经处理过这个案例吗?请给我一些线索开始。
感谢和最好的问候!
【问题讨论】:
标签: android image augmented-reality vuforia
我是 Android Vuforia AR 开发的新手。在google和vuforia论坛都没有结果后,我来这里需要你的建议。我成功地用我自己的 3d 对象替换了一个茶壶,现在我需要将另一个茶壶添加到“石头”目标中,就像这张图片 link?你曾经处理过这个案例吗?请给我一些线索开始。
感谢和最好的问候!
【问题讨论】:
标签: android image augmented-reality vuforia
您在使用 Unity 吗?这里有两个建议:
您可以按照此代码以编程方式在图像目标上实例化预制件,只需添加额外的转换:
https://developer.vuforia.com/forum/faq/unity-how-can-i-dynamically-attach-my-3d-model-image-target
或者,在场景层次结构中,您可以创建 ImageTarget 预制件的其他 GameObjects 子项(可能是最简单的方法),并使用场景编辑器调整它们的位置。
【讨论】:
首先,在转换之前获取模型视图矩阵的新副本。其次,在使用之前绑定你的modelViewProjectionMatrix。
modelViewMatrix = QCAR::Tool::convertPose2GLMatrix(trackable->getPose());
SampleUtils::rotatePoseMatrix(5.0f, 0.0f, 0.0f, 1.0f, &modelViewMatrix.data[0]);
SampleUtils::scalePoseMatrix(kObjectScale, kObjectScale, kObjectScale,
&modelViewMatrix.data[0]);
SampleUtils::multiplyMatrix(&projectionMatrix.data[0],
&modelViewMatrix.data[0] ,
&modelViewProjection.data[0]);
glUniformMatrix4fv(mvpMatrixHandle, 1, GL_FALSE,
(GLfloat*)&modelViewProjection.data[0] );
SampleUtils::checkGlError("ImageTargets renderFrame");
glDrawElements(GL_TRIANGLES, NUM_TEAPOT_OBJECT_INDEX, GL_UNSIGNED_SHORT,
(const GLvoid*) &teapotIndices[0]);
【讨论】: