2012-06-27 24 views
-4

我要开始开发一个游戏一样工作:AR手机游戏采用实时摄像机

  1. 蚊子AR游戏:http://www.makayama.com/mosquitoes.html
  2. DriodShooting:http://www.youtube.com/watch?v=kU9qsUJWzgI

应用程序使用摄像头和雷达发现物体并使用触摸命中什么是最好的SDK或平台或编程模型来执行类似的游戏瞄准android和ios

您的帮助和建议表示高度赞赏

感谢所有提前

+3

嗨,那么在互联网上搜索它呢?我相信你会找到许多关于它的信息。 –

+0

感谢您的回复我看看互联网,我看到这是交流经验的最佳场所,顺便说一句,我不是在寻找信息,而是在帮助和建议上勾住正确的方式,非常感谢您的回复,并很抱歉如果我浪费你的时间阅读它 – user1486714

回答

2

我与伊万同意,这个问题太宽而不能在这里处理。但无论如何,这里有几件事要考虑的Android平台:

如果你想使用3D图形(OpenGL),那么你可能会遇到一个瓶颈,因为目前你不能有实时相机预览和同一屏幕上的OpenGL表面视图。问题在于所谓的SurfaceView(用于OpenGL渲染和相机实时预览)并非设计为彼此叠加。所以,当涉及到显示顺序时,您可以获得意想不到的结果(在后面的视频预览中呈现的3D图形)。

有此问题,但两个解决方案:

  1. 你不使用3D图形和诉诸相机预览的顶部渲染2D对象

  2. 你使用3D图形,但那么您必须捕捉相机预览,将YUV编码的数据转换为RGB(由于某些非标准的编码定制符合于某些设备,因此这会产生问题),并将该数据加载到OpenGL纹理中以显示在矩形图元上。这种方法的问题是:由于额外的处理开销导致速度不足,并且很可能需要缩小相机预览纹理,因为与OpenGL相关的限制。

此外,你需要让自己熟悉capturing motion sensor data用于计算可用于转化的覆盖图形/虚拟物体的装置旋转矩阵。

如果您的AR应用程序应该与捕获的实时视频流“交互”,则会遇到下一个瓶颈问题。这完全取决于你想要达到的目标。你想识别人脸,某些形状,条形码等等......无论要求是什么,Java实现可能太慢了,你需要求助于使用NDK编写C代码(用不同手机的体验在图像处理方面获得更快的速度)。这是你需要覆盖的下一个主题。您还需要熟悉图像处理。但首先:创建一个规范。你需要知道你的AR应用需要什么。

一些现代AR应用程序还会将捕获的视频数据实时流式传输到具有更多处理能力以用于形状/图像识别的服务器。

关于该主题,您可以阅读this master's thesis以获取更多信息。

因此,底线是AR应用程序可以成为真正雄心勃勃的项目,涉及大量不同的技术和学科。

+0

你已经清楚地对这个答案进行了很多思考,但我想指出的是,即使Android应用程序的处理能力有限,也不是很难写出一个体面的AR应用程序。捕捉传感器数据对于熟悉Android的人来说是一件容易的事情,像AndAR这样的图书馆可以非常容易地在三维空间中渲染覆盖图。在屏幕上同时拥有两个以上中等细节的是一个性能杀手,但它是可能的。 –

+0

感谢您提供的大量信息,我认为使用低端sdk更容易,这意味着我必须更多地了解您的答案的细节,非常感谢您的努力 – user1486714

+0

尝试编写一个之后,我同意上面的答案。目前许多设备没有足够的电力(CPU/GPU),并且存在延迟问题,即屏幕增大,某些事情工作得很好,但是在内存较小的时刻,它们运行非常糟糕,支持成本可能很高。 – nycynik