Unity基礎:AR(增強現實)的學習


版權申明:

  • 本文原創首發於以下網站:
  1. 博客園『優夢創客』的空間:https://www.cnblogs.com/raymondking123
  2. 優夢創客的官方博客:https://91make.top
  3. 優夢創客的游戲講堂:https://91make.ke.qq.com
  4. 『優夢創客』的微信公眾號:umaketop
  • 您可以自由轉載,但必須加入完整的版權聲明!

AR

  • AR的應用

    • 掃描並視頻展現 //輸入是一幅圖像
    • 掃描並3d展現
  • AR設備:
    -掃描:手機攝像頭
    -展現:手機屏幕

  • MR設備:
    -hololens

    • 掃描:眼鏡
    • 展現:全息影像投影在眼鏡上
  • AR軟件SDK:
    -voforia
    -FasyAr
    -HiAr //我們學習的

  • unity中的特殊文件夾
    -Editor 對unity菜單進行拓展
    -Resource 動態加載資源
    -Plugins 所有的插件
    -StreamingAssets 從網絡下載的資源

  • 上傳圖片

  • 打包成圖集(HIAR完成)

  • 下載打包后的圖集(unity package)

  • 將圖集作為插件導入unity

  • 也可以直接在網站上創建個空的應用,以獲取Appkey和Secret,並使用插件自帶的圖片資源,位置在Assets\Editor\HiAR\ImageIargetTexures\Sample(需要ctrl + o在文件目錄中預覽, unity中無法直接預覽)

  • 導入SDK

  • 創建HiARCamera

  • 添加ImageTarget //識別圖的預制體

  • 設置Image Target中Image Target Behaviour使用的圖集 Target Group,並設置我們需要識別的圖片Image Target

  • 在Image Target下添加我們識別之后要表現的物體

  • 當圖片被識別后,就根據圖片顯示的角度與位置動態調整Image Target的位置,此時作為子節點的位置,對應位置也會實時變化,實現AR效果

  • 在Image Target下添加Animation 添加Video player等東西都可以播放 顯示

  • 多圖識別:

  • 在HI AR Engine Behaviour中勾選MultiTarget 並可以指定最多可識別的imageTarget

  • 然后就可以創建多個ImageTarget進行選擇需要識別的圖像和表現形式

  • 動態加載:

  • 使用TargetDynamic組件

  • 從外部加載識別圖(本地文件或網絡下載)

  • 在TargetDynamic組件中使用AddTmageTarget()動態加載圖片資源

  • 如:

void OnGUI()
{
if (GUI.Button(new Rect(30, 30, 200, 80), "Add Key"))
{
AddTmageTarget(System.IO.path.Combine(Application.streamingAssetsPath, "HiAR/sample"), "e58931", 854, 480);
}
}
  • 然后動態加載的圖片就可以作為一個被識別圖識別,然后在OnDynamicReco的回調中實時識別后的操作(新建一個cube設置為該TargetDynamic組件的子節點就可以跟着動了) //TargetDynamic本身就是一個Image Target

  • 設置中心點 //將taget固定到一個位置,使重力方向始終向下

  • 在Image Target Behaviour中選擇Center pointer,該ImageTarget就可以成為中心,與重力方向垂直,在unity中就不會隨着識別的圖片移動,在一些需要物理應用的場景中使用(如小球彈起降落,視頻播放等)

  • 塗塗樂:

  • 在ImageTarget下添加我們要表現的場景(一條魚fish),指定ImageTarget識別的圖片

  • 在fish上添加HiAR/HiARPaint(設置shader),添加Hi AR Paint的腳本並指定current Material為Fish的材質 //這步就相當於把小孩子畫的部分作為一個shader,然后當做了fish的meterial

  • shader 着色器 把圖像上繪制的部分作為紋理貼到模型上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM