本文涉及計算機系統、計算機圖形及人機交互,尤其涉及一種多任務系統中渲染三維內容的方法、裝置及設備。
背景技術:
1、在xr等的多任務系統中,支持同時運行多個任務(即多個進程)。每個進程的內部完成對象的邏輯處理和渲染,并將每一幀渲染得到的圖像發送給系統,由系統內的合成器對多個進程發送的圖像進行合成,形成最終的畫面顯示在屏幕上。在二維多任務系統中,此方式可以很好的將渲染壓力分散給各個進程,在系統可以通過平面遮擋關系進行渲染方面的優化,比如被其他進程遮擋的部分不進行渲染,只渲染、傳輸可見區域,從而節約渲染資源降低傳輸帶寬壓力。但是當進程和系統都是三維場景時,如在xr眼鏡中的三維多任務效果,每個進程的內容都是一個三維場景,系統最終合成的場景也是三維的。在xr三維環境中,用戶的畫面的分辨率要求較高,各進程需要根據用戶的分辨率要求對渲染對象進行渲染,生成高分辨率的圖像,并將高分辨率的圖像發送給系統,這造成了巨大的傳輸帶寬壓力,增加了傳輸延遲,并浪費了部分渲染資源。高傳輸帶寬壓力及傳輸延遲降低了xr系統的顯示畫面的質量和用戶體驗,同時增加了xr設備的功耗。
2、現在亟需一種多任務系統中渲染三維內容的方法,從而解決現有的三維多任務渲染技術中存在應用和系統間傳輸帶寬壓力大、傳輸延遲高、渲染資源緊張的問題。
技術實現思路
1、為解決現有技術中存在的問題,本文實施例提供了一種多任務系統中渲染三維內容的方法、裝置及設備,應用負責根據應用邏輯,生成渲染對象的渲染指令,然后將渲染指令發送給系統,由系統根據渲染指令對渲染對象進行渲染,此方法可以減少應用和系統之間的數據傳輸壓力,降低傳輸延遲,提高xr系統的雙目畫面的質量和用戶體驗。
2、為了解決上述技術問題,本文的具體技術方案如下:
3、一方面,本文實施例提供了一種多任務系統中渲染三維內容的方法,應用于支持顯示三維內容設備多任務系統中,由支持顯示三維內容設備多任務系統中的應用執行,所述方法包括:
4、根據應用邏輯,生成渲染對象的渲染指令,所述渲染指令用于指導生成渲染對象的渲染圖像;
5、將所述渲染指令發送給系統,以便于所述系統根據接收到的多個應用發送的渲染指令對多個應用的渲染對象進行渲染,得到包含多個應用的渲染對象的渲染畫面。
6、進一步地,根據應用邏輯,生成渲染對象的渲染指令,進一步包括:
7、解析觸發的渲染事件,獲取渲染對象的元數據,其中,所述渲染對象的元數據包括渲染對象的描述信息以及屬性信息;
8、對渲染對象的元數據進行適用系統的調用轉化,生成渲染對象的渲染指令。
9、進一步地,渲染事件包括:操作用戶的操作信息;
10、所述系統根據接收到的多個應用發送的渲染指令對多個應用的渲染對象進行渲染,具體包括:
11、所述系統根據接收到的多個應用發送的渲染指令以及所述操作用戶的觀察角度信息對多個應用的渲染對象進行渲染。
12、進一步地,所述渲染對象的元數據還包括增量信息,所述渲染事件包括對象初始化事件和對象調整事件;
13、所述方法還包括:
14、對所述對象初始化事件進行所述應用邏輯處理,生成所述渲染對象的初始渲染指令,并將所述初始渲染指令發送給所述系統,以便于所述系統根據接收到的多個應用發送的初始渲染指令對多個應用的渲染對象進行渲染;
15、對所述對象調整事件進行所述應用邏輯處理,生成所述渲染對象的增量渲染指令,并將所述增量渲染指令發送給所述系統,以便于所述系統根據所述增量渲染指令對多個應用的渲染對象進行渲染。
16、進一步地,所述渲染對象的元數據還包括渲染對象的運動模型;
17、所述方法還包括:
18、將所述渲染對象的運動模型進行所述應用邏輯處理,生成所述渲染對象的模型渲染指令,并將所述模型渲染指令發送給所述系統,以便于所述系統根據所述模型渲染指令對多個應用的渲染對象進行渲染。
19、另一方面,本發明實施例還提供了一種多任務系統中渲染三維內容的方法,其特征在于,應用于支持顯示三維內容設備多任務系統中,由支持顯示三維內容設備多任務系統中的系統執行,所述方法包括:
20、接收多個應用發送的渲染對象的渲染指令,所述渲染指令是所述應用根據應用邏輯所生成的,所述渲染指令用于指導生成所述渲染對象的渲染圖像;
21、根據支持顯示三維內容設備獲取操作用戶的觀察角度信息;
22、根據渲染指令以及所述操作用戶的觀察角度信息對多個應用的渲染對象進行渲染,得到包含多個應用的渲染對象的渲染畫面。
23、進一步地,所述渲染指令是所述應用根據應用邏輯所生成的,進一步包括:
24、應用解析觸發的渲染事件,獲取渲染對象的元數據,其中,所述渲染事件包括操作用戶的操作信息,所述元數據包括渲染對象的描述信息以及屬性信息;
25、對渲染對象的元數據進行適用系統的調用轉化,生成渲染對象的渲染指令。
26、進一步地,所述渲染對象的元數據還包括增量信息,所述渲染事件包括對象初始化事件和對象調整事件,初始渲染指令是所述應用對所述對象初始化事件進行所述應用邏輯處理生成的,所述增量渲染指令是所述應用對所述對象調整事件進行所述應用邏輯處理生成的;
27、所述方法還包括:
28、根據接收到的應用發送的初始渲染指令以及所述操作用戶的觀察角度信息對多個應用的渲染對象進行渲染;
29、根據接收到的應用發送的增量渲染指令以及所述操作用戶的觀察角度信息對多個應用的渲染對象進行渲染。
30、進一步地,所述渲染對象的元數據還包括所述渲染對象的運動模型,模型渲染指令是所述應用對所述渲染對象的運動模型進行所述應用邏輯處理生成的;
31、所述方法還包括:
32、根據接收到的應用發送的模型渲染指令以及所述操作用戶的觀察角度信息對多個應用的渲染對象進行渲染。
33、進一步地,根據渲染指令以及所述操作用戶的觀察角度信息對多個應用的渲染對象進行渲染,進一步包括:
34、獲取所述支持顯示三維內容設備的畫布范圍;
35、在所述畫布范圍內根據渲染指令以及所述觀察角度信息對多個應用的渲染對象進行渲染。
36、進一步地,根據渲染指令以及所述操作用戶的觀察角度信息對多個應用的渲染對象進行渲染,進一步包括:
37、根據所述操作用戶的觀察角度信息以及所有渲染指令計算所述元數據之間的遮擋關系;
38、對不存在遮擋的所述元數據進行渲染,得到所述渲染畫面。
39、另一方面,本發明實施例還提供了多任務系統中渲染三維內容的裝置,其特征在于,所述裝置包括:
40、渲染指令生成單元,用于根據應用邏輯,生成所述渲染對象的渲染指令,所述渲染指令用于指導生成所述渲染對象的渲染圖像;
41、渲染指令發送單元,用于將所述渲染指令發送給系統,以便于所述系統根據接收到的多個應用發送的渲染指令對多個應用的渲染對象進行渲染,得到包括所述渲染對象的渲染畫面。
42、另一方面,本發明實施例還提供了一種多任務系統中渲染三維內容的裝置,其特征在于,所述裝置包括:
43、渲染指令接收單元,用于接收多個應用發送的渲染對象的渲染指令,所述渲染指令是所述應用根據應用邏輯所生成的,所述渲染指令用于指導生成所述渲染對象的渲染圖像;
44、觀察角度信息獲取單元,用于根據支持顯示三維內容設備獲取操作用戶的觀察角度信息;
45、渲染單元,用于根據渲染指令以及所述操作用戶的觀察角度信息對多個應用的渲染對象進行渲染,得到包括所述渲染對象的渲染畫面。
46、另一方面,本文實施例還提供了一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現上述所述方法。
47、最后,本發明實施例還提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機程序,所述計算機程序被處理器執行時實現上述所述方法。
48、利用本文實施例,多任務系統的支持顯示三維內容設備的應用根據應用邏輯,生成渲染對象的渲染指令,然后將渲染指令發送給系統,相比于傳統的應用對渲染對象進行渲染并將渲染得到的圖像發送給系統的方法,本發明應用發送的渲染指令的大小遠小于渲染得到的圖像,因此能夠有效地減少應用和系統之間的數據傳輸壓力,降低傳輸延遲。最后系統對接收到的多個應用發送的渲染指令以及用戶的觀察角度信息對多個應用的渲染對象進行渲染,得到渲染畫面。本發明仍將應用邏輯的執行保留在應用中執行,系統執行渲染,即使某個應用處理邏輯崩潰,也不會影響到系統的運行,其余正常工作的應用的渲染對象仍能夠正常渲染,提高了系統的整體穩定性。