本申請涉及虛擬現實(virtual?reality,vr),提供一種虛擬環境中的投屏顯示方法及vr設備。
背景技術:
1、vr設備通過給用戶帶來身臨其境般的沉浸式體驗,現已廣泛應用在各行各業,如教育培訓、消防演練、虛擬駕駛、房地產等。隨著vr設備的廣泛應用,沉浸式體驗已深受用戶喜愛,用戶可通過vr投屏技術,將傳統顯示設備(如pc機、電視、手機、平板等)中的2d畫面投放到vr設備的3d虛擬空間中進行播放。
2、目前,基于安卓(android)系統的多窗口顯示功能,vr設備支持同時投放多個顯示設備的屏幕畫面,用戶能夠在虛擬環境中對多個窗口進行交互,實現vr多屏互動。通過vr投屏,用戶可以全沉浸式的玩游戲、看電影、辦公等。
3、然而,androdi系統的多窗口顯示,是針對已經安裝好的應用程序實現的,相當于多窗口是提前已經定義好的,這樣,投屏過程中,當有用戶退出或有新用戶加入時,窗口的數量無法進行動態調整,且投屏過程中用戶視角可能發生變化,已定義好的多窗口無法滿足虛擬環境中動態調整的需求。
技術實現思路
1、本申請實施例提供了一種虛擬環境中的投屏顯示方法及vr設備,用于提高2d屏幕到3d空間投屏的靈活性。
2、一方面,本申請實施例提供一種虛擬環境中的投屏顯示方法,應用于vr設備,所述vr設備與至少一個顯示設備建立投屏連接,所述方法包括:
3、獲取投屏的顯示設備的初始數量,并根據所述初始數量修改安卓系統的內核參數以設置用于顯示每個顯示設備發送的屏幕數據流的進程數量,以使每個屏幕數據流對應一個進程,所述進程數量用于控制所述投屏窗口的數量;
4、根據所述投屏窗口的數量和各顯示設備的位置點,確定每個顯示設備在所述vr設備的顯示區域內對應的投屏窗口的初始位置;
5、當顯示設備的數量發生變化或者用戶視角變化時,重新確定每個顯示設備對應的投屏窗口的目標位置;
6、調用至少一個進程分別將各顯示設備發送的屏幕數據流存儲的內存中,根據內存中的各屏幕數據流,在各顯示設備對應目標位置的投屏窗口上進行紋理繪制并顯示;
7、獲取當前用戶視點,將各投屏窗口中所述當前用戶視點所在的至少一個目標窗口進行放大顯示。
8、另一方面,本申請實施例提供一種vr設備,包括處理器、存儲器、顯示器和通信接口,所述通信接口、所述顯示器、所述存儲器和所述處理器通過總線連接;
9、所述通信接口用于與至少一個顯示設備建立投屏連接;
10、所述存儲器存儲有計算機程序,所述處理器根據所述計算機程序,執行以下操作:
11、獲取投屏的顯示設備的初始數量,并根據所述初始數量修改安卓系統的內核參數以設置用于顯示每個顯示設備發送的屏幕數據流的進程數量,以使每個屏幕數據流對應一個進程,所述進程數量用于控制所述投屏窗口的數量;
12、根據所述投屏窗口的數量和各顯示設備的位置點,確定每個顯示設備在所述vr設備的顯示區域內對應的投屏窗口的初始位置;
13、當顯示設備的數量發生變化或者用戶視角變化時,重新確定每個顯示設備對應的投屏窗口的目標位置;
14、調用至少一個進程分別將各顯示設備發送的屏幕數據流存儲的內存中,根據內存中的各屏幕數據流,在各顯示設備對應目標位置的投屏窗口上進行紋理繪制,并通過所述顯示器進行顯示;
15、獲取當前用戶視點,將各投屏窗口中所述當前用戶視點所在的至少一個目標窗口進行放大顯示。
16、另一方面,本申請實施例提供一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機可執行指令,所述計算機可執行指令用于使計算機設備執行本申請實施例提供的一種虛擬環境中的投屏顯示方法的步驟。
17、本申請實施例提供的一種虛擬環境中的投屏顯示方法的有益效果如下:
18、基于安卓系統對多窗口的支持,當至少一個顯示設備同時向vr設備進行投屏時,根據顯示設備的初始數量修改安卓系統的內核參數,從而開啟控制投屏窗口數量的多個進程,并通過slam空間定位技術,對每個顯示設備對應的投屏窗口進行定位,從而實現投屏窗口的動態創建和控制,提升多屏顯示的靈活性。并且,在投屏過程中,當顯示設備的數量或者用戶視角發生變化時,會重新定位每個顯示設備對應的投屏窗口的目標位置,實現視野范圍內窗口的動態調整,保證用戶的最佳觀看效果,同時,對當前用戶視點所在的至少一個目標窗口進行了突出顯示,以便用戶更方便的觀看投屏內容,提升用戶的沉浸式體驗。
19、本申請的其它特征和優點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本申請而了解。本申請的目的和其它優點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。
1.一種虛擬環境中的投屏顯示方法,其特征在于,應用于vr設備,所述vr設備與至少一個顯示設備建立投屏連接,所述方法包括:
2.如權利要求1所述的方法,其特征在于,所述當顯示設備的數量發生變化或者用戶視角變化時,重新確定每個顯示設備對應的投屏窗口的目標位置,包括:
3.如權利要求1所述的方法,其特征在于,每個顯示設備錄制的屏幕數據流對應一個surfaceflinger,每個surfaceflinger中包含一個surface,每個屏幕數據流的顯示作為所述vr設備投屏服務中的一個軟件客戶端,在應用層對應一個用于紋理繪制的texture框架;
4.如權利要求1-3中任一項所述的方法,其特征在于,所述內核參數至少包括min_free_kbytes參數和oom_adj參數。
5.如權利要求1-3中任一項所述的方法,其特征在于,各投屏窗口的位置是通過以下方式確定的:
6.一種vr設備,其特征在于,包括處理器、存儲器、顯示器和通信接口,所述通信接口、所述顯示器、所述存儲器和所述處理器通過總線連接;
7.如權利要求6所述的vr設備,其特征在于,當顯示設備的數量發生變化或者用戶視角變化時,所述處理器重新確定每個顯示設備對應的投屏窗口的目標位置,具體操作為:
8.如權利要求6所述的vr設備,其特征在于,每個顯示設備錄制的屏幕數據流對應一個surfaceflinger,每個surfaceflinger中包含一個surface,每個屏幕數據流的顯示作為所述vr設備投屏服務中的一個軟件客戶端在應用層對應一個用于紋理繪制的texture框架;所述處理器調用至少一個進程分別將各顯示設備發送的屏幕數據流存儲的內存中,根據內存中的各屏幕數據流,在各顯示設備對應目標位置的投屏窗口上進行紋理繪制,并通過所述顯示器顯示,具體操作為:
9.如權利要求6-8中任一項所述的vr設備,其特征在于,所述內核參數至少包括min_free_kbytes參數和oom_adj參數。
10.如權利要求6-8中任一項所述的vr設備,其特征在于,所述處理器通過以下方式確定各投屏窗口的位置: