關於模型抖動解決方案

在使用vuforia或者其他AR SDK做AR項目的時候,經常會遇到模型抖動的問題。當然,在你不是因爲手抖而出現這個問題得前提下,根據我的理解簡單說一下如何解決這個問題。

對於AR項目來說最主要的就是對美術的優化,這也是我最常用的解決辦法,有問題全交給美工來解決偷笑模型面數的控制。對於手機一個角色約300–1500面。貼圖儘量控制使用一張圖片,比如在製作模型時,建議將模型以一棟建築爲模型進行塌陷,接着對模型進行UV拆解,這樣可以將一個模型使用的一張貼圖來完成。進行項目優化之後,模型的抖動和識別錯誤問題會有改善。這是一個最初級的解決方案

首先在unity3d中的優化主要包括

第一,你得優化美術,減少模型面數。 

第二,你可以採用剔除遮罩技術,也就是傳說中的Occlusion Culling 技術。 

第三,你可以在unity中烘焙場景,優化燈光。 

第四,你可以自己人工的去寫lod腳本,相機離角色多大距離內就加載成模型遠了就成貼圖。 

第五,你可以採用腳本分房間或者分區域加載,走到a房間就加載a房間的對象,否則全部active=false,加載的瞬間會卡,你可以寫異步加載。

其次,抖動一直是AR實現探討的問題,主要和兩方面有關:識別算法和識別圖質量。底層算法的識別定位有關,但是用了人家的sdk,這個是沒法改變的只有跟着走,另一個有很大關係的就是識別圖的質量,就是特徵點的數量,這點是我們可以改變的,但是有些狀況也很難避免識別出來的模型抖動問題,比如現場實時識別,採集的現場識別圖質量在高,在現場由於光線和角度的差別,模型會在不停的抖動,由於項目需要,不得不解決這個問題,當前面兩點(算法,識別圖)都不能改變的情況下,那就要通過人的視覺,怎麼讓人看上去達到接受的效果,在計算機圖形學基本原則裏面,有這麼一條:看上去是真的那就是真的。以此提出了相應的解決方案: 
解決思路大致是這樣:讓其緩動吻合而不是抖動,這裏主要用到world center mode 參數和捕獲ImageTarget實時位置,注意由於是要增強物吻合ImageTarget,所以不能像高通案例那樣把需要識別出來的對象作爲ImageTarget的子物體,獲取ImageTarget的時時位置,把它賦值給虛擬物體,如果工程裏面有多個imagetarget你就要想辦法判斷是哪個imagetarget被識別出來,賦值給對應的虛擬物體.



發佈了39 篇原創文章 · 獲贊 85 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章