使用实时相机的AR手机游戏

时间:2012-06-27 19:24:50

标签: android ios html5 sdk augmented-reality

我想开始开发像以下游戏:

  1. 蚊子AR游戏:http://www.makayama.com/mosquitoes.html
  2. DriodShooting:http://www.youtube.com/watch?v=kU9qsUJWzgI
  3. 应用程序使用相机和雷达来识别物体并使用触摸点击什么是最好的SDK或平台或编程模型来执行类似的游戏目标android和ios

    非常感谢您的帮助和建议

    提前感谢所有人

1 个答案:

答案 0 :(得分:2)

我同意伊万的观点,这个问题太广泛了,无法在此处理。但无论如何,Android平台需要考虑以下几点:

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

这个问题有两个解决方案:

  1. 您不使用3D图形并使用在相机预览之上渲染2D对象

  2. 您确实使用3D图形,但是您必须捕获相机预览,将YUV编码数据转换为RGB(由于编码的某些非标准兼容自定义,这在某些设备上存在问题)并加载将数据转换为要在矩形基元上显示的OpenGL纹理。这种方法的问题是:由于额外的处理开销而缺乏速度,并且由于与OpenGL相关的限制,您很可能需要缩小相机预览纹理。

  3. 此外,您需要熟悉capturing motion sensor data来计算可用于转换叠加图形/虚拟对象的设备旋转矩阵。

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

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

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

    所以最重要的是,AR应用程序可以成为真正雄心勃勃的项目,涉及大量不同的技术和学科。