我正在尝试使用相当简单的AR功能创建一个小型Android应用程序 - 加载一些已知标记并在检测到这些标记时在视频流上呈现已知的2D / 3D对象。我会很感激任何指向图书馆的指针,或者至少是一个做得对的好例子。
以下是我所研究的一些线索:
AndAR - https://code.google.com/p/andar/ - 这开始很棒,AndAR应用程序可以很好地在实时视频流上的单个模式上渲染一个多维数据集,但看起来项目被有效放弃了,为了扩展它,我将不得不大量进入OpenGL领域 - 不是不可能的,但非常不受欢迎。后续的AndAR Model Viewer项目,据说可以让你加载自定义.obj文件,似乎根本不识别标记。再一次,这看起来非常荒谬,它本来可以更多。
处理 - 之前提到的NyARToolkit非常适合从PC处理 - example usage,它完美适用于'这里是一个模式,这里是一个对象,只是渲染它'的功能,但随后它所有针对Android的故障--GStreamer for Android处于一个非常早期的hacky阶段,一般来说视频功能似乎是Android Processing项目的一个相当低的优先级 - 现在import processing.video.*;
刚刚失败。
layar,wikitude等,他们似乎都更关注交互性,位置和诸如此类的东西,这些我绝对不需要,并且在某种程度上错过了这种基本用法。
我哪里错了?我很乐意对视频捕获/检测/渲染的某些部分进行编码,我不需要拖放库,但AndAR的示例代码只会让我感到害怕
答案 0 :(得分:3)
我建议您查看Qualcomm的Vuforia SDK(以前的QCAR)和jPCT-AE作为3D引擎。它们都能很好地协同工作,不需要纯粹的OpenGL。但是你需要一些C / C ++知识,因为Vuforia在某种程度上依赖于NDK。
它基本上可以通过简单的JNI函数从Vuforia获取标记姿势(SDK包含功能齐全且范围广泛的示例代码)并使用它来放置带有jPCT的3D对象(最简单的方法是设置姿势作为对象的旋转矩阵,有点hacky,但产生快速结果)。
jPCT-AE支持某些常见格式的3D模型加载。 API文档很好,但您可能需要咨询论坛以获取示例代码。