Mobile 移动AdobeFlashAir上的摄像机和Stage3D。空中增强现实 快速提问

Mobile 移动AdobeFlashAir上的摄像机和Stage3D。空中增强现实 快速提问,mobile,webcam,augmented-reality,stage3d,starling-framework,Mobile,Webcam,Augmented Reality,Stage3d,Starling Framework,如何使用Stage3D在AdobeAIR应用程序上快速显示网络摄像头 详细问题 关于 我的目标是创建AR(增强现实)移动应用程序的原型。我选择了AdobeFlashAir,以便在移动和AIR应用程序上提供良好的3D图形支持,并易于移植到许多移动平台(iOS、Android、Blackberry Playbook) 目的 我想显示复杂的3D模型(所以我需要使用Stage3D)。在前摄像头的视频下方。照常使用AR应用程序 下面是一些例子 (来源:) 问题 Stage3D一点也不透明,所以我不能

如何使用Stage3D在AdobeAIR应用程序上快速显示网络摄像头


详细问题 关于 我的目标是创建AR(增强现实)移动应用程序的原型。我选择了AdobeFlashAir,以便在移动和AIR应用程序上提供良好的3D图形支持,并易于移植到许多移动平台(iOS、Android、Blackberry Playbook)

目的 我想显示复杂的3D模型(所以我需要使用Stage3D)。在前摄像头的视频下方。照常使用AR应用程序

下面是一些例子
(来源:)

问题 Stage3D一点也不透明,所以我不能使用StageVideo快速显示相机的内容,因为StageVideo在Stage3D下看不到

所以 我发现的唯一一个决定是——用动态纹理更新创建平面

这是。但对于许多普通的移动设备,我们得到了如此大的纹理更新(几乎和屏幕分辨率一样大),以至于任何应用程序都会下降到低fps甚至崩溃。例如,我在Galaxy Note上所做的。它的纹理大小为320x200,性能相当好,但在AR应用程序中看起来很难看


那么,有什么绝妙的解决方案可以在空中创造AR吗?有人遇到过同样的挑战吗?

不幸的是,这个用例在空中没有得到很好的支持。你最好的选择就是手动上传。这可能有助于为Adobe论坛上的透明Stage3D功能请求添加投票

现在说说为什么这个功能优先级低:如果你正在做AR,你可能已经在视频上做CPU工作了。这意味着您已经读回相机数据,以便在CPU上或作为Stage3D纹理进行处理。这是昂贵的部分,而不是将纹理上传回Stage3D

为了使它有用,需要有许多复杂的代码路径完美地协同工作。在所有受支持的设备上:

  • 用于CPU或GPU AR图像处理的回读低分辨率相机
  • 显示直通式高分辨率相机图像
  • 用混合覆盖3D
不幸的是,这非常困难。在许多移动芯片组上,视频/摄像机、CPU和3D是非常独立的单元,因此在不暂停或复制的情况下很难在它们之间共享数据。如果您针对特定的硬件,它可以做得很好。我知道这并不能解决您的问题,但我希望它能解释为什么这个用例在空中还不能很好地工作。我认为你有这些选择:

  • 使用AIR和readback/upload。在某些硬件上它会非常慢,但它会可靠地工作
  • 去本地。在最好的情况下,这将是一个巨大的胜利,但您需要为每个目标定制大量的自定义代码和测试
  • 在一个非常狭窄的平台上进行本地访问。许多非常酷的AR演示都是这样做的。看看GPU供应商提供的用于AR的SDK。他们大多数都有一个
  • 在糟糕的情况下做到最好:坚持低分辨率和上传,但在视频上添加一些有趣的过滤器。一旦你为上传付费,用你的纹理做Stage3D是非常便宜的

我希望这有点帮助。在开发阶段3d时,这个确切的用例不时出现。我还是觉得很酷!也许这篇文章解释了为什么它还没有登上榜首。

谢谢你的回答。你用AR做过本地实验吗?你能为快速入门推荐一些文章或教程吗?我的目标是Android平台。但问题是——假设这会很快耗尽电池,你的应用程序会通过应用商店的审批程序吗?出于某种原因,我看不到任何有效/最佳的方法来进行视频/摄像机操作,而不让CPU和GPU负担过重,是的,也许它的帧速率不错,质量一般,但仅仅运行几分钟就要消耗大量电能。我并不想悲观,但假设苹果不会通过这样的应用程序,这难道不公平吗?我真的无法解释苹果是如何批准这些应用程序的。但一般来说,任何AR应用程序都会很昂贵。我猜也有相当多的应用程序有类似的处理要求。像任何高端游戏一样,在达到目标帧速率的情况下,cpu和gpu将达到最大。