Kit*_*adr 14 augmented-reality vuforia swift arkit arcore
我是增强现实领域的初学者,致力于使用智能手机创建建筑计划(平面图,房间平面图等,具有精确测量)的应用程序.所以我正在研究可用于此的最佳AR SDK.Vuforia对抗ARCore和ARKit的文章并不多.
请建议使用最好的SDK,各自的优点和缺点.
ARG*_*Geo 37
更新时间:2019年2月25日.
目前Google ARCore
适用于Android和iOS,较年轻Apple ARKit
仅适用于iOS(iPhone 6s及更高版本),而且Vuforia也适用于iOS和Android.Vuforia使用PTC Vuforia
/ ARCore
技术,如果它运行的硬件支持它,否则它使用自己的AR技术和引擎(没有相关硬件的软件解决方案).
但是,开发运行Android的OEM智能手机存在问题:所有这些设备都需要校准才能观察到相同的AR体验.
ARCORE
成熟的当前版本ARKit
是1.7.最近的主要更新带来了诸如Augmented Faces API,Sceneform中的动画,开源场景,Point Cloud ID,多人游戏支持和改进的文档等重要功能.众所周知,ARCore允许移动设备在相对于使用Motion Tracking
(COM)的世界的6个自由度(6-DoF)中理解和跟踪其位置和方向,并允许检测三种类型的表面的大小和位置:水平,垂直和有角度的表面,如地面,桌子,长凳,墙壁等,使用来自摄像机和陀螺仪和加速度计的视觉数据(以相同的方式操作ARKit和Vuforia).ARCore对现实世界的理解使您可以以与现实世界集成的方式放置3D对象和2D注释.因此,您可以使用Environmental Understanding
(用于Android应用程序)或Light Estimation
(用于iOS应用程序)类在现实世界咖啡桌的角落放置虚拟杯子.
有ARCORE的三大基本概念:feature points
,OBJ
和FBX
.正如我之前所说,当您将手机移动到真实场景时,ARCore使用COM方法来了解手机的位置,相对于周围的世界.ARCore glTF
在捕获的RGB图像序列中检测到所谓的,并使用它们来计算手机的位置变化.视觉信息与来自惯性测量单元(IMU)的测量结果相结合,以估计相机随时间的位置和方向.然后,ARCore会查找看起来Environmental HDR mode
位于水平或垂直曲面上的聚类,并使这些曲面可供您的应用使用Augmented Faces
.因此,您可以使用所有这些数据将虚拟对象放入场景中.纹理3D几何体由ARCore的伴侣渲染 - Sceneform(有一个实时的基于物理的渲染引擎 - 细丝).此外,ARCore可以检测有关其环境照明的信息,并为您提供给定摄像机图像的平均强度和颜色校正.此信息使您可以在与周围环境相同的条件下点亮虚拟对象,从而增强真实感.
ARCore比ARKit年龄大得多.你还记得Augmented Images
吗?因此,ARCore是一款没有深度相机的探戈.明智地收购FlyBy和MetaIO帮助Apple迎头赶上.假设,它对AR行业非常有利.ARCore需要Android 7.0 Nougat或更高版本,支持OpenGL ES 3.1加速,并与Unity,Unreal和Web应用程序集成.目前,Android平台上最强大的AR体验芯片组是麒麟980和Snapdragon 855.ABCore价格:免费.
以下是用Kotlin语言编写的ARCore项目的样子:
|-----------------------------------|-----------------------------------|
| ARCore PROS | ARCore CONS |
|-----------------------------------|-----------------------------------|
| // Quick Plane Detection | Cloud Anchors are hosted online |
|-----------------------------------|-----------------------------------|
| // Long-distance-accuracy | Lack of rendering technologies |
|-----------------------------------|-----------------------------------|
| // Sloping Surfaces Detection | Poor developer documentation |
|-----------------------------------|-----------------------------------|
| // High-quality Lighting API | No external camera support |
|-----------------------------------|-----------------------------------|
| // A lot of supported devices | No Z-Depth compositing for model |
|-----------------------------------|-----------------------------------|
Run Code Online (Sandbox Code Playgroud)
ARKit
ARKit具有许多用于精确测量的有用功能.例如,它的最新版本2.0增加了Sceneform Animations
功能Cloud Anchors
.这使您可以在应用变为非活动状态时保存世界地图,然后在下次应用程序在同一物理环境中启动时将其还原.您可以Multiplayer support
从恢复的世界地图中集中使用父类,将相同的虚拟内容放在保存的会话中的相同位置.ARKit中的测量工具非常准确.ARKit具有3D跟踪,2D跟踪,垂直/水平平面检测,图像检测,QR码检测(使用Vision框架),3D对象检测等.World Tracking
在ARKit中使用,iBeacon感知应用程序可以知道它是什么房间在,并显示该房间的正确3D/2D内容.
ARKit使用Scene Understanding
(VIO)准确跟踪周围的世界.Rendering
方法与front
ARCore中使用的方法非常相似.也有ARKit三个主要的基本概念:back
,collaborative sessions
(什么包括这样的阶段的平面检测,命中测试和光估计),并Motion Capture tracking
与ARKit的同伴的帮助- SceneKit框架.VIO将RGB相机传感器数据以60 fps的速度与Core-Motion数据(IMU)以1000 fps融合.SceneKit以60/120 fps渲染其3D几何体.应该注意的是,由于能量影响非常大(因为CPU和GPU的负担很大),你的iPhone电池很快就会消耗殆尽.
当您在Mac上构建兼容ARKit 2.0的iOS应用程序时,您需要Xcode 10和运行iOS 12的移动设备.ARKit支持Metal 2.0和OpenGL GPU加速.ARKit拥有一个2D tracking
(最多6人)和全新vertical and horizontal Planes detection
的Pixar(适用于复杂的3D场景),当然还有基于物理的渲染Image detection
.ARKit与Unity和Unreal集成.目前,iOS平台上最强大的AR体验芯片组是A12 Bionic.ARKit价格:免费.
以下是用Swift语言编写的ARKit双视图项目如下所示:
private fun addNodeToScene(fragment: ArFragment, anchor: Anchor, renderable: Renderable) {
val anchorNode = AnchorNode(anchor)
anchorNode.setParent(fragment.arSceneView.scene)
val modelNode = TransformableNode(fragment.transformationSystem)
modelNode.setParent(anchorNode)
modelNode.setRenderable(renderable)
modelNode.localPosition = Vector3(0.0f, 0.0f, -3.0f)
fragment.arSceneView.scene.addChild(anchorNode)
modelNode.select()
}
Run Code Online (Sandbox Code Playgroud)
Vuforia
PTC Vuforia Engine 8.0拥有与最新版本的ARKit和ARCore大致相同的功能,以及它自己的新功能,例如带有深度学习的模型目标,用于无标记AR体验的VISLAM和用于iOS的外部摄像头支持.Vuforia有一个独立版本,一个版本直接烘焙到Unity.它具有以下功能:具有深度学习的模型目标(允许使用预先存在的3D模型和深度学习算法通过形状即时识别对象),图像目标(将AR内容放在平面对象上的最简单方法),多目标(用于具有平坦表面和多个侧面的物体),圆柱目标(用于将AR内容放置在具有圆柱形状的物体上),地平面(作为3D Object detection
此功能的一部分,使数字内容能够放置在地板和桌面上),VuMarks(允许识别并向一系列对象添加内容),对象目标(用于扫描对象)和Fusion.
Vuforia Fusion是一种旨在解决AR支持技术碎片问题的功能,如相机,传感器,芯片组和ARKit等软件框架.使用Vuforia Fusion,您的应用程序将自动提供最佳体验,无需额外的工作.
外部摄像头功能是Vuforia Engine Driver Framework的一部分.外部相机为增强现实提供了一个新视角.它允许Vuforia Engine访问手机和平板电脑配备的摄像头以外的外部视频源.通过使用独立的相机,开发人员可以创建AR体验,从玩具,机器人或工业工具提供第一人称视角.
Vuforia支持iOS设备的金属加速.您也可以将Vuforia Samples用于您的项目.例如:3D Object scanning
库包括使用Vuforia功能的各种场景,包括预先配置的对象识别场景,您可以将其用作对象识别应用程序的参考和起点.
Vuforia SDK价格(有四个选项):免费(您需要注册免费的开发许可证密钥), 每个Classic许可证499美元(适用于收入低于1000万美元/年的公司的应用程序),每个Cloud许可证每月99美元和PTC还提供了一个专业的许可证与个人价格(无收入限制).
与ARCore和ARKit相比,Vuforia的开发没有明显的局限性.
有关更多详细信息,请参阅为什么ARKit比替代品更好?文章.
Realistic reflections
.Vuforia的测量精度取决于您正在开发的平台.注意:Vuforia Chalk应用程序使用Apple的ARKit.
试用App Store和Google Play中的免费AR应用.
以下是用C#语言编写的Unity Vuforia项目的样子(以下示例说明如何Face-based AR experience
使用自定义3D模型扩充Vuforia ):
|-----------------------------------|-----------------------------------|
| ARKit PROS | ARKit CONS |
|-----------------------------------|-----------------------------------|
| // Stable 6DoF World Tracking | No angled-surface detection |
|-----------------------------------|-----------------------------------|
| // Collaborative Sessions | ARKit 3 restrictions (A12, A13) |
|-----------------------------------|-----------------------------------|
| // World Maps, iBeacon-awareness | No macOS Simulator for ARKit |
|-----------------------------------|-----------------------------------|
| // 4 rendering technologies | No external camera support |
|-----------------------------------|-----------------------------------|
| // Rich developer documentation | |
|-----------------------------------|-----------------------------------|
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13329 次 |
最近记录: |