簡化AR體驗創作,Unity MARS Query系統程序化生成場景的原理

2021-01-15 網易

  Unity MARS的出現是為了幫助創作者們製作可適應環境的AR內容,我們希望解決AR開發者們面臨的幾個主要問題:如何精確地在現實中描繪內容、如何加快AR創作在各個環境下的迭代與測試時間()以及如何讓虛擬內容適應不同的環境。以上幾點都是與內容適應性相關的問題。

  Queries(查詢)是MARS解決內容適應性的一種手段。對於每一個(或一組)虛擬內容,在擺放進現實環境時,MARS都會發起一次單獨的query(查詢)指令——請求描述現實世界的、帶語義標籤的數據。Query由兩種大部分組成:

  一個或多個確定數據是否匹配查詢指令的條件

  一個或多個確定條件匹配後需要發生的行為

  每個查詢指令或由代理髮起、或由代理組發起,代表了虛擬內容與現實世界之間的連接。

  數據實體

  Unity MARS資料庫中的每一條數據都代表了用戶周圍環境中的一個部分,這些部分有各種形式,最為常見的有對象表面、人臉和圖像標記。

  Unity MARS資料庫:

  https://docs.unity3d.com/Packages/com.unity.mars@1.1/manual/MARSConcepts.html#the-mars-database

  每條數據都以稱為數據ID(data ID)的一串數字做區分,每條數據又能包含任意數量的特徵(traits),即帶名稱的特定數據類型。整個模型與實體組件系統(ECS)的概念相似,特徵相當於一個組件。

  數據使用

  每個代理都帶有稱作Exclusivity(排他性)的屬性,確定了代理使用匹配數據的方式,並限制了查詢指令訪問已經在使用的數據,確保每一條內容能匹配上相應的現實數據。

  Reserved(保留)表明代理可訪問的數據受限——數據不能由Shared(共享)或Reserved(保留)代理使用,在匹配之後,數據只能以只讀的方式被其他代理使用。

  Shared(共享)則表明代理不排他地使用數據——其他的Shared(共享)代理也可使用數據,代理在匹配之後可繼續使用數據。

  Read Only(只讀)表明可訪問的任意數據, 因為只讀本身就屬性聲明了代理不會「使用」匹配選項。

  在查詢指令匹配之後,所有匹配範圍內的代理都會被標記為「正在使用」某條數據,使用方式則由以上屬性確定。

  條件

  每個條件(Condition)都包含了特定數據的一個特徵,是確定匹配與否的評判標準。而在編寫條件時,根據位置或尺寸這類特徵數據來編寫要比根據表面或人臉這類可追蹤數據來編寫更好,因為同樣的條件可重複使用在具備相同特徵的數據上。

  我們以一個平面尺寸(Plane Size)條件為例。

  平面尺寸條件:

  https://docs.unity3d.com/Packages/com.unity.mars@1.1/manual/GettingStarted.html?_ga=2.160589439.39231630.1610343422-769532729.1591089650#adding-a-plane-size-condition

  條件需要包含一個「bounds2d(2d邊界)」特徵,來描述一塊可接受的二維邊框,好讓代理能搜尋到特定數據片段,特徵的數據類型為Vector2——即由兩個浮點數組成。該條件可用於檢測任何標記為「平面」、帶「bounds2d」特徵的數據,也適用於識別圖像標識。

  

  首先,MARS會去找帶有bounds2d特徵的數據,排除不符合最小與最大尺寸的那些。

  剩下符合特定邊框的數據會被打分——分數用來描述數據的匹配程度,範圍為0到1,0代表不匹配、1代表完美匹配。分數可以看作「匹配程度值」。而在平面尺寸條件中,邊框值靠近範圍中心的得分更高,靠近邊界的得分較低。

  如果某個代理有多個條件,數據要匹配就必須滿足所有的條件。並且每個條件的評分都會被綜合考慮,以測量代理與給定數據的匹配程度。

  比如,如果我們要添加一個Alignment(對齊)條件,規定代理測量的某個表面必須為水平、方向必須為向前,則該表面不僅要滿足前一個平面尺寸條件,還必須滿足對齊條件。

  系統會在考慮進所有條件後,計算出符合條件、評分最高的匹配數據。

  群組與關係

  包含於同個群組的代理必須同時匹配所有不同的數據,而不同代理之間存在有一定的關係(Relation)

  例如,水平高度(Elevation)關係描述了現實中水平高度可接受的差異範圍——在Unity中,水平高度是指Y軸上的距離;而這裡,一個匹配大平面的代理與一個小平面代理之間的距離就是兩者間的水平高度關係。

  

  關係的作用與條件類似,只不過它還會看雙方的關係條件是否也滿足。

  水平高度關係會檢測「姿態(Pose)」特徵來查找匹配選項的空間位置,確定相互之間是否處於可接受範圍內,然後為每個關係打評0到1的分數。與平面尺寸條件類似,接近範圍中間值的數據要更加理想。

  為了檢測每種關係在整個群組中的匹配狀況,組內所有所有的關係評分會被綜合考慮,每個群組的評分取平均值,與代理的條件相同。

  行為

  行為是指MARS在尋得匹配數據後所採取的操作。其與條件類似,以特徵數據作為觸發依據,但可以設定多個觸發所需的特徵數據。

  每個代理默認都帶有一個最簡單的行為,即設定姿態(Set Pose)行為。該行為類型為姿態(Pose)的pose特徵為依據——即在空間中的位置與朝向。行為可用於排除不帶姿態特徵的數據。

  在查詢到匹配對象後,Set Pose行為會接收對象的姿態參數,將虛擬內容放置到該位置上,匹配的查詢結果就會正確放置到環境中了()。

  

  優先級與衝突的解決

  我們可以為代理或代理組設定優先級,告訴系統高優先級的內容要比其他內容更為重要。共有五種優先級,從最低到最高,優先級默認為普通。

  在「解決衝突」階段,系統需要確定哪一個對象擁有優先訪問匹配數據的權力,而優先級就是首個評判因素。如果有多個代理將同一個數據ID視作最佳匹配數據,則MARS會查找擁有最高優先級的代理,將數據指定給它。如果優先級相同,則數據會被指定給評分最高的代理。

  群組圖表

  即使在一個簡單的代理組中,匹配過程也可能變得十分複雜。一個有效的流程分析方式是建立圖表。

  下方圖例中,代理組含有水平高度與距離關係。每一點代表了一個代理,每個箭頭代表了兩者之間的關係。

  

  群組匹配的問題用技術術語可表達為子圖同構搜索(subgraph isomorphism search)。系統並不僅僅會查找子圖表的匹配對象,而會在下方大圖表(又稱「搜索空間(search space)」)中查找最為匹配(評分最高)的實例。該大圖表則由搜尋而得的有效關係實例集合中派生而來。

  

  上方包含了所有要考慮的因素,而下方則為拆分出的特定關係。每個點代表了一個數據實體,而每個箭頭代表了兩個數據實體間距離或水平高度關係的一個有效實例。

  群組中更多的關係或組成部分會給匹配子圖加入更多考慮因素,圖表也就更加複雜。

  複雜情況的處理

  在為代理組找出數值最匹配的數據時,若組成員或數據集大小增加,則問題複雜度也會呈爆發式增長。而大型場景中的多個單獨代理在查詢時會被看作一個整體,所以複雜度的增長並不會那麼誇張。

  為了保證系統在複雜的查詢指令下能繼續運行、避免應用故障,系統會執行三種操作。

  首先,查詢請求的處理會被分成幾個階段,每一階段處理一小部分任務,整個任務會在較長時間段中鋪展開來。

  其次,系統會採取一種取近似策略,特別複雜的群組查詢其返回的結果將是可接受計算量之內所能求得的最佳答案。

  最後,系統會優先處理最為複雜、優先級最高的查詢請求,最大化求得高質量結果的可能。在同一次評估中,更複雜的查詢請求對匹配結果的影響要比其他請求更大。

  https://unity.cn/product/mars

  點擊關鍵詞

  獲取更多信息

  Unity 技術精講

  [1]

  [2]

  [3]

  [4]

  [5]

  

  Unity 官方微信

  第一時間了解Unity引擎動向,學習最新開發技巧

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺「網易號」用戶上傳並發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關焦點

  • Unity 2018.3 Beta版發布
    直播課程:Facial AR Remote面部捕捉解決方案課程(第一期)直播地址:https://connect.unity.com/events/unitychina-facialarUnity官方教師培訓報名火熱進行中Unity將在10月22-26日,舉辦為期5天的專業的Unity官方教師培訓課程,誠邀廣大教師與
  • 【大咖專欄】Unity AR Foundation 平面檢測實戰
    3.AR應用場景廣泛,包括:教育、醫療、購物、娛樂、傳媒、旅遊、軍事等。在需要平面檢測,面積計算這樣的AR應用場景,國內老牌的EasyAR已不能滿足需求。Unity為了更好的支持遊戲開發中應用AR技術,抽象了UnityAR Foundation框架,實現「構建一次,多平臺部署」。無疑UnityAR Foundation已成為Unity中開發AR應用的首選框架。
  • 蒙特卡洛模擬法計算VaR的場景生成技術
    部分未聯繫到作者和原始出處的文章,請原作者聯繫506743560@qq.com或直接在公眾號留言,或致電15034081448,「私募工場」會在第一時間處理。一個場景是所有風險因子的表現序列。歷史場景是指風險因子在歷史上某天的實際表現,隨機場景則是計算機隨機模擬生成的。通
  • Unity推出的AR Foundation能幫助使用者解決AR開發過程中遇到的難題
    複製 arfoundation-samples GitHub 資源庫,並留意主分支。這個項目將自動安裝以下必需軟體包:AR Foundation、ARCore XR Plugin 和 ARKit XR Plugin。 打開SampleScene.unity,並部署到兼容的安卓或iOS設備。
  • 2020谷歌開發者大會:AR軟體工程總監介紹ARCore最新動態
    首先,王啟文強調了AR作為一種視覺沉浸式媒介,能夠吸引人們的注意力,是一種體驗信息的新方式,並最終推動用戶的行動。而谷歌發布於2018年的ARCore是AR開發者平臺,提供了簡單而強大的工具,為Android和iOS用戶創造有效的AR體驗。目前已被應用在7億臺設備和成千上萬款app上,並且已獲得一些更新。
  • 使用Unity 粒子系統實現 2D 人物足跡效果
    之後深入一想腳本大概要怎麼寫,感覺頭大的不行,又想到了 Hierarchy 裡面被 FootStep12345678 塞得滿滿當當的壯麗場面..還是換個方法吧 轉念一想:unity 的粒子系統似乎可以滿足所有特性:生成淡出銷毀全自動,跟隨人物也是基本操作,比較存疑的就是用腳本控制粒子的鏡像與旋轉。
  • Unity 實用技巧 - 物理系統初識
    06  Physics Debug Visualization(可視化物理調試工具)可視化物理調試允許您快速檢查場景中的碰撞幾何,並分析常見的物理場景。當場景中有許多Colliders,或者Render和Collision Meshes不同步時,這是特別有用的。
  • Unity 最新版本迎來260項功能改進,高清渲染管線HDRP升級
    https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@8.0/manual/Feature-Comparison.html藝術家工具渲染管線若達到成品級,意味著它有各式工具來協助藝術家創作。
  • Spark AR 統整特效發布
    我們仍致力於改善您的發布體驗,Spark AR Hub【4】中推出的一些新功能都旨在幫助你簡化發布、管理和分析AR特效效果的方式。 統整特效發布 現在你可以一次性提交特效,並在獲得批准後,即可將特效同時發布在 Facebook 和 Instagram 上。
  • 【AR研究】第一集—AR的基本原理科普
    在2009年2月的TED大會上,帕蒂•梅斯(Pattie Maes)和普拉納夫•米斯特萊(Pranav Mistry)展示了他們研發的AR系統。該系統屬於麻省理工學院媒體實驗室流體界面小組的研究成果之,他們稱之為SixthSense(第六感)。它依靠眾多AR系統中常見的一些基本元件來工作:攝像頭、小型投影儀、智慧型手機和鏡子。
  • Unity3D 尋路系統
    一、尋路方式二、實現尋路方法確定尋路者烘培尋路路面程序實現尋路算法1、實現尋路步驟將場景中不動的物體勾選
  • VR和AR的未來發展
    vr/ar的應用什麼是虛擬實境?虛擬實境技術(vr)是一種能夠創造和體驗虛擬世界的計算機仿真系統,它使用計算機生成一個模擬環境,它是多源信息融合、交互式三維動態場景和實體行為的系統仿真,使用戶能夠沉浸在環境中,什麼是AR?
  • 日本大阪醫學院研發AR整容輔助系統
    文章相關引用及參考:sciencedaily基於8份測試的初步體驗表明,增強現實可能是規劃,執行和評估面部重建和其他重建手術結果的有用指南(映維網 2017年08月30日)日前一支研究團隊開發出了一種增強現實系統,可允許他們創建面部整形/面部重建預期結果的3D模擬,
  • 大世界遊戲製作:《幽靈行動·荒野》程序化技術介紹
    使用程序工具自《幽靈行動:未來戰士》以來,我們一直在這裡試驗程序化方法。我製作的第一個工具只是幫助藝術家放置電線。藝術家正在導出一條曲線,然後再調整一下參數,就能在幾秒鐘內生成線杆和電線。然後,我們進一步推進這種程序化邏輯到地形編輯環節,我們自動生成道路,並且添加細節和生成UV,同時凹陷地形做相應的匹配。
  • 最新專利|蘋果展示VR/AR設備光學顯示系統,無縫連接VR或AR頭顯
    蘋果申請新專利,研發VR/AR設備光學顯示系統昨日,美國專利商標局公布了蘋果申請的一項專利,該專利展示了一套「頭戴式光學顯示系統」。專利中詳細地描述了這套光學系統的運作原理,並指出該系統既可用於VR頭顯,也可用於AR頭顯。
  • 2020 Google開發者大會:AR技術大神講解ARCore深度API運作方式
    之前Google大中華區ar/vr負責人熊子青也曾講述,ARCore是Google為安卓平臺製作的AR開發平臺,目前在全球支持超過5億臺設備。其核心能力是運動追蹤、環境理解和光估測。現在已經有很多APP使用ARCore製作出各種各樣的豐富體驗。
  • 百度大腦攜文心、智能創作、AR和VR參加融交會
    一年多以來,已累計服務20多家媒體機構,生成的文章200萬+、自動創作短視頻15萬+,服務媒體、金融、營銷等不同行業的內容創作、生產需求,旨在成為更懂您的智能創作助手。而憑藉智能化感知和交互式輸出的特點,AR也為智能景區、智慧文旅等眾多行業場景的解決方案提供了重要支撐。隨著文化產業的蓬勃發展,將迎來一批AR技術落地應用。
  • 第二章:AR的工作原理
    在介紹AR的工作原理之前,我們先通過一個例子,讓大家有一個簡單的認識。在2009年2月的TED大會上,帕蒂•梅斯(Pattie Maes)和普拉納夫•米斯特萊(Pranav Mistry)展示了他們研發的AR系統。該系統屬於麻省理工學院媒體實驗室流體界面小組的研究成果之,他們稱之為SixthSense(第六感)。
  • TipsWorks丁成甲:《帕斯卡契約》的創作與美術表現
    本期分享會我會以遊戲製作的角度來介紹一下《帕斯卡契約》的創作流程,展示一下在創作《帕斯卡契約》中,我們經歷了哪些階段,最後我會舉一些遊戲中的例子來解析一下遊戲中的美術表現與優化。項目初期首先我要介紹一下我們項目,最早的時候是使用unity來製作的一款動作角色扮演項目,最開始我們用的是unity的5.6版本,後來到我們升級到unity 2018,從2016年開始研發,大概三年的研發周期。製作人員大概從第一年有10個人,一點一點擴大,到最後一年我們大概30個人,整個項目95%的資源都是自己產出的。
  • 使用unity製作RPG遊戲3——2D精靈
    context=%7B%22nid%22%3A%22news_9564882242542237691%22%2C%22sourceFrom%22%3A%22bjh%22%2C%22url_data%22%3A%22bjhauthor%22%7D下面需要利用Tiled2Unity把01地圖導入unity下載Tiled2Unity,在根目錄下打開可執行文件進入unity。