版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
【移動應用開發(fā)技術】簡單談談GoogleARCore客戶端
一、前言AR(AugmentedReality:增強現(xiàn)實)今年年初上的一部電影:《頭號玩家》,就是一個虛擬游戲世界,模擬出了各種現(xiàn)實的感覺。當然,我個人的理解,頭號玩家里面的場景我是劃分為VR,大部分只是個虛擬現(xiàn)實,把人融入到虛擬的世界里面,而AR則是把虛擬的東西融入到現(xiàn)實的世界中來;咱們今天說的只是增強視覺方面,當然AR不僅僅只是增強視覺,包括聽覺,觸覺,味覺,嗅覺等等,使用虛擬的東西可以以更真實的姿態(tài)融入到我們現(xiàn)實的世界;二、AR的基礎和核心思想簡單介紹:1、在2D和3D空間中,跟蹤用戶的運動狀態(tài)和運動軌跡,并最終定位它們的位置信息或者相對設備的位置信息比如之前的:支付寶AR紅包,以及找寵物的那個游戲;ARCore工作時要做兩件事情,首先跟蹤手機的運動軌跡,然后構建出它對現(xiàn)實世界的理解,針對現(xiàn)實的理解,對現(xiàn)實的畫像做一個定義,平面,曲面,物體;主要技術:1、運動跟蹤:跟隨攝像頭視角成像的位置,進行位置捕獲,ARCore使用稱為并發(fā)測距和映射的過程來了解手機與周圍環(huán)境的相對位置當手機在運動時,計算出手機相對真實世界所在的位置和方向,ARCore會檢測捕獲的攝像頭圖像中的視覺差異特征(稱為特征點),并使用這些點來計算其位置變化;2、環(huán)境感知(環(huán)境理解):具體實現(xiàn)的功能其實就是檢測平面,或者說主要功能是為了檢測平面,這樣可以現(xiàn)實環(huán)境中放置虛擬物體的時候位置相對合理,不會出現(xiàn)物體懸空,或者在斜面上仍然處于水平的姿態(tài),水平面上防止虛擬物品出現(xiàn)傾斜狀態(tài)等等;識別的時候,如果出現(xiàn)一種純色,且上面沒有任何物體的平面,平面沒有任何紋理,這樣是很難識別出來的;3、光線評估:ARCore能夠判斷和感知現(xiàn)實世界的光源位置,使虛擬物體能夠形成相應方位的影子,從而增加虛擬物體在現(xiàn)實世界里的真實度。這個是其一,還有一種是為了,如果防止的物體本色就是一個顏色比較亮麗的,但是周圍環(huán)境卻比較暗淡,這種情況可以自動去調(diào)節(jié)物體的亮度(光強度);三、ARCore功能介紹1、云瞄點ArCore客戶端:ARCore可以改變對自身位置和環(huán)境的理解來調(diào)整姿態(tài)。如我們要在ARCore環(huán)境中放置一個虛擬對象,首先要確定一個錨點,以確保ARCore能隨著時間的推移不斷跟蹤對象的位置。連接到附近錨點的物體會在整個AR體驗期間看起來更逼真,因為瞄點的定位可以使物體保持它們的位置和彼此之間的相對位置和姿勢不需要再繼續(xù)使用的額瞄點,及時廢棄掉,有助于減少CPU的資源消耗;所以理論上:如果虛擬物體錨定到特定的可跟蹤對象后,是可以確保虛擬物體與可跟蹤對象之間的關系即使在設備移動時也能保持穩(wěn)定(比如:瞄點定位平面成功后,調(diào)整了一下平面上的物體,增加或者減少物體,都不會影響虛擬物體相對平面的位置,仍然使虛擬物體看起來像是在這個平面上,但是,有一種情況,當我去移動這個平面的時候,或者翻轉這個平面的時候,物體并沒有跟隨著平面而翻轉)。云端:OK,這個東西實際上單機狀態(tài)下是可以用ArCore獨立完成,為啥它又叫做云瞄點呢,其實它里面存在一個數(shù)據(jù)共享的功能,簡單說就是數(shù)據(jù)上傳,某一臺設備可以將錨點和附近的特征點發(fā)送到云端進行托管,上傳后可以將這些錨點與同一環(huán)境中Android或iOS設備上的其他用戶共享。這使應用可以渲染連接到這些錨點的相同3D對象,從而讓不同的用戶能夠體驗相同的AR效果;云錨點的數(shù)云端據(jù)具有以下存儲和訪問限制:托管錨點時上傳至云端的原始視覺映射數(shù)據(jù)在七天后舍棄。錨點會根據(jù)存儲的稀疏點圖在服務器端解析。生成后,稀疏的點圖可用于一天的云錨點解析請求。之前上傳的映射數(shù)據(jù)永遠不會發(fā)送至用戶的設備。無法根據(jù)稀疏點圖確定用戶的地理位置或者重建任何圖像或用戶的物理環(huán)境。任何時候都不會存儲請求中用于解析錨點的可視特征描述符。2、增強圖像(在我看來,圖片增強功能其實就是在圖片識別技術上加上了圖片位置定位功能而已)主要功能:提供一組圖片,當攝像頭捕捉到圖片時,會返回圖片的位置,可以做響應的處理和顯示☆每個圖像數(shù)據(jù)庫可以存儲最多1000張參考圖像的特征點信息?!預RCore可以在環(huán)境中同步跟蹤最多20張圖像,但無法跟蹤同一圖像的多個實例?!瞽h(huán)境中的物理圖像必須至少為15cmx15cm且必須平坦(例如,不能起皺或卷繞在瓶子上)☆在物理圖像被跟蹤后,ARCore會提供對位置、方向和物理大小的估算。隨著ARCore收集的數(shù)據(jù)增多,這些估算會持續(xù)優(yōu)化?!預RCore無法跟蹤移動的圖像,不過它可以在圖像停止移動后繼續(xù)跟蹤。☆所有跟蹤都在設備上完成,所以無需網(wǎng)絡連接??梢栽谠O備端或通過網(wǎng)絡更新參考圖像,無需應用更新。ArCoreSDK的tools目錄下面有個arcoreimg.exe工具,這個是一個命令行工具,作用是獲取一組參考圖像并生成圖像數(shù)據(jù)庫文件:常用命令:(1)、檢查圖片質量,給出圖片的評分(建議使用評分75以上的圖片)arcoreimg.exeeval-img–input_image_path=xx/xx/a.png例外:WARNING:LoggingbeforeInitGoogleLogging()iswrittentoSTDERRI121811:08:11.6655406900distribute.cc:92]Nokeypointstoprune.Failedtogetenoughkeypointsfromtargetimage.(2)、生成圖片列表對應的圖片數(shù)據(jù)庫:arcoreimg.exebuild-db--input_images_directory=img--output_db_path=myimage.imgdb3、Sceneform(構建和渲染場景):場景的構建和場景渲染,之前我們更多是在Unity里面聽到過,里面使用的是OpenGL,其實ARCore早在17年剛出來的時候,并沒有存在SceneformAPI,Sceneform讓Android開發(fā)者不必學習3D圖形和OpenGL就能使用ARCore。它包括一個高級場景圖API,仿真基于物理的渲染器,一個用于導入、查看和構建3D資產(chǎn)的AndroidStudio插件,并且可以輕松地集成到ARCore內(nèi)進行簡單的AR應用構建。Renderable(ModelRenderable類)是一個3D模型,包括可由Sceneform在界面上渲染的網(wǎng)格、材料和紋理。Sceneform提供三種創(chuàng)建可渲染對象的方式:根據(jù)標準Android微件、根據(jù)基本形狀/材料以及根據(jù)3D資產(chǎn)文件(OBJ、FBX、glTF)。四、ARCode的使用:環(huán)境:AndroidStudio3.1及以上;SDK24(7.0)及以上;JDK1.8及以上;支持OpenGLSE3.1及以上;還需要安裝一個輔助插件:集成:倉庫地址引用allprojects{repositories{google()}}包依賴(功能的實現(xiàn)主要是ArCore里面實現(xiàn)的,依賴的這個包只是)://需要使用java8去構建compileOptions{sourceCompatibilityJavaVersion.VERSION_1_8targetCompatibilityJavaVersion.VERSION_1_8}dependencies{implementation"com.google.ar.sceneform.ux:sceneform-ux:1.6.0"}強制性選擇AR<uses-sdkandroid:minSdkVersion="{24orhigher}"<meta-dataandroid:name="com.google.ar.core"android:value="required"/>判斷設備是否支持:publicstaticbooleancheckIsSupportedDeviceOrFinish(finalActivityactivity){if(Build.VERSION.SDK_INT<24){Log.e(TAG,"SceneformrequiresAndroidNorlater");Toast.makeText(activity,"SceneformrequiresAndroidNorlater",Toast.LENGTH_LONG).show();activity.finish();returnfalse;}ConfigurationInfoinfo=((ActivityManager)activity.getSystemService(Context.ACTIVITY_SERVICE)).getDeviceConfigurationInfo();StringopenGlVersionString=info.getGlEsVersion();if(Double.parseDouble(openGlVersionString)<MIN_OPENGL_VERSION){Log.e(TAG,"SceneformrequiresOpenGLES3.0later");Toast.makeText(activity,"SceneformrequiresOpenGLES3.0orlater",Toast.LENGTH_LONG).show();activity.finish();returnfalse;}returntrue;}核心類的介紹:Sessioncom.google.ar.core.Session類,Session管理AR系統(tǒng)狀態(tài)并處理Session生命周期。該類是ARCoreAPI的主要入口點。該類允許用戶創(chuàng)建Session,配置Session,啟動/停止Session,最重要的是接收視頻幀,以允許訪問Camera圖像和設備姿勢。Configcom.google.ar.core.Config類,用于保存Session的設置。Framecom.google.ar.core.Frame類,該類通過調(diào)用update()方法,獲取狀態(tài)信息并更新AR系統(tǒng)。HitResultcom.google.ar.core.HitResult類,該類定義了命中點射線與估算的真實幾何世界之間的交集。Pointcom.google.ar.core.Point類,它代表ARCore正在跟蹤的空間點。它是創(chuàng)建錨點(調(diào)用createAnchor方法)時,或者進行命中檢測(調(diào)用hitTest方法)時,返回的結果。PointCloudcom.google.ar.core.PointCloud類,它包含一組觀察到的3D點和信心值。Planecom.google.ar.core.Plane類,描述了現(xiàn)實世界平面表面的最新信息。Anchorcom.google.ar.core.Anchor類,描述了現(xiàn)實世界中的固定位置和方向。為了保持物理空間的固定位置,這個位置的數(shù)字描述信息將隨著ARCore對空間的理解的不斷改進而更新。Posecom.google.ar.core.Pose類,姿勢表示從一個坐標空間到另一個坐標空間位置不變的轉換。在所有的ARCoreAPI里,姿勢總是描述從對象本地坐標空間到世界坐標空間的轉換。隨著ARCore對環(huán)境的了解不斷變化,它將調(diào)整坐標系模式以便與真實世界保持一致。這時,Camera和錨點的位置(坐標)可能會發(fā)生明顯的變化,以便它們所代表的物體處理恰當?shù)奈恢?。這意味著,每一幀圖像都應被認為是在一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 10895-2025離心機、分離機機械振動測試與評價
- 農(nóng)村信用社招聘試題附答案
- 醫(yī)院崗前培訓考試及答案
- 車間安全培訓試題附參考答案(完整版)
- 吉林省延吉市公開遴選公務員筆試題及答案解析(A類)
- 人力資源職稱試題及答案
- 醫(yī)護論文試題及答案
- 金融知識多項選擇題試題(附答案)
- 《計算機應用基礎》各章習題參考答案
- 高頻教務小組面試題及答案
- 安全生產(chǎn)目標及考核制度
- (2026版)患者十大安全目標(2篇)
- 大數(shù)據(jù)安全技術與管理
- 《陸上風電場工程概算定額》NBT 31010-2019
- 七年級下冊《6.1 第3課時 平方根》課件
- 一年級至六年級英語單詞匯總
- 矩形容器計算(ABCDE型通用)V1.1
- GB/T 13789-2022用單片測試儀測量電工鋼帶(片)磁性能的方法
- GB/T 33092-2016皮帶運輸機清掃器聚氨酯刮刀
- GB/T 16535-2008精細陶瓷線熱膨脹系數(shù)試驗方法頂桿法
- 中學主題班會課:期末考試應試技巧點撥(共34張PPT)
評論
0/150
提交評論