本發明涉及虛擬現實技術領域,特別是一種游戲引擎混合現實拍攝方法。
背景技術:
混合現實技術(MR)是虛擬現實技術的進一步發展,該技術通過在虛擬環境中引入現實場景信息,在虛擬世界、現實世界和用戶之間搭起一個交互反饋的信息回路,以增強用戶體驗的真實感。一般有硬件部分和軟件部分組成,其中,硬件部分包括跟蹤系統、計算機和攝像機;軟件部分首先通過游戲引擎和跟蹤系統獲取實際相機跟蹤信息;然后通過引擎輸出虛擬物體畫面;并通過第三方軟件采集拍攝畫面,以及通過第三方軟件對拍攝畫面進行摳像最后再通過第三方軟件合成虛擬畫面與拍攝畫面。但是這種方法必須要使用第三方軟件進行拍攝畫面的摳像與合成,因此導致功能性受第三方軟件限制,無法與游戲引擎進行深度信息傳遞,以至于摳像效果簡單,整體色彩不統一,兩方畫面延遲無法準確匹配。游戲引擎輸出幀率與采集幀率無法完全統一,照成畫面抖動。
因此,需要一種在游戲引擎中能使拍攝畫面與游戲虛擬畫面準確匹配的拍攝方法。
技術實現要素:
本發明的目的是提出一種游戲引擎混合現實拍攝方法;該方法能在游戲引擎中使拍攝畫面與游戲虛擬畫面進行準確匹配。
本發明的目的是通過以下技術方案來實現的:
本發明提供的游戲引擎混合現實拍攝方法,包括以下步驟:
S1:通過跟蹤系統獲取實際相機跟蹤信息;
S2:抖動優化處理和延遲優化處理跟蹤信息數據;
S3:生成虛擬攝像機并根據虛擬三維場景模型獲取虛擬場景畫面;
S4:采集實際拍攝畫面數據;
S5:對采集的畫面數據進行摳像處理;
S6:結合虛擬攝像機中的虛擬相機坐標對摳像處理后的畫面數據進行動態空間切割;
S7:根據采集的實際拍攝畫面數據和虛擬場景畫面來校準實際拍攝相機與跟蹤點的位置;
S8:合成采集的實際拍攝畫面數據與虛擬場景畫面。
進一步,所述對跟蹤信息進行數據抖動優化的具體步驟如下:
S21:設置第一抖動閥值和第二抖動閥值;
S22:獲取跟蹤點當前幀位置信息和上一幀位置信息;
S23:將當前幀位置信息和上一幀位置信息進行相減得到偏移值;
S24:判斷偏移值是否大于第一抖動閥值,如果是,則設置第二抖動閥值2為0;
S25:如果否,則設置第二抖動閥值2為1;
S26:判斷偏移值是否大于第二抖動值,如果是,則設置跟蹤點當前幀位置信息為當前幀位置信息;如果否,則設置跟蹤點當前幀位置信息為上一幀位置信息。
進一步,所述對跟蹤信息進行數據延遲優化的具體步驟如下:
S31:設置延遲時間X:
S32:創建用于記錄當前幀跟蹤點位置信息的數組;
S33:獲取當前幀跟蹤點旋轉值和位移值;
S34:在數組中存儲當前幀跟蹤點旋轉值和位移值;
S35:通過偏移值讀取相應時間位移和旋轉值,進行LERP插值計算,計算兩幀之間的插值;
S36:設置當前虛擬攝像機的位置和旋轉為當前計算結果。
進一步,所述動態空間切割的具體步驟如下:
S61:獲取拍攝摳像后的畫面;
S62:獲取當前相機定位信息并建立虛擬攝像機;
S63:創建虛擬綠布模擬試卷空間中的綠布范圍;
S64:渲染出動態綠布范圍遮罩;
S65:進行對圖像進行減法計算,去除綠布范圍以外拍攝內容;
S66:輸出計算后畫面。
進一步,所述校準實際拍攝相機與跟蹤點的位置的具體步驟如下:
S71:在獲得跟蹤點位置旋轉數據;
S72:構建與當前幀相關的物體的子物體;所述子物體為跟隨父級運動的偏移物體;
S73:設置偏移物體的相對六軸偏移值;
S74:將偏移物體作為虛擬相機的擺放位置。
由于采用了上述技術方案,本發明具有如下的優點:
本發明在游戲引擎中完全整合了MR所需的所有功能,并進行了深度優化,完全擺脫第三方軟件的使用。解決了混合現實在引擎與第三方軟件無法精確配合造成的問題。通過調整跟蹤點位置偏移信息來精確匹配物理相機;通過調整延遲屬性來精確匹配畫面延遲;通過調整抖動閥值來去除靜止狀態下的硬件物理抖動;對采集畫面與三維虛擬畫面同時更新,避免幀率不統一問題。
同時,通過精確調整摳像數值以去除黑邊與綠色溢出,實時采集視頻畫面無任何丟幀現象;通過動態切割采集畫面去除綠布范圍外拍攝物體,達到360無死角拍攝,無需第三方軟件支持。
本發明的其他優點、目標和特征在某種程度上將在隨后的說明書中進行闡述,并且在某種程度上,基于對下文的考察研究對本領域技術人員而言將是顯而易見的,或者可以從本發明的實踐中得到教導。本發明的目標和其他優點可以通過下面的說明書來實現和獲得。
附圖說明
本發明的附圖說明如下。
圖1為游戲引擎混合現實系統圖。
圖2為數據抖動優化流程圖。
圖3為數據延遲優化流程圖。
圖4動態空間切割流程圖。
圖5為位移補償示意圖。
圖6為位移補償調整示意圖。
具體實施方式
下面結合附圖和實施例對本發明作進一步說明。
實施例
如圖1所示,本實施例通過提供游戲引擎混合現實拍攝系統來實現拍攝方法,該系統包括拍攝用攝像機、跟蹤定位系統和計算機;游戲引擎混合現實拍攝方法,包括以下步驟:
S1:通過跟蹤系統獲取實際相機跟蹤信息;
S2:抖動優化處理和延遲優化處理跟蹤信息數據;
S3:生成虛擬攝像機并根據虛擬三維場景模型獲取虛擬場景畫面;
S4:采集實際拍攝畫面數據;
S5:對采集的畫面數據進行摳像處理;
S6:結合虛擬攝像機中的虛擬相機坐標對摳像處理后的畫面數據進行動態空間切割;
S7:根據采集的實際拍攝畫面數據和虛擬場景畫面來校準實際拍攝相機與跟蹤點的位置;
S8:合成采集的實際拍攝畫面數據與虛擬場景畫面。
如圖2所示,其中,針對跟蹤信息進行數據抖動優化時,設置兩個抖動閥值實現雙重判斷抖動目標。
首先,獲取跟蹤點當前幀位置信息,與上一幀位置信息進行相減得到偏移值,當偏移值大于抖動閥值1時,設置抖動閥值2為0;當偏移值小于抖動閥值1時,設置抖動閥值2為1;其中,抖動閥值2為0時反饋當前的跟蹤點位置信息,抖動閥值2為1時,設置當前跟蹤點位置信息為上一幀位置。因此,設置雙重抖動閥值可以以較小的抖動閥值控制大范圍的抖動移動。
本實施例中針對跟蹤信息進行數據延遲優化時,設置延遲時間參數,需要實時記錄5秒內的移動數據在數組中,針對相機拍攝畫面的延遲調整整體位移延遲時間,以匹配拍攝畫面。
依次記錄當前幀的跟蹤點位置信息到數組中,
獲取延遲時間參數,每增加1,則為時間偏移1幀;
因為有可能出現小數點的情況,所以需要獲取當前選擇幀的位置信息和上一幀的位置信息進行插值計算,得到準確目標位置信息;
賦予虛擬攝相機當前目標位置信息。
如圖3所示,本實施例提供的數據延遲優化處理具體過程如下:
首先創建數組POS記錄位移信息,長度為30*5,每秒30幀,一共150幀;創建數組ROT記錄旋轉信息,長度為30*5,每秒30幀,一共150幀;創建整數N=0為當前數組序列編號
然后獲取當前幀跟蹤點旋轉值和位移值;設置POS,ROT數組中第N個數字為當前位移旋轉值;
如果N的值小于數組長度150,N=N+1,否則N=0,用于循環記錄數組數值,記錄超過150幀便從頭開始覆蓋記錄;
最后根據設置的延遲時間X結合記錄當前時間為N,通過偏移值讀取相應時間位移值和旋轉值,X為浮點數值,進行LERP插值計算,計算兩幀之間的插值;設置當前虛擬攝像機的位置和旋轉為當前計算結果。
如圖4所示,本實施例中通過精確調整摳像數值以去除黑邊與綠色溢出,實時采集視頻畫面無任何丟幀現象;通過動態切割采集畫面去除綠布范圍外拍攝物體,具體如下:
首先接收視頻采集數據;跟蹤實際相機運動數據;然后在虛擬環境中搭建同等比例綠(藍)布,和在虛擬環境中計算實際綠(藍)布范圍;最后通過建立一個虛擬攝像機,拾取現實相機運動軌跡,實時渲染虛擬環境中的綠(藍)布,以此作為通道儲存在內存中。
去除實際拍攝素材中綠布范圍外內容,針對實際摳像后的素材再減去內存中實時計算的綠(藍),布范圍得到一個去除綠(藍)布范圍以外的圖像數據。
如圖5和6所示,圖中,11為現實拍攝環境、111為現實定位手柄、112為現實攝像機、113為現實相機跟蹤定位點、12為虛擬三維環境、121為虛擬定位手柄、122為虛擬攝像機、123為跟蹤定位點反饋位置坐標信息;在現實拍攝環境11中兩物體之間有相對位置偏差,在虛擬三維環境12需要設置相應補償值來匹配現實攝像機所在位置。
21為虛擬手柄、22為實際相機拍攝手柄、23為顯示屏幕;其中,實際相機拍攝手柄22需要通過畫面確定偏移大小,以調整虛擬相機的位置進行匹配。
本實施例中在校準實際拍攝相機與跟蹤點的位置時,由于跟蹤點與相機有距離差距,所以需要計算補償距離。在獲得跟蹤點位置旋轉數據后需要在此物體的子物體下新建一個偏移物體,跟隨父級運動,設置此偏移物體的相對六軸偏移值,使用此偏移物體作為虛擬相機的擺放位置,以精確匹配物理相機。合成最終采集畫面與虛擬物體畫面,在采集更新完畢后同時更新虛擬畫面,可以做到畫面同步更新,避免幀率不統一照成的抖動問題。
本實施例中的主要由三個模塊組成摳像處理包括摳像處理、邊緣處理和顏色處理三部分,分別通過摳像模塊、邊緣模塊和顏色模塊三個模塊來進行,通過整合可以實現實時摳像無黑邊、去除綠色和色彩溢出的功能。
摳像模塊的摳像處理由摳像模塊接受圖像數據并通過設置控制變量用來控制摳像效果,控制變量分別為摳像范圍參數控制、摳像強度參數控制、摳像藍色補償參數控制。
邊緣模塊通設置邊緣縮進強度、邊緣模糊度、邊緣分散度三個控制變量來控制邊緣處理效果。接收由摳像模塊處理好的摳像圖像數據,然后再通過模糊算法模糊整體圖像,針對每預設范圍內的像素進行計算,看限定模糊范圍在10像素以內。
通過得到的模糊圖片進行反相再減去原始沒有模糊的圖像則得到一個有模糊的邊緣,通過對此邊緣的多次疊加控制強度得到完整邊緣,再通過原始圖像減去邊緣圖像達到去除黑邊的目的。
顏色模塊用于去除綠色溢出,通過針對輸入圖像數據的RGB通道進行處理圖像像素,如果當前像素的綠色通道數值大于紅色和藍色的平均值,則此綠色通道的數值改為紅色和藍色的平均值;否則不變。
最后說明的是,以上實施例僅用以說明本發明的技術方案而非限制,盡管參照較佳實施例對本發明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發明的技術方案進行修改或者等同替換,而不脫離本技術方案的宗旨和范圍,其均應涵蓋在本發明的保護范圍當中。