AR Foundation增強現實開發實戰(ARCore版)( 簡體 字) | |
作者:汪祥春 | 類別:1. -> 程式設計 -> VR+AR 2. -> 程式設計 -> 元宇宙 |
出版社:清華大學出版社 | 3dWoo書號: 56077 詢問書籍請說出此書號! 有庫存 NT售價: 545 元 |
出版日:9/1/2022 | |
頁數:409 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302612186 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
基礎篇
第1章AR開發入門…………1 1.1增強現實技術概述………3 1.1.1AR概念……………3 1.1.2 AR技術應用………5 1.2 AR技術原理…………6 1.2.1 傳感器數據………6 1.2.2前端里程計………8 1.2.3后端優化…………8 1.2.4回環檢測…………8 1.2.5建圖…………9 1.3ARFoundation概述…………10 1.3.1ARFoundation與ARCore…………11 1.3.2 ARFoundation支持的功能…………11 1.3.3 ARFoundation功能概述………12 1.3.4 ARFoundation體系架構概述………13 1.3.5基本術語………13 1.4支持的設備……………15 1.5開發環境準備…………16 1.5.1所需硬件和軟件…………17 1.5.2軟件安裝………17 1.6 ARCore初體驗…………19 1.6.1工程創建………19 1.6.2工具包導入…………21 1.6.3 工程設置………22 1.6.4 環境搭建………24 1.6.5 代碼編寫………27 1.6.6 調試準備………29 1.6.7 打包測試………30 1.7 AR應用調試……………31 第2章ARFoundation基礎…………36 2.1ARFoundation體系架構…………36 2.1.1 AR子系統概念………37 2.1.2 AR子系統使用………38 2.1.3跟蹤子系統…………39 2.2 ARSession&ARSessionOrigin………40 2.2.1 ARSession………40 2.2.2 ARSessionOrigin…………43 2.3可跟蹤對象……………45 2.3.1 可跟蹤對象管理器………46 2.3.2 可跟蹤對象事件…………47 2.3.3 管理可跟蹤對象…………48 2.4會話管理…………49 第3章ARCore功能特性與開發基礎…………52 3.1ARCore概述及主要功能…………52 3.1.1 運動跟蹤………53 3.1.2 環境理解………53 3.1.3 光照估計………54 3.1.4 ARCore的不足………54 3.2 運動跟蹤原理…………56 3.2.1 ARCore坐標系………56 3.2.2 ARCore運動跟蹤分類…………56 3.2.3 ARCore運動跟蹤…………58 3.2.4 ARCore使用運動跟蹤的注意事項………60 3.3 設備可用性檢查………61 3.4 AR會話生命周期管理與跟蹤質量…………62 3.5 ARCore擴展包…………65 3.6 相機配置…………66 3.7 會話錄制與回放………68 3.7.1 ARFoundation錄制與回放…………69 3.7.2 ARCore擴展錄制與回放………72 3.8 即時放置…………78 功能技術篇 第4章平面檢測與錨點管理…………85 4.1 平面檢測引導…………85 4.2 平面管理…………88 4.2.1 平面檢測………88 4.2.2 可視化平面…………89 4.2.3 個性化渲染平面…………90 4.2.4 開啟與關閉平面檢測功能…………95 4.2.5 顯示與隱藏已檢測平面………97 4.2.6平面遮擋………99 4.3射線檢測…………100 4.3.1射線檢測概念………100 4.3.2 射線檢測詳細講解………102 4.4 可視化放置點…………104 4.5 特征點與點云…………106 4.5.1 特征點…………107 4.5.2 點云……………108 4.5.3點云數據采集………109 4.6 錨點…………113 第5章圖像檢測跟蹤……………118 5.1 圖像檢測跟蹤基本操作…………118 5.2 圖像跟蹤功能啟用與禁用………123 5.3 多圖像跟蹤……………124 5.4 運行時創建參考圖像庫…………129 5.5 運行時切換參考圖像庫…………130 5.6 運行時添加參考圖像………132 5.7脫卡…………136 5.8 圖像跟蹤優化…………137 第6章人臉檢測跟蹤……………140 6.1 人臉檢測基礎…………140 6.1.1 人臉檢測概念………140 6.1.2 人臉檢測技術基礎………141 6.2 人臉姿態與網格………143 6.2.1 人臉姿態………143 6.2.2 人臉網格………145 6.3 人臉區域與多人臉檢測…………151 6.3.1人臉區域………151 6.3.2 多人臉檢測…………155 第7章光影效果……………159 7.1光照基礎…………159 7.1.1 光源……………160 7.1.2光與材質的交互…………160 7.1.3 光照模型………161 7.1.4 三維渲染………162 7.2 光照估計…………163 7.2.1 光照一致性…………163 7.2.2光照估計實例………163 7.3 環境反射…………167 7.3.1 立方體貼圖…………167 7.3.2 紋理采樣過濾………168 7.3.3 AREnvironmentProbeManager組件……169 7.3.4 使用環境反射………170 7.4 內置實時陰影…………171 7.4.1 ShadowMap技術原理…………172 7.4.2 使用實時陰影………173 7.5 Planar陰影……………178 7.5.1 數學原理………178 7.5.2 代碼實現………179 7.6 偽陰影……………185 第8章持久化存儲與多人共享………187 8.1云錨點……………187 8.2 ARCore云錨點使用實例…………188 8.3ARCore云錨點使用注意事項…………195 8.4 Azure云服務概述………196 8.5 Azure空間定位點使用實例………197 第9章場景圖像獲取與場景深度…………206 9.1 獲取GPU圖像…………206 9.1.1 獲取攝像頭原始圖像…………206 9.1.2 獲取屏幕顯示圖像………208 9.2 獲取CPU圖像…………212 9.2.1 AR攝像頭圖像數據流…………212 9.2.2 從CPU中獲取攝像頭圖像…………213 9.3 邊緣檢測原理…………222 9.3.1 卷積……………223 9.3.2 Sobel算子………224 9.4 CPU圖像邊緣檢測實例…………226 9.5 DepthAPI概述…………229 9.6 DepthAPI實例…………232 9.7 場景深度應用場景…………237 第10章相機與手勢操作………239 10.1 AR場景操作…………239 10.1.1 場景操作方法…………239 10.1.2 場景操作實例…………240 10.2 手勢操作交互…………242 10.2.1 手勢檢測…………242 10.2.2 手勢操作控制…………244 10.3 XRInteractionToolkit………247 10.3.1 對象放置…………248 10.3.2 對象選擇…………252 10.3.3 對象操作…………254 第11章三維文字與音視頻…………256 11.1 三維文字…………256 11.1.1 文字單位換算…………256 11.1.2 中文字體制作…………257 11.2 三維聲頻…………258 11.2.1 三維聲場原理…………259 11.2.2 RA聲頻使用………260 11.2.3 RA組件………260 11.2.4 使用RA聲頻…………262 11.2.5 聲頻效果設置…………266 11.2.6 RA聲頻API………268 11.2.7 運行時啟用和禁用三維音效……268 11.2.8 使用回響營造空間感………269 11.2.9 三維音效設計原則…………272 11.3 三維視頻…………273 11.3.1 VideoPlayer組件………274 11.3.2 三維視頻播放實現…………277 11.3.3視頻音效空間化………280 第12章glTF與ModelViewer………281 12.1glTF概述…………281 12.2ModelViewer…………284 12.2.1ModelViewer使用實例…………285 12.2.2ModelViewer詳解…………288 12.2.3使用ModelViewer的注意事項………294 高級篇 第13章Android與Unity交互通信…………299 13.1Android與Unity通信原理…………299 13.2Unity直接調用Java代碼………302 13.3模塊調用…………312 13.4繼承UnityPlayerActivity類…………317 13.5AndroidJavaProxy類詳細講解………320 13.6訂閱Android廣播…………323 13.7調用so庫文件………328 13.8Android與Unity交互注意事項…………330 第14章設計原則…………334 14.1移動AR帶來的挑戰………334 14.1.1三維化思維………334 14.1.2用戶必須移動…………335 14.1.3要求手持設備…………335 14.1.4近臉使用…………336 14.1.5操作手勢…………336 14.1.6啟動應用…………337 14.1.7色彩運用…………337 14.2移動AR設計準則…………337 14.2.1有用或有趣………338 14.2.2虛實融合必須有意義………338 14.2.3移動限制…………338 14.2.4心理預期與維度轉換………338 14.2.5環境影響…………339 14.2.6視覺效果…………340 14.2.7UI設計………340 14.2.8沉浸式交互………340 14.3移動AR設計指南…………341 14.3.1環境…………342 14.3.2用戶細節…………343 14.3.3虛擬內容…………346 14.3.4交互…………352 14.3.5視覺設計…………357 14.3.6真實感………362 14.3.7三維音效…………367 第15章性能優化…………369 15.1性能優化基礎…………369 15.1.1影響性能的主要因素………369 15.1.2AR應用常用調試方法………371 15.1.3AR應用性能優化的一般原則……372 15.2AR應用性能調試工具…………373 15.2.1ARCore性能調試功能………373 15.2.2Unity分析器………375 15.2.3幀調試器…………379 15.2.4UPR分析器………380 15.3Unity分析器使用…………382 15.3.1CPU使用情況分析器………382 15.3.2渲染情況分析器………383 15.3.3內存使用情況分析器………383 15.3.4物理分析器………384 15.3.5音視頻分析器…………385 15.4性能優化流程…………385 15.4.1收集運行數據…………387 15.4.2分析運行數據…………388 15.4.3確定問題原因…………390 15.5渲染優化…………392 15.5.1渲染流程…………392 15.5.2CPU瓶頸…………393 15.5.3GPU瓶頸…………396 15.6代碼優化…………398 15.6.1內存管理…………398 15.6.2垃圾回收…………399 15.6.3對象池………404 15.6.4常見影響性能的代碼優化策略………405 15.7ARCore優化設置…………407 15.7.1UI/UX優化………407 15.7.2常用優化設置…………407 15.7.3AR應用開發的一般注意事項………408 參考文獻……………410 本書基于AR Foundation框架,采用URP渲染管線,講述利用ARCore進行Android平臺的AR應用開發,從AR技術概念、原理、理論脈絡到各功能技術點、Android與Unity交互通信、設計原則、性能優化,對ARCore應用開發中涉及的技術進行了全方位的講述,用語通俗易懂,闡述深入淺出。
本書共分三個部分:第一部分為基礎篇,包括第1章至第3章,從最基礎的增強現實概念入手,通過一個實例闡述了AR開發從軟硬件準備、開發環境搭建、工程設置、發布部署全流程,探討了AR Foundation框架的技術基礎、常用組件,并著重探索了ARCore功能特性和運動跟蹤原理;第二部分為功能技術篇,包括第4章至第12章,對ARCore功能特性各方面進行了詳細探索討論,從平面檢測、圖像檢測、人臉檢測到云錨點、光影特效等,全方位的進行了技術剖析、講解、演示。并對AR場景管理、圖像信息處理、3D文字聲頻視頻等實用功能進行了闡述和使用操作講解;第三部分為高級篇,包括第13章至第15章,主要闡述了Android與Unity交互通信、AR應用設計、性能優化相關主題,著力提升開發人員在AR應用開發時的實際應用能力和整體把握能力。 本書結構清晰、循序漸進、深淺兼顧,實例豐富,每個技術點都有案例,特別注重對技術原理和實際運用的講述,力圖解決讀者在項目開發中面臨的難點問題。 本書適合AR初學者、Unity開發人員、程序員、科研人員,也可以作為高校、大專院校相關專業師生的學習用書,以及培訓學校的培訓教材。 在元宇宙科技浪潮推動下,增強現實( Augmented Reality,AR)技術過去一年來受到了廣泛關注,并迅速成為科技巨頭和初創企業競先入局的科技賽道。客觀而言,元宇宙仍處于行業發展的初級階段,無論是底層技術還是應用場景,與預期的成熟形態相比仍有相當大差距,但這也意味著元宇宙相關科技和產業發展空間巨大。作為元宇宙中最核心的增強實現技術是實現虛實融合、新型人機交互模式的關鍵,必將在接下來的十年中獲得長足進步和發展。
AR技術是一種將虛擬信息與真實世界融合呈現的技術,其廣泛運用了人工智能、三維建模、虛實融合、智能交互、傳感計算等多種技術手段,將計算機生成的文字、圖像、三維模型、聲頻、視頻、動畫等虛擬信息模擬仿真后應用到真實世界中。 AR技術同時考慮了真實世界與虛擬信息的相互關系,虛實信息互為補充,從而實現對真實世界的增強。 ARCore是谷歌公司在前沿科技領域的重大技術布局,是一個高級 AR應用開發引擎,具備高內聚、易使用的特點,利用其開發 AR應用快捷高效。 ARCore運動跟蹤穩定性好,并且支持多傳感器融合(如深度傳感器、雙目相機),性能消耗低,有利于營造沉浸性更好的 AR體驗。 本書是《AR Foundation增強現實開發實戰(ARKit版)》的姊妹版,講述利用 ARCore進行 Android平臺的 AR應用開發,從 AR技術概念、原理、理論脈絡到各功能技術點、 Android與 Unity交互通信、設計原則、性能優化,對 ARCore應用開發中涉及的技術進行了全方位講述,旨在幫助開發者系統化掌握 AR開發的相關知識,建立 ARCore AR應用開發知識體系。 本書關注 ARCore功能特性的實際應用,但在講解技術點的同時對其原理、技術背景進行了較深入的探究,采取循序漸進的方式,使讀者知其然更能知其所以然,一步一步地將讀者帶入 AR應用開發的殿堂。 前置知識 本書面向 ARCore應用開發初學者和 Unity工程師,內容講述盡力采用通俗易懂的語言、從基礎入門,但仍然希望讀者能具備以下前置知識。 (1)熟悉 Unity引擎基本操作,掌握 Unity開發基本技能,能熟練進行一般性的模型導入導出、屬性設置、發布部署。 (2)熟悉 C#高級語言,掌握基本的 C#語法及常見數據結構、編碼技巧,對常見游戲對象代碼操作、事件綁定等有自己的理解。 (3)了解 Visual Studio開發環境,能進行基本的開發環境設置、功能調試、資源使用。 (4)了解圖形學。數字三維空間是用數學精確描述的虛擬世界,如果讀者對坐標系、向量及基本的代數運算有所了解會對理解 AR應用工作原理、渲染管線有幫助,但本書中沒有直接用到復雜的數學計算,讀者不用太擔心。 讀者群體 本書屬于技術類書,面向讀者人群如下:(1)高等院校及對計算機技術有濃厚興趣的專科學校學生。(2)對 AR技術有興趣的科技工作者。(3)向 AR方向轉行的程序員、工程師。(4)研究講授 AR技術的教師。(5)渴望利用新技術的自由職業者或者其他行業人員。 本書特色 (1)結構清晰。本書共分三個部分:第一部分為基礎篇,第二部分為功能技術篇,第三部分為高級篇。緊緊圍繞 ARCore開發,對其功能特性進行了全方位講述,并從實際應用角度闡述了 Android與 Unity交互通信、AR應用設計準則、性能優化等相關知識。 (2)循序漸進。本書充分考慮了不同知識背景讀者的需求,按知識點循序漸進,通過大量配圖、實例進行詳細講解,力求使讀者快速掌握 AR Foundation框架下的 ARCore開發。 (3)深淺兼顧。在講解 ARCore功能技術點時對其技術原理、理論脈絡進行了較深入的探究,用語通俗易懂,對技術闡述深入淺出。 (4)實用性強。本書實例豐富,每個技術點都有案例,注重對技術的實際運用,力圖解決讀者在項目開發中面臨的難點問題,實用性強。 源代碼 本書源代碼請掃描下方二維碼獲取: 本書源代碼 讀者反饋 盡管編者在本書的編寫過程中多次對內容、語言描述的連貫一致性和敘述的準確性進行審查、校正,但由于編者能力水平有限,書中難免存在疏漏,敬請讀者批評指正。 致謝 僅以此書獻給我的妻子歐陽女士、孩子妍妍及軒軒,是你們讓我一直保持昂揚斗志,一往無前,永遠愛你們,也感謝清華大學出版社趙佳霓編輯對本書的大力支持。 編者 2022年 4月 |