ARCore:如何在检测到的图像AR上渲染视频? [不使用场景形式]

问题描述 投票:0回答:1

我正在尝试开发一个应用程序,可以检测 AR 中的图像并将视频叠加在 AR 中的该图像之上。到目前为止,我已经实现了使用 ARCore 的 AugmentedImages 功能检测图像的功能。然而,我尝试了很多方法来将视频叠加在 AR 中检测到的图像之上,但没有一个能够正确叠加视频。 请为我提供一种将视频叠加在 AR 中检测到的图像上的方法。我还得到了检测到的图像的中心柱,但找不到在图像上附加视频播放器的方法。

注意:我不想使用 Sceneform,因为它不再维护和存档。因此我使用 ArCore 和 OpenGL 来开发这个应用程序。

到目前为止,我已经实现了使用 AugmentedImages 功能检测图像的功能,并且能够获取图像的中心姿势。我期望在 AR 中检测到的图像之上渲染视频。

我指的是谷歌的 AR 存储库:https://github.com/google-ar/arcore-android-sdk/tree/master/samples/augmented_image_java

非常感谢您的帮助,提前致谢!

android opengl-es augmented-reality arcore augmentedimage
1个回答
0
投票

如果您直接使用 OpenGL ES,那么您面临的最大挑战是学习如何在 3D 空间中渲染视频。

我想说从小开始,你说你已经有了增强图像坐标,尝试在那里添加任何虚拟 3D 对象。 ARCore 的其他示例应该可以帮助您解决此问题。完成后,将该 3D 对象与在平面上渲染的静态图像(纹理)交换。确保 3D 空间中的位置、大小和旋转符合您的预期。

将典型 2D 元素放置在 3D 空间上时的一个常见陷阱是调整其大小。假设您想要在 3D 空间中渲染 200x200 像素的图像,如果您创建一个 200x200 的 3D 对象,这将转换为 AR 空间中的 200 现实世界米!也许这对于某些用例很有用(比如说在建筑物上放置广告),但对于室内用例来说这可能不是您想要的。通常您会将纹理的大小设置为与源图像相同,然后您可以根据需要在 3D 空间中放大或缩小。

静态图像正常工作后,请研究如何渲染视频。根据您获取视频的位置,这意味着解码每个视频帧并更新每个新视频帧的纹理内容。尝试研究一些可以为您进行解码的库。

© www.soinside.com 2019 - 2024. All rights reserved.