ARKit簡單介紹

首先,ARKit目前不支持前置攝像頭。

ARKit主要由兩部分功能組成:

  • 利用攝像頭探索真實世界建立空間坐標系;

  • 在真實世界渲染出虛擬3D模型。

其中第二部分的渲染能力不是新推出的,而是利用已有的一些框架,如下:

SceneKit -- ios8推出的3D圖形游戲框架,也是目前ARKit開發(fā)主要會使用的渲染3D模型的框架。引用官方的描述: Create 3D games and add 3D content to apps using high-level scene descriptions. Easily add animations, physics simulation, particle effects, and realistic physically based rendering.

SpriteKit -- ios7推出的2D圖形游戲框架,由于是2D的,在ARKit中實際的應用可能不多。

Metal -- iOS8推出的接口,是一個支持GPU加速的3D繪圖API,負責和3D繪圖硬件交互。兩大最著名第三方游戲引擎Unreal 和 Unity 也已支持Metal。

第一部分的利用攝像頭將拍攝到的現(xiàn)實世界空間化的功能,也是基于一些已有的框架,如AVFoundation的攝像頭模塊,CoreMotion重力感應,加速儀,陀螺儀等,結合一些AR相關的圖像算法,來實現(xiàn)的。

相關類的關系樹如下:

image.png

ARKit工作流程:

  • 創(chuàng)建AR視圖類ARSCNView,初始化;
  • 創(chuàng)建一個AR配置類,來啟動視圖類里的AR攝像頭;
  • 攝像頭將初始位置的坐標設定為世界原點,來建立一個三維坐標系;
  • 攝像頭可以探測到真實世界里面的水平面,并回調??梢栽谄矫嫔戏胖锰摂M物體。

也可以直接將虛擬物體放到自己指定的坐標上,但這樣會像漂浮在空中一樣,沒有放在平面上那種真實的感覺。

image.png

ARKit與谷歌Tango的對比:

  • Tango首先需要手機集成它的硬件模塊:超廣角魚眼鏡頭,紅外傳感器等,這使得只有少量的最新款安卓手機才具有AR的功能。谷歌通過硬件來達到AR中運動追蹤、深度感知和區(qū)域學習的能力。

  • ARKit只通過單個攝像頭,依靠強大的算法實現(xiàn)了AR的功能,并從演示的demo以及實際運行測試工程來看,定位非常穩(wěn)定且準確,渲染的Demo模型很復雜,但是感覺很流暢,說明實時性和算法能耗都深度優(yōu)化過。

  • 由于硬件上的不足,ARKit可能無法用于復雜場景和功能,但好處卻是讓A9及以上機型瞬間變成了AR設備,用戶不需要購買最新的機型;而在即將發(fā)布的iPhone8中很可能會配備配合AR的雙攝像頭,紅外線傳感器等,使得ARKit在性能上也趕超Tango。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • ARKit ARKit框架通過集成iOS設備攝像頭和運動功能,在您的應用程序或游戲中產生增強現(xiàn)實體驗。 概述 增強...
    暗夜夜夜行路閱讀 6,007評論 0 17
  • 正式放假的第九天 雖然聽說熬夜的種種危害 但腎上腺素和饑餓感這種東西向來戰(zhàn)無不勝 我沒有吹噓熬夜大法好哦 事實上每...
    Cutienya閱讀 322評論 0 0
  • 自 React Native 0.4.3,你可以以導入的形式,來讀取本地的json文件,導入的文件可以作為一個js...
    冷洪林閱讀 9,571評論 0 2
  • 無它
    陽麗茗閱讀 145評論 0 0
  • Jecytink閱讀 142評論 0 0

友情鏈接更多精彩內容