新四季網

渲染方法、裝置和電子設備與流程

2023-05-16 09:56:48



1.本技術涉及計算機技術領域,尤其涉及一種渲染方法、裝置和電子設備。


背景技術:

2.隨著網際網路技術的發展,遊戲由於其豐富的娛樂性能越來越受到用戶的歡迎。在遊戲啟動時,需要先進行渲染,來顯示與遊戲相關的遊戲場景,渲染完成之後,用戶可以根據渲染結果進行相應的觸控操作。
3.為提升用戶遊玩遊戲的體驗,開發人員對遊戲進行開發時有以下需求:需要在同一個用戶界面(user interface,ui)顯示對同一遊戲虛擬場景執行不同渲染規則獲得的不同渲染圖像,以及對不同渲染圖像的效果進行調試。傳統渲染方法中,利用不同應用程式中設置的不同虛擬相機對各自程序中創建的虛擬場景進行數據採集,並利用不同程序中設置的不同虛擬相機對採集獲得的數據按照不同渲染規則進行渲染,難以保證上述不同虛擬相機所獲得的採集數據是相同的,基於此,也難以在同一幀獲得對同一虛擬場景執行不同渲染規則對應的不同渲染圖像,以及難以滿足用戶的需求。
4.因此,亟需一種渲染方法,該方法可以在同一幀獲得對同一虛擬場景執行不同渲染規則對應的不同渲染圖像,以更好的滿足用戶需求。


技術實現要素:

5.本技術提供了一種渲染方法、裝置和電子設備,該方法可以在同一幀獲得對同一虛擬場景執行不同渲染規則對應的不同渲染圖像,以更好的滿足用戶需求。
6.本技術實施例第一方面提供了一種渲染方法,該方法包括:在應用程式中創建用於在第一圖形用戶界面中顯示的虛擬場景,其中,所述虛擬場景包括第一虛擬相機和第二虛擬相機;控制所述第一虛擬相機和所述第二虛擬相機在預設時刻對所述虛擬場景進行數據採集,獲得採集數據,其中,所述第一虛擬相機和所述第二虛擬相機在同一時刻對所述虛擬場景進行數據採集所獲得的採集數據相同;控制所述第一虛擬相機在目標幀按照第一渲染規則對所述採集數據進行渲染,輸出第一渲染圖像,以及,控制所述第二虛擬相機在所述目標幀按照第二渲染規則對所述採集數據進行渲染,輸出第二渲染圖像,其中,所述第一渲染規則和所述第二渲染規則不同。
7.本技術實施例第二方面提供了一種渲染裝置,該裝置包括:創建單元用於:在應用程式中創建用於在第一圖形用戶界面中顯示的虛擬場景,其中,所述虛擬場景包括第一虛擬相機和第二虛擬相機;採集單元用於:控制所述第一虛擬相機和所述第二虛擬相機在預設時刻對所述虛擬場景進行數據採集,獲得採集數據,其中,所述第一虛擬相機和所述第二虛擬相機在同一時刻對所述虛擬場景進行數據採集所獲得的採集數據相同;第一渲染單元用於:控制所述第一虛擬相機在目標幀按照第一渲染規則對所述採集數據進行渲染,輸出第一渲染圖像;第二渲染單元用於:控制所述第二虛擬相機在所述目標幀按照第二渲染規則對所述採集數據進行渲染,輸出第二渲染圖像,其中,所述第一渲染規則和所述第二渲染
規則不同。
8.本技術實施例第三方面還提供一種電子設備,包括:處理器;以及存儲器,用於存儲數據處理程序,該伺服器通電並通過所述處理器運行該程序後,執行如上所述的渲染方法。
9.本技術實施例第四方面還提供了一種計算機可讀存儲介質,其上存儲有一條或多條計算機指令,其特徵在於,該指令被處理器執行以實現上述任意一種技術方案所述的渲染方法。
10.應當理解,本部分所描述的內容並非旨在標識本技術公開的實施例的關鍵或重要特徵,也不用於限制本技術公開的範圍。本技術公開的其它特徵將通過以下的說明書而變得容易理解。
11.本技術實施例所提供的渲染方法的技術方案,第一虛擬相機和第二虛擬相機是在同一應用程式創建的第一圖形用戶界面中顯示的同一虛擬場景中設置的,這種設置方式,可以保證第一虛擬相機和第二虛擬相機在預設時刻對該虛擬場景進行數據採集所獲得的採集數據是相同的。基於此,第一虛擬相機和第二虛擬相機中的任意一個虛擬相機在目標幀對該採集數據利用對應的渲染規則進行渲染,可以獲得第一渲染規則對應的第一渲染圖像和第二渲染規則對應的第二渲染圖像。也就是說,該方法可以在同一幀(即,目標幀)獲得對同一虛擬場景執行不同渲染規則對應的不同渲染圖像,以更好的滿足用戶需求。
附圖說明
12.為了更清楚地說明本技術實施例的技術方案,下面將對本技術實施例的描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本技術的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
13.圖1是適用於本技術實施例提供的渲染方法的一種應用場景的示意圖。
14.圖2是本技術實施例提供的一種渲染方法的示意圖。
15.圖3是本技術實施例提供的另一種渲染方法的示意圖。
16.圖4a是上述圖3所提供的渲染方法所描述的用戶界面1的示意圖。
17.圖4b是上述圖3所提供的渲染方法所描述的用戶界面2的一種示意圖。
18.圖4c是上述圖3所提供的渲染方法所描述的用戶界面2的另一種示意圖。
19.圖4d是上述圖3所提供的渲染方法所描述的用戶界面2顯示的渲染的示意圖。
20.圖5是本技術實施例提供的渲染方法所描述的第二圖形用戶界面的示意圖。
21.圖6是本技術實施例提供的一種渲染裝置的結構示意圖。
22.圖7是本技術實施例提供的一種電子設備的結構示意圖。
具體實施方式
23.為了使本領域的技術人員能夠更好的理解本技術的技術方案,下面結合本技術實施例中的附圖,對本技術進行清楚、完整地描述。但本技術能夠以很多不同於上述描述的其他方式進行實施,因此,基於本技術提供的實施例,本領域普通技術人員在不經過創造性勞動的情況下,所獲得的所有其他實施例,都應屬於本技術保護的範圍。
24.需要說明的是,本技術的權利要求書、說明書及附圖中的術語「第一」、「第二」、「第三」等是用於區別類似的對象,並不用於描述特定的順序或先後次序。這樣使用的數據在適當情況下是可以互換的,以便於本文所描述的本技術的實施例,能夠以除了在本文圖示或描述的內容以外的順序實施。此外,術語「包括」、「具有」以及他們的變形形式,意圖在於覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限於清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對於這些過程、方法、產品或設備固有的其它步驟或單元。
25.為了便於理解,首先對本技術實施例中可能涉及的技術術語進行簡單介紹。
26.1,遊戲引擎(game engine)
27.遊戲引擎又稱為物理引擎。遊戲引擎是指一些已編寫好的可編輯電腦遊戲系統或者一些交互式實時圖像應用程式的核心組件。這些系統為遊戲設計者提供各種編寫遊戲所需的各種工具,其目的在於讓遊戲設計者能容易和快速地做出遊戲程式而不用由零開始。
28.2,unity
29.unity是實時3d互動內容創作和運營平臺。包括遊戲開發、美術、建築、汽車設計、影視在內的所有創作者,藉助unity將創意變成現實。unity平臺提供一整套完善的軟體解決方案,可用於創作、運營和變現任何實時互動的2d和3d內容,支持平臺包括手機、平板電腦、pc、遊戲主機、增強現實和虛擬實境設備。
30.3,渲染(render)
31.渲染指的是在給定虛擬相機、三維物體、光源、光照模式、紋理等諸多條件的情況下,生成或繪製成一幅二維圖像的過程。
32.4,遮擋剔除(occlusion culling)
33.當物體在虛擬相機的可視範圍內,但被其他物體遮擋時,虛擬相機對其不進行渲染。遮擋剔除可以降低被渲染對象的個數,從而降低每幀渲染時間。
34.5,過度繪製(overdraw)
35.過度繪製是指對同一個像素進行多次渲染,因為一個像素最終只會顯示一個顏色,所有過度繪製是一種有損性能的表現。最優情況是同一個像素每次只被繪製一次。
36.6,應用程式接口(application programming interface,api)
37.api又稱為應用編程接口,就是軟體系統不同組成部分銜接的約定。由於近年來軟體的規模日益龐大,常常需要把複雜的系統劃分成小的組成部分,編程接口的設計十分重要。程序設計的實踐中,編程接口的設計首先要使軟體系統的職責得到合理劃分。良好的接口設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴展性。應用程式接口通常是軟體開發工具包(software development kit,sdk)的一部分。
38.下面,結合附圖對適用於本技術實施例的渲染方法的應用場景、渲染方法進行詳細說明。可以理解的是,本技術提供的各實施例之間不衝突的情況下,下述的實施例及實施例中的特徵可以相互組合。另外,下述各方法實施例中的步驟時序僅為一種舉例,而非嚴格限定。
39.首先,結合附圖1介紹適用於本技術實施例的渲染方法的應用場景。
40.圖1是適用於本技術實施例提供的渲染方法的一種應用場景的示意圖。示例性的,
圖1示出的應用場景包括終端101和伺服器102。其中,終端101通過網絡103與伺服器102進行通信和數據交互。
41.終端101為安裝應用程式的客戶端。其中,該應用程式可以是需要下載安裝的應用程式,也可以是即點即用的應用程式,本技術實施例對此不作限定。示例性的,終端101可以但不限於是以下任意一種設備:智慧型手機、平板電腦、遊戲主機、電子書閱讀器、多媒體播放設備、可穿戴設備(例如,智能手錶)、個人計算機(personal computer,pc)等電子設備。
42.在本技術實施例中,上述應用程式可以是任何能夠提供虛擬場景,以供用戶代入和操作的虛擬對象在該虛擬場景中進行活動的應用程式。典示例性的,該應用程式可以為遊戲應用程式,如大型多人在線角色扮演(massively multiplayer online role-playing,mmorp)遊戲、大型多人在線(massively multiplayer online,mmo)遊戲、大型多人在線戰略(massively multiplayer online simulation,mmos)遊戲、第三人稱射擊遊戲(third-personal shooting game,tps)和多人槍戰類生存遊戲等。當然,除了遊戲應用程式之外,其它類型的應用程式中也可以向用戶展示虛擬對象,並給虛擬對象提供相應的功能。例如,虛擬實境(virtual reality,vr)類應用程式、增強現實(augmented reality,ar)類應用程式、三維地圖程序、軍事仿真程序、社交類應用程式、互動娛樂類應用程式等,本技術實施例對此不作限定。另外,對於不同的應用程式來說,其所提供的虛擬對象的形態也會有所不同,且相應的功能也會有所不同,這都可以根據實際需求預先進行配置,本技術實施例對此不作限定。在一些實施例中,上述應用程式是基於三維的虛擬場景引擎開發的應用程式,比如該虛擬場景引擎是unity引擎,該虛擬場景引擎能夠構建三維的虛擬場景、虛擬對象和虛擬道具等,給用戶帶來更加沉浸式的遊戲體驗。上述虛擬場景可以是對真實世界的仿真環境,也可以是半仿真半虛構的環境,還可以是純虛構的環境。虛擬場景可以是二維虛擬場景,也可以是2.5維虛擬場景,或者是三維虛擬場景,本技術實施例對此不作限定。上述虛擬對象可以是用戶帳號在應用程式中控制的虛擬角色,也可以是由應用程式中的電腦程式控制的虛擬角色。以應用程式為遊戲應用程式為例,虛擬對象可以是用戶帳號在遊戲應用程式中控制的遊戲角色,也可以是遊戲應用程式中的電腦程式控制的遊戲怪物。虛擬對象可以是人物形態,可以是動物、卡通或者其它形態,本技術實施例對此不作限定。虛擬對象可以三維形式展示,也可以二維形式展示,本技術實施例對此不作限定。
43.伺服器102用於為終端101中的應用程式提供後臺服務。例如,伺服器102可以是上述應用程式的後臺伺服器。伺服器102可以是一臺伺服器,也可以是由多臺伺服器組成的伺服器集群,或者是一個雲計算服務中心。可選地,伺服器102可以同時為多個終端101中的應用程式提供後臺服務。
44.上述圖1示出的應用場景中的設備可以執行本技術實施例提供的渲染方法。在一些實現方式中,當終端101的圖形用戶界面顯示的內容所關聯的數據是終端101中運行的應用程式生成的數據時,可以由上述終端101執行本技術實施例提供的渲染方法。例如,終端101從遊戲應用程式中獲取生成的遊戲數據,終端101可以對該遊戲數據進行渲染,並將渲染後的結果通過終端101的圖形用戶界面顯示給用戶。可選的,在另一些實現方式中,當終端101的圖形用戶界面顯示的內容所關聯的數據是伺服器102中運行的雲遊戲生成的數據時,可以由上述伺服器102執行本技術實施例提供的渲染方法。例如,伺服器102對伺服器102中運行的雲遊戲生成的數據進行渲染獲得渲染結果,並通過網絡103將該渲染結果發送
給終端101,以實現在終端101的圖形用戶界面顯示該渲染結果的目的。下面,以終端101獲取終端101中運行的應用程式對應的虛擬場景生成的數據為例,描述終端101獲取該虛擬場景生成的數據的方法。在一些實現方式中,上述應用程式提供的圖形用戶界面中顯示的的虛擬場景中設置有虛擬相機,終端101通過控制該虛擬相機可以實現對該虛擬場景的數據採集。在虛擬相機獲得採集數據後,終端101控制虛擬相機調用終端101的處理器(例如,cpu和gpu)對該獲得的採集數據進行渲染,以獲得渲染結果。此後,終端101還可以將渲染結果通過該應用程式關聯的圖形用戶界面進行輸出。上述渲染過程中,虛擬相機需要調用終端101的處理器(例如,cpu和gpu),以對該虛擬相機獲得的採集數據執行渲染操作。終端101的處理器對待處理數據進行處理時,是有先後順序的。例如,終端101的處理器對先調用該處理器的待處理數據執行處理操作。基於此,當上述虛擬場景中設置多個虛擬相機時,該多個虛擬相機可以在多個時刻分別調用終端101的處理器,以使終端101的處理器在該多個時刻分別對該多個虛擬相機獲得的採集數據執行渲染操作,以獲得對應的多個渲染結果,該多個時刻與該多個虛擬相機一一對應。
45.網絡103可以是有線網絡或無線網絡,本技術對此不作具體限定。上述無線網絡或有線網絡使用標準通信技術和/或協議。網絡通常為網際網路、但也能夠是任何網絡,包括但不限於區域網(local area network,lan)、城域網(metropolitan area network,man)、廣域網(wide area network,wan)、移動、有線或者無線網絡、專用網絡或者虛擬專用網絡的任何組合)。在一些實施例中,使用包括超文本標記語言(hyper text mark-up language,html)、可擴展標記語言(extensible markup language,xml)等的技術和/或格式來代表通過網絡交換的數據。此外還能夠使用諸如安全套接字層(secure socket layer,ssl)、傳輸層安全(transport layer security,tls)、虛擬專用網絡(virtual private network,vpn)、網際協議安全(internet protocol security,ipsec)等常規加密技術來加密所有或者一些鏈路。在另一些實施例中,還能夠使用定製和/或專用數據通信技術取代或者補充上述數據通信技術。
46.應理解,上述圖1示出的應用場景僅為示意,並不對適用於本技術實施例提供的渲染方法的應用場景構成任何限定。可選的,上述應用場景還可以包括更多數目的用戶、終端101或伺服器102。
47.隨著網際網路技術的發展,遊戲由於其豐富的娛樂性能越來越受到用戶的歡迎。在遊戲啟動時,需要先進行渲染,來顯示與遊戲相關的遊戲場景,渲染完成之後,用戶可以根據渲染結果進行相應的觸控操作。示例性的,在上述圖1示出的應用場景中,終端101需要先對終端101中的遊戲應用程式所關聯的運行數據進行渲染,以使將獲得的渲染圖像通過終端101提供的用戶界面展示給用戶。為提升用戶遊玩遊戲的體驗,開發人員對遊戲進行開發時有以下需求:需要在同一個用戶界面中顯示對同一遊戲虛擬場景執行不同渲染規則獲得的不同的渲染圖像,以及對不同的渲染圖像的效果進行調試。
48.傳統技術中提供了一種渲染方法,該方法的工作原理如下:在程序a中創建的目標虛擬場景中設置虛擬相機a,在程序b中創建的目標虛擬場景中設置虛擬相機b,虛擬相機a執行的渲染規則與虛擬相機b執行的渲染規則不同。例如,虛擬相機a執行的渲染規則為過度繪製的渲染規則,虛擬相機b的執行的渲染規則為遮擋剔除的渲染規則。然後,在預設時刻1,控制程序a內的機器人a按照預設路徑對程序a中創建的目標虛擬場景包括的所有物體
進行數據採集,獲得採集數據a;以及控制程序b內的機器人b按照所述預設路徑對程序b中創建的目標虛擬場景包括的所有物體進行數據採集,獲得採集數據b。其中,程序a中創建的目標虛擬場景與程序b中創建的目標虛擬場景相同。此後,在預設時刻2,控制程序a對採集數據a進行渲染獲得渲染圖像a;以及在預設時刻2,控制程序b對採集數據b進行渲染,獲得渲染圖像b。最後,開發人員通過人機互動的方式將程序a獲得的渲染圖像a和程序b獲得的渲染圖像b合併至終端的同一個用戶界面進行顯示。但上述傳統技術所提供的渲染方法,即利用多個程序中設置的多個虛擬相機對各自程序中創建的目標虛擬場景進行數據採集,以及利用該多個虛擬相機對採集獲得的數據執行不同渲染規則時存在以下問題:(1)上述採集數據a是由程序a中設置的虛擬相機對程序a中創建的目標虛擬場景進行採集獲得的,上述採集數據b是由程序b中設置的虛擬相機對程序b中創建的目標虛擬場景進行採集獲得的,這種採集方式難以保證獲得的採集數據a和採集數據b具有一致性(即,時間一致性和空間一致性)。也就是說,上述採集方式難以保證虛擬相機a和虛擬相機2在同一預設時刻(即,預設時刻1)採集獲得的採集數據a和採集數據b完全相同。這樣,導致程序a獲得的渲染圖像a和程序b獲得的渲染圖像b不是針對同一虛擬場景的渲染結果。進一步,根據這兩個渲染圖像進行渲染效果對比時,會存在誤判現象,影響渲染效果的檢測效率,無法滿足用戶的渲染需求。(2)上述渲染圖像的合併採用半自動的合併方式,即需要人工將渲染圖像a和渲染圖像b合併。當檢測圖片的份數增加時,會花費更多的時間成本和人力成本、效率低下。同時,這種渲染顯示方式,是在獲得渲染圖像a和渲染圖像b後,通過人工方式將渲染圖像a和渲染圖像b進行合併以通過一個用戶界面進行顯示。也就是說,該方法不能實現在虛擬相機a執行渲染操作和虛擬相機b執行渲染操作時,在同一用戶界面實時顯示對同一虛擬場景執行不同渲染規則的不同渲染效果。(3)運行兩個程序執行渲染方法會消耗更多的資源,也會增加人工成本。
49.為解決上述存在的問題,本技術實施例提供了一種渲染方法、裝置和電子設備。接下來,結合附圖介紹本技術實施例提供的渲染方法。
50.圖2是本技術實施例提供的一種渲染方法的示意圖。示例性的,圖2所描述的渲染方法可以應用於上述圖1示出的應用場景。在一些實現方式中,當終端101的用戶界面顯示遊戲畫面,且該遊戲為雲遊戲時,圖2所描述的渲染方法的執行主體可以是上述圖1示出的伺服器102。在另一些實現方式中,當終端101的用戶界面顯示遊戲畫面,且該遊戲為終端101中安裝的遊戲應用程式所關聯的遊戲時,圖2所述描述的渲染方法的執行主體可以是上述圖1示出的終端101。如圖2所示,本技術實施例提供的渲染方法包括s210至s230。下面,對s210至s230進行詳細介紹。
51.s210,在應用程式中創建用於在第一圖形用戶界面中顯示的虛擬場景,其中,虛擬場景包括第一虛擬相機和第二虛擬相機。
52.示例性的,當上述圖1示出的終端101執行圖2所描述的渲染方法時,上述s210中的應用程式可以是安裝在終端101中的應用程式。示例性的,當上述圖1示出的伺服器102執行圖2所描述的渲染方法時,上述s210中的應用程式可以是安裝在伺服器102中的應用程式。對應用程式的類型不作具體限定。在一些實現方式中,上述s210所描述的應用程式是基於物理引擎運行的應用程式,虛擬場景為遊戲虛擬場景。可選的,在另一些實現方式中,上述s210所描述的應用程式是基於物理引擎運行的視頻應用程式,虛擬場景可以為真實世界的
仿真場景。對上述物理引擎程序的類型不作具體限定。例如,物理引擎程序可以但不限於是:unity、ue、physx、或者bullet。上述s210中所描述的應用程式中的第一圖形用戶界面,還可以理解為是該應用程式的一個運行窗口。示例性的,圖4a示出的顯示遊戲虛擬場景的用戶界面1,可以為上述第一圖形用戶界面顯示的虛擬場景的一個具體示例。參見圖4a,該用戶界面1顯示的虛擬場景包括虛擬相機1、虛擬相機2、虛擬人物1、虛擬人物2和虛擬建築物。
53.虛擬場景,可以理解為是營造出的供虛擬對象進行活動(如遊戲競技)的場景(如虛擬房屋、虛擬島嶼、虛擬地圖和虛擬建築等),且在本技術實施例中,該虛擬場景包括多個虛擬相機。也就是說,本技術實施例中,虛擬場景可以包括以下內容:2個或2個以上的虛擬相機,以及供這2個或2個以上的虛擬對象進行活動的場景。可選的,該虛擬場景還可以包括在該虛擬場景中進行活動的一個或多個虛擬對象。對虛擬相機的類型不作具體限定。例如,虛擬相機可以是2d虛擬相機或3d虛擬相機。虛擬場景可以是對真實世界的仿真場景,也可以是半仿真半虛構的場景,還可以是純虛構的場景。虛擬場景可以是二維虛擬場景,也可以是2.5維虛擬場景,或者是三維虛擬場景,本技術實施例對此不作具體限定。對虛擬對象不作具體限定。其中,虛擬對象可以是用戶帳號在應用程式中控制的虛擬角色,也可以是由應用程式中的電腦程式控制的虛擬角色。
54.在一些實現方式中,執行上述s210,即在應用程式中創建用於在第一圖形用戶界面中顯示的虛擬場景包括:根據預設虛擬相機參數,在應用程式中創建用於在第一圖形用戶界面中顯示的虛擬場景,其中,預設虛擬相機參數指示第一虛擬相機和第二虛擬相機位於虛擬場景中的同一位置,以及指示第一虛擬相機的旋轉角度和第二虛擬相機的旋轉角度相同,第一虛擬相機和第二虛擬相機中的任意一個虛擬相機的旋轉角度表示任意一個虛擬相機對虛擬場景進行數據採集所對應的拍攝視角。可選的,這種實現方式中,在執行上述s210之前還可以執行以下步驟:獲取預設虛擬相機參數。對預設虛擬相機參數的來源不作具體限定。例如,預設虛擬相機參數可以是從原始碼編輯器中獲取的,例如該原始碼編輯器可以是ue編輯器。又如預設虛擬相機參數可以是從電子設備的存儲器或電子設備所關聯的資料庫中獲得的。
55.可選的,在另一些實現方式中,執行上述s210,在應用程式中創建用於在第一圖形用戶界面中顯示的虛擬場景包括:根據預設虛擬相機參數和預設虛擬對象信息,在應用程式中創建用於在第一圖形用戶界面中顯示的虛擬場景,其中,預設虛擬相機參數指示第一虛擬相機和第二虛擬相機位於虛擬場景中的同一位置,以及指示第一虛擬相機的旋轉角度和第二虛擬相機的旋轉角度相同,第一虛擬相機和第二虛擬相機中的任意一個虛擬相機的旋轉角度表示任意一個虛擬相機對虛擬場景進行數據採集所對應的拍攝視角;預設虛擬對象信息用於指示虛擬場景包括的虛擬對象的屬性(例如,虛擬對象的形狀、位置、運動狀態和運行軌跡等)。對預設虛擬對象信息的來源不作具體限定。例如,預設虛擬對象信息可以是從原始碼編輯器中獲取的,例如該原始碼編輯器可以是ue編輯器。又如,預設虛擬對象信息可以是從電子設備的存儲器或電子設備所關聯的資料庫中獲得的。
56.上述在應用程式中創建用於在第一圖形用戶界面中顯示虛擬場景的方式中,創建好的虛擬場景包括的第一虛擬相機和第二虛擬相機設置於虛擬場景中的同一位置,且第一虛擬相機的旋轉角度和第二虛擬相機的旋轉角度相同。其中,虛擬場景包括的第一虛擬相
機和第二虛擬相機在虛擬場景中的同一位置設置,即該第一虛擬相機和第二虛擬相機在該同一位置處於完全重疊放置。虛擬場景包括的第一虛擬相機和第二虛擬相機位於虛擬場景的同一位置是指,該第一虛擬相機和第二虛擬相機在虛擬場景中的空間位置相同。例如,在虛擬場景中的空間位置可以通過(x,y,z)表示的情況下,多個虛擬相機對應的多個(x,y,z)是相同的,單位:米(m)。一個虛擬相機的旋轉角度,可以理解為該一個虛擬相機對虛擬場景進行拍攝的拍攝視角。一個虛擬相機的旋轉角度可以表示為(x
°
,y
°
,z
°
),其中,x
°
代表繞該x軸旋轉的度數,y
°
代表繞該y軸旋轉的度數,z
°
代表繞該z軸旋轉的度數。示例性的,圖4a示出了本技術實施例提供的在虛擬場景中的位置1處設置兩個虛擬相機的示意圖。下文中的s301對圖4a進行了描述,此處未詳細贅述的內容可以參見下文s301。
57.s220,控制第一虛擬相機和第二虛擬相機在預設時刻對虛擬場景進行數據採集,獲得採集數據,其中,第一虛擬相機和第二虛擬相機在同一時刻對虛擬場景進行數據採集所獲得的採集數據相同。
58.對預設時刻不作具體限定。預設時刻可以是用戶預定義的時刻,也可以是系統自定義的時刻。第一虛擬相機和第二虛擬相機中的任意一個虛擬相機在預設時刻對虛擬場景進行數據採集所持續的採集時長相同,且該任意一個虛擬相機在預設時刻對虛擬場景進行數據採集所持續的採集時長可以根據實際需求進行設置。例如,第一虛擬相機和第二虛擬相機中的任意一個個虛擬相機在預設時刻對虛擬場景進行數據採集所持續的採集時長為12毫秒(ms)。
59.執行上述s220,即控制第一虛擬相機和第二虛擬相機在預設時刻對虛擬場景進行數據採集,獲得採集數據,包括:控制第一虛擬相機按照預設採集參數,在預設時刻對虛擬場景進行數據採集,獲得採集數據;以及,控制第二虛擬相機按照預設採集參數,在預設時刻對虛擬場景進行數據採集,獲得採集數據。其中,預設採集參數包括預定義的虛擬相機的旋轉角度,且第一虛擬相機和第二虛擬相機在同一時刻的的旋轉角度是相同的。可選的,在另一些實現方式中,上述預設採集參數還可以包括數據採用頻率和/或相機轉速。
60.對觸發執行上述s220的觸發條件不作具體限定。其中,觸發條件可以包括以下至少一種條件:滿足預設採集時刻、或者接收到用戶輸入的採集指令。例如,用戶根據實際需求,可以確定在某個時刻通過安裝有應用程式的終端的交互界面將採集指令發送給應用程式。
61.執行上述s210和s220,即在應用程式創建用於在第一圖形用戶界面中顯示的虛擬場景中的同一位置設置多個虛擬相機(即,第一虛擬相機和第二虛擬相機),且該第一虛擬相機的旋轉角度和第二虛擬相機的旋轉角度相同。控制該多個虛擬相機按照相同的旋轉角度在同一時刻對虛擬場景進行數據採集獲得採集數據。上述實現方式可以保證第一虛擬相機和第二虛擬相機在同一時刻對虛擬場景執行採集操作所獲得的採集數據具有一致性,即保證第一虛擬相機在預設時刻對虛擬場景進行數據採集獲得的採集數據,與第二虛擬相機在預設時間對虛擬場景進行數據採集獲得的採集數據是完全相同的。
62.s230,控制第一虛擬相機在目標幀按照第一渲染規則對採集數據進行渲染,輸出第一渲染圖像,以及,控制第二虛擬相機在目標幀按照第二渲染規則對採集數據進行渲染,輸出第二渲染圖像,其中,第一渲染規則和第二渲染規則不同。
63.第一渲染規則和第二渲染規則中的任意一個渲染規則表示對上述採集數據執行
渲染的邏輯。對第一渲染規則對應的渲染邏輯和第二渲染規則對應的渲染邏輯不作具體限定,可以根據實際需求進行設置。在一些實現方式中,上述s230所描述的採集數據記錄虛擬場景中的被遮擋的物體和未被遮擋的物體,其中,第一渲染規則是用於對被遮擋的物體和未被遮擋的物體進行渲染的規則;第二渲染規則是用於對未被遮擋的物體進行渲染的規則;或者第二渲染規則是用於對被遮擋的物體和未被遮擋的物體進行過度繪製的規則。
64.對第一渲染規則所指示的渲染流程和第二渲染規則所指示的渲染流程不作具體限定。在一些實現方式中,本技術實施例中的渲染規則(例如,第一渲染規則或第二渲染規則)所指示的渲染流程可以包括以下三個階段:應用階段、幾何階段和光柵化階段。其中,應用階段可以理解為數據準備階段,包括位置信息,光照信息等,並設置模型材質、著色器(shader)等,上述數據又稱為渲染狀態。應用階段會輸出渲染所需的幾何信息即渲染圖元,交由幾何階段做渲染繪製處理。幾何階段可以理解為就是shader中的頂點(vert)和片元(frag),逐頂點逐片元對渲染圖元做處理並將結果丟給第三階段。光柵化階段實現具體繪製,對得到的逐頂點數據做插值再進行逐像素處理。示例性的,下面,以控制虛擬相機執行對虛擬場景中的未被遮擋的物體進行渲染的規則為例,該渲染規則對應的渲染流程可以包括以下步驟:控制應用程式關聯的cpu準備好需要被渲染的對象。也就是哪些物體需要被渲染,哪些物體需要被剔除(culled),剔除的常用方式包括視錐體剔除和遮擋剔除,並對需要渲染的對象進行排序;控制應用程式關聯的cpu設置每個對象的渲染狀態。渲染狀態包括所使用的著色器、光源、材質等;控制應用程式關聯的cpu發送繪製調用(drawcall)。當給定一個drawcall時,控制應用程式關聯的gpu會根據渲染狀態和輸入的頂點數據進行計算;gpu根據渲染狀態和輸入的頂點數據進行渲染,並獲得渲染圖像。
65.實際應用中,終端提供的圖形用戶界面顯示的內容(例如,視頻或遊戲畫面)都是以「幀」為單位顯示的。其中,一幀所耗費的時間非常短暫(毫秒級)。例如,當終端以每秒60幀刷新屏幕時,一幀所耗費的時間約為16.7ms。又如,當終端以每秒30幀刷新屏幕時,一幀所耗費的時間約為33ms。基於此,在一些實現方式中,目標幀包括第一時刻和第二時刻,控制第一虛擬相機在目標幀按照第一渲染規則對採集數據進行渲染,輸出第一渲染圖像,包括:控制第一虛擬相機在第一時刻按照第一渲染規則對採集數據進行渲染,輸出第一渲染圖像;控制第二虛擬相機在目標幀按照第二渲染規則對採集數據進行渲染,包括:控制第二虛擬相機在第二時刻按照第二渲染規則對採集數據進行渲染,輸出第二渲染圖像。這種實現方式中,應用程式中創建用於在第一圖形用戶界面中顯示的一個虛擬場景包括的第一虛擬相機和第二虛擬相機,在目標幀按照每個虛擬相機對應的渲染規則對相同的採集數據執行渲染操作,可以實現在目標幀獲得對同一虛擬場景的同一份採集數據執行不同渲染規則獲得的不同渲染圖像(即,第一渲染圖像和第二渲染圖像)。
66.本技術實施例中,對第一渲染規則和第二渲染規則中的任意一個渲染規則所採用的封裝形式不作具體限定。在一些實現方式中,第一渲染規則通過第一應用程式接口封裝,第二渲染規則通過第二應用程式接口封裝,第一應用程式接口和第二應用程式接口不同,控制第一虛擬相機在目標幀按照第一渲染規則對採集數據進行渲染,包括:根據第一渲染規則,控制第一虛擬相機在目標幀調用第一應用程式接口封裝對採集數據進行渲染;以及,控制第二虛擬相機在目標幀按照第二渲染規則對採集數據進行渲染,包括:根據第二渲染規則,控制第二虛擬相機在目標幀調用第二應用程式接口封裝對採集數據進行渲染。可選
的,上述渲染規則還可以通過除api以外的形式進行封裝。例如,渲染規則還可以直接通過函數封裝,這種方式中,可以通過調用渲染規則對應的函數以實現渲染規則所指示的渲染操作。
67.上述s230中,第一渲染圖像是第一虛擬相機利用第一渲染規則對採集數據執行渲染操作獲得的,第二渲染圖像是第二虛擬相機利用第二渲染規則對該採集數據執行渲染操作獲得的,第一渲染規則和第二渲染規則不同,即第一渲染圖像和第二渲染圖像是存在差異的、不完全相同。
68.實際應用中,可能存在渲染規則和該渲染規則對應的代碼不匹配的問題。這種情況下,調用與該渲染規則不匹配的代碼執行該渲染規則所獲得的渲染結果並不能滿足用戶需求。可選的,在執行上述s230之後還可以執行以下步驟:根據第一渲染圖像,確定第一渲染規則對應的第一代碼和第一渲染規則是否匹配;如果第一代碼和第一渲染規則不匹配,根據第一渲染規則對第一代碼進行修改,以使修改後的第一代碼與第一渲染規則匹配。可選的,在執行上述s230之後還可以執行以下步驟:根據第二渲染圖像,確定第二渲染規則對應的第二代碼和第二渲染規則是否匹配;如果第二代碼與第二渲染規則不匹配,根據第二渲染規則對第二代碼進行修改,以使修改後的第二代碼與第二渲染規則匹配。對上述第一代碼和第二代碼的類型不作具體限定。例如,上述第一代碼和上述第二代碼的類型可以是邏輯代碼。又如,上述第一代碼和上述第二代碼的類型可以是對邏輯代碼進行編譯後獲得的編譯代碼,如二進位編輯代碼。其中,每個渲染規則對應的代碼與該每個渲染規則匹配,可以理解為,每個渲染規則對應的虛擬相機對採集數據按照該渲染規則執行的渲染操作所獲得的渲染圖像的效果,與該渲染規則所指示的渲染效果匹配。例如,一個虛擬相機對應的渲染規則為過度繪製的渲染規則,該一個虛擬相機執行該過度繪製的渲染規則獲得的渲染圖像的效果為對採集數據執行過度繪製的渲染效果,則可以認為該一個虛擬相機的渲染規則對應的原始碼與該一個虛擬相機的渲染規則匹配。示例性的,下文中的s306中的方式一至方式三舉例描述了「根據多個虛擬相機的多個渲染圖像,確定每個虛擬相機的渲染規則對應的原始碼與每個虛擬相機的渲染規則是否匹配」的具體示例,下文中的s307舉例描述了「根據每個虛擬相機的渲染規則對原始碼進行修改,以使修改後的原始碼與每個虛擬相機的渲染規則匹配」的具體示例,此處未詳細贅述的內容可以參見下文中的s306或s307。可選的,如果每個虛擬相機的渲染規則對應的原始碼與每個虛擬相機的渲染規則不匹配,則結束渲染流程。
69.可選的,在一些實現方式中,上述應用程式中還創建有用於顯示渲染圖像的第二圖形用戶界面,第二圖形用戶界面包括第一區域和第二區域。這種實現方式中,執行上述s230,即控制第一虛擬相機在目標幀按照第一渲染規則對採集數據進行渲染,輸出第一渲染圖像,包括:控制第一虛擬相機在目標幀按照第一渲染規則在第一區域中對採集數據進行渲染,以使第一區域輸出第一渲染圖像;控制第二虛擬相機在目標幀按照第二渲染規則對採集數據進行渲染,輸出第二渲染圖像,包括:控制第二虛擬相機在目標幀按照第二渲染規則在第二區域中對採集數據進行渲染,以使第二區域輸出第二渲染圖像。上述第一區域和第二區域可以是第二圖像用戶界面包括的兩個不存在重疊的區域。上述實現方式中,應用程式中創建用於在第一圖形用戶界面中顯示的一個虛擬場景包括的第一虛擬相機和第二虛擬相機,在目標幀按照每個虛擬相機對應的渲染規則在每個虛擬相機關聯的第二圖形
用戶界面中的區域內對相同的採集數據執行渲染操作,使得第二圖形用戶界面可以在目標幀顯示對同一虛擬場景的同一份採集數據執行不同渲染規則所獲得的不同渲染圖像。可選的,在創建第二圖形用戶界面後還可以執行以下步驟:調整第二圖形用戶界面中的第一區域和/或第二區域的位置和大小。例如,可以根據第二圖形用戶界面的大小確定第一區域和第二區域的大小。示例性的,圖4b示出的用戶界面2為上述第二圖形用戶界面的一種示意圖。在圖4b中,用戶界面2中的第一區域和第二區域完全佔據第二圖形用戶界面。示例性的,圖4c示出的用戶界面2為上述第二圖形用戶界面的另一種示意圖。在圖4c中,用戶界面2中的第一區域和第二區域佔用第二圖形用戶界面的部分界面,第二圖形用戶界面中未被佔用的界面用黑色背景進行填充。示例性的,圖4b示出的用戶界面2可以是在上述應用程式中首次創建的第二圖形用戶界面的一種示意圖,圖4c示出的用戶界面2可以是對上述首次創建的第二圖形用戶界面中的第一區域和第二區域進行大小調整後獲得的用戶界面示意圖。
70.在本技術實施例中,對第一圖形用戶界面和第二圖形用戶界面不作具體限定。在一些實現方式中,第二圖形用戶界面和第一圖形用戶界面是在應用程式中創建的兩個不同的圖形用戶界面。對第二圖形用戶界面中的第一區域和第二區域的形狀和位置不作具體限定,具體可以根據用戶需求進行設置。在一些實現方式中,第二圖形用戶界面中的第一區域和第二區域的大小是相同的。示例性的,下文中的s305中結合圖4a舉例描述了用戶界面1中顯示的虛擬場景包括2個虛擬相機,且該2個虛擬相機獲得的渲染圖像通過用戶界面2中的2個區域輸出,此處未詳細贅述的內容可以參見下文s305,該用戶界面1位上述第一圖形用戶界面的一個示例。示例性的,下文中的圖4d中的(1)示出的用戶界面2的第一區域顯示了第一虛擬相機採用第一渲染規則渲染獲得的第一渲染圖像,第二區域顯示了第二虛擬相機採用第二渲染規則渲染獲得的第二渲染圖像,此時,第二渲染規則是用於對虛擬場景包括的被遮擋的物體和未被遮擋的物體進行過度繪製的規則。可以理解的是,圖4d中的(1)示出的用戶界面2可以為上述應用程式的第二圖形用戶界面。
71.可選的,在另一些實現方式中,上述第一圖形用戶界面顯示的虛擬場景中包括兩個以上的虛擬相機,該兩個以上的虛擬相機對應兩個以上的渲染規則,且每個虛擬相機將獲得的渲染圖像通過第二圖形用戶界面中的對應區域輸出。在一些實現方式中,上述兩個以上的虛擬相機包括第一虛擬相機、第二虛擬相機和第三虛擬相機,每個虛擬相機在預設時刻對虛擬場景進行數據採集所獲得的採集數據相同,且該採集數據記錄虛擬場景中的被遮擋的物體和未被遮擋的物體。第一虛擬相機執行第一渲染規則,第二虛擬相機執行第二渲染規則,第三虛擬相機執行第三渲染規則;其中,第一渲染規則是用於對虛擬場景中的被遮擋的物體和未被遮擋的物體進行渲染的規則;第二渲染規則是用於對未被遮擋的物體進行渲染的規則;第三渲染規則是用於對虛擬場景中的被遮擋的物體和未被遮擋的物體進行過度繪製的規則。示例性的,圖5示出了這種實現方式中,應用程式中的第二圖形用戶界面的示意圖。參見圖5,圖5示出的第二圖形用戶界面的第一區域可以用於顯示第一虛擬相機對該採集數據執行第一渲染規則獲得的第一虛擬圖像;第二區域可以用於顯示第二虛擬相機對該採集數據執行第二渲染規則獲得的第二虛擬圖像;第三區域可以用於顯示第三虛擬相機對該採集數據執行第三渲染規則獲得的第三虛擬圖像。可以理解的是,本技術實施例中創建的虛擬場景還可以設置更多數目的虛擬相機,應用程式中的第二圖形用戶界面還可以包括多個區域,該多個區域與多個虛擬相機關聯,每個虛擬相機用於在關聯的第二圖形
用戶界面中的區域中對每個虛擬相機的採集數據進行渲染,並通過該關聯的第二圖形用戶界面中的區域進行顯示,且該每個虛擬相機的採集數據相同。
72.應理解的是,上述圖2示出的渲染方法僅為示意,並不對本技術提供的渲染方法構成任何限定。上述圖2示出的渲染方法以在第一圖形用戶界面顯示的虛擬場景中創建兩個虛擬相機,以及控制這兩個虛擬相機利用兩個渲染規則執行對應的渲染操作。可選的,在另一些實現方式中,還可以在第一圖形用戶界面顯示的虛擬場景中創建兩個以上的虛擬相機,以及控制這兩個以上的虛擬相機利用兩個以上的渲染規則執行對應的渲染操作。
73.在本技術實施例中,第一虛擬相機和第二虛擬相機是在同一應用程式創建的第一圖形用戶界面中顯示的同一虛擬場景中設置的,這種設置方式,可以保證第一虛擬相機和第二虛擬相機在預設時刻對該虛擬場景進行數據採集所獲得的採集數據是相同的。基於此,第一虛擬相機和第二虛擬相機中的任意一個虛擬相機在目標幀對同一份採集數據(對應同一虛擬場景)利用對應的渲染規則進行渲染,可以獲得第一渲染規則對應的第一渲染圖像和第二渲染規則對應的第二渲染圖像。也就是說,該方法可以在同一幀(即,目標幀)獲得對同一虛擬場景執行不同渲染規則對應的不同渲染圖像,以更好的滿足用戶需求。上述在同一幀獲得的對同一虛擬場景執行不同渲染規則對應的不同渲染圖像,還可以通過上述同一應用程式中的第二圖形用戶界面中的對應區域進行輸出展示給用戶,即該方法可以在同一幀實時顯示對同一虛擬場景執行不同渲染規則所獲得的不同渲染圖像,進一步滿足用戶需求。在第一渲染圖像和第二渲染圖像通過第二圖形用戶界面中對應的區域進行顯示,這種顯示方式可以方便開發人員檢測渲染功能效果,以及也可以方便測試檢測人員快速檢測渲染功能是否有問題。上述渲染方法中,通過運行一個應用程式即可實現在同一幀(即,目標幀)獲得對同一虛擬場景執行不同渲染規則對應的不同渲染圖像,該方法還可以降低對運行該一個應用程式的資源的消耗。
74.下面,結合圖3介紹本技術實施例提供的另一種渲染方法。可以理解的是,圖3所述描述的渲染方法為上述圖2所描述的渲染方法的一個具體示例。具體來說,圖3所描述的渲染方法,是以上述圖2所描述的渲染方法中的第一圖形用戶界面中顯示的虛擬場景包括第一虛擬相機和第二虛擬相機,且該第一虛擬相機為虛擬相機1,第二虛擬相機為虛擬相機2;上述圖2所描述的渲染方法中的應用程式為應用程式1;以及,上述圖2所描述的渲染方法中的第一圖形用戶界面為用戶界面1,第二圖形用戶界面為用戶界面2為例進行描述的。
75.圖3是本技術實施例提供的另一種渲染方法的示意圖。應理解,圖3的例子僅僅是為了幫助本領域技術人員理解本技術實施例,而非要將申請實施例限制於所示例的具體數值或具體場景。本領域技術人員根據下面所給出的圖3的例子,顯然可以進行各種等價的修改或變化,這樣的修改和變化也落入本技術實施例的範圍內。可以理解的是,圖3示出的渲染方法可以以上述圖1示出的終端101作為渲染方法的執行主體。如圖3所示,該渲染方法包括s301至s305。可選的,該方法還可以包括s306至s308。下面,對s301至s308進行詳細描述。
76.s301,獲取虛擬場景配置信息,虛擬場景配置信息用於指示包括虛擬對象、虛擬相機1和虛擬相機2的遊戲虛擬場景,且虛擬相機1和虛擬相機2均位於遊戲虛擬場景中的位置1處,虛擬相機1的旋轉角度和虛擬相機2的旋轉角度相同。
77.遊戲虛擬場景可以是對真實世界的仿真場景,也可以是半仿真半虛構的場景,還可以是純虛構的場景。遊戲虛擬場景可以是二維虛擬場景,也可以是2.5維虛擬場景,或者
是三維虛擬場景,本技術實施例對此不作具體限定。對虛擬對象不作具體限定。其中,虛擬對象可以是用戶帳號在應用程式1中控制的虛擬角色,也可以是由應用程式1中的電腦程式控制的虛擬角色。對虛擬場景配置信息的來源不作具體限定。例如,虛擬場景配置信息可以是從原始碼編輯器中獲取的,例如該原始碼編輯器可以是ue編輯器。又如,虛擬場景配置信息可以是從電子設備的存儲器或電子設備所關聯的資料庫中獲得的。
78.在遊戲虛擬場景的同一位置(即位置1)處設置兩個虛擬相機(即虛擬相機1和虛擬相機2),該同一位置是指在虛擬場景中的空間位置相同。示例性的,所述虛擬場景中的空間位置可以通過(x,y,z)表示,單位:米(m)。一個虛擬相機的旋轉角度可以表示為(x
°
,y
°
,z
°
),其中,x
°
代表繞該x軸旋轉的度數,y
°
代表繞該y軸旋轉的度數,z
°
代表繞該z軸旋轉的度數。示例性的,可以通過查看相機屬性信息,獲取虛擬相機1的旋轉角度和虛擬相機2的旋轉角度。對上述位置1在遊戲虛擬場景中的位置不作具體限定。例如,位置1可以是系統隨機確定的遊戲虛擬場景中的一個位置。又如,位置1可以是用戶指定的遊戲虛擬場景中的一個位置。示例性的,圖4a示出了本技術實施例提供的在遊戲虛擬場景中的位置1處設置兩個虛擬相機的示意圖。可以理解的是,圖4a示出的虛擬相機包括虛擬相機1和虛擬相機2,這兩個虛擬相機完全重疊放置,且這兩個虛擬相機的旋轉角度完全相同。對上述虛擬相機1和虛擬相機2的類型不作具體限定。例如,虛擬相機1和虛擬相機2可以為2d虛擬相機、或3d虛擬相機。
79.s302,根據虛擬場景配置信息,在應用程式1中的用戶界面1中創建遊戲虛擬場景。
80.應用程式1可以是圖1示出的終端101中安裝的基於遊戲引擎運行的遊戲應用程式。對該遊戲應用程式的類型不作具體限定。例如,該遊戲應用程式可以為以下任意一種:mmorp遊戲、mmo遊戲或mmos遊戲。
81.對在遊戲虛擬場景的位置1處設置虛擬相機1和虛擬相機2的實現方式中不作具體限定。在一些實現方式中,將相機工具運行所需的所有的資源打包成遊戲引擎兼容的資源包,遊戲引擎可以是unity引擎。例如,利用終端101運行的unity引擎提供的export package功能將相機工具運行所需的資源打包成unity資源包,當需要使用相機工具時,在遊戲引擎中可以利用import package導入該資源包,將相機工具拖入虛擬實境場景即可使用。通過將相機工具打包成資源包,可以使相機工具的使用更加便捷,而且對遊戲項目沒有依賴,實現即插即用的效果。
82.s303,控制虛擬相機1和虛擬相機2在時刻1按照預設的相機的旋轉角度對遊戲虛擬場景進行採集,虛擬相機1獲得採集數據1,以及虛擬相機2獲得採集數據2,採集數據1與採集數據2相同。
83.時刻1是執行上述s301和s302之後的一個時刻。採集數據1與採集數據2相同。具體來說,採集數據1包括用於記錄在時刻1遊戲虛擬場景所包括的所有物體的數據,同樣的,採集數據2也包括用於記錄在時刻1遊戲虛擬場景所包括的所有物體的數據。示例性的,以圖4a示出的場景為上述遊戲虛擬場景在時刻1的場景,這種實現方式中,採集數據1包括用於記錄圖4a示出的場景所包括的2個虛擬人物和一個虛擬建築物的數據,同樣的,採集數據2也包括用於記錄圖4a示出的場景所包括的2個虛擬人物和一個虛擬建築物的數據。虛擬相機1的採集頻率和虛擬相機2的採集頻率可以相同或不同。
84.對控制虛擬相機在時刻1按照預設的相機的旋轉角度對遊戲虛擬場景生成的數據
進行數據採集的實現方式不作限定。示例性的,控制虛擬相機1在時刻1按照預設的相機的旋轉角度對遊戲虛擬場景的數據進行採集,包括:虛擬相機1在時刻1按照預設的相機的旋轉角度跟隨遊戲虛擬場景中移動的虛擬對象的移動而移動。對觸發執行上述s303的觸發條件不作具體限定。在一些實現方式中,響應於滿足預設條件,執行上述s303。其中,所述預設條件可以為以下至少一種條件:預設採集時間、或用戶輸入採集指令。
85.s304,控制虛擬相機1在目標幀的時刻#1調用第一渲染函數在應用程式1的用戶界面2的第一區域對採集數據1進行渲染,以使在第一區域輸出虛擬相機1獲得的第一渲染圖像。
86.s305,控制虛擬相機2在目標幀的時刻#2調用第二渲染函數在應用程式1的用戶界面2的第二區域對採集數據2進行渲染,以使在第二區域輸出虛擬相機2獲得的第二渲染圖像。
87.上述s304中,第一渲染圖像是控制虛擬相機1在目標幀的時刻#1調用第一渲染函數對採集數據1進行渲染獲得的渲染圖像。上述s305中,第二渲染圖像是控制虛擬相機2在目標幀的時刻#2調用第二渲染函數對採集數據2進行渲染獲得的渲染圖像。
88.實際應用中,終端提供的用戶界面顯示的內容(例如,視頻或遊戲畫面)都是以「幀」為單位顯示的。基於此,上述s304中所描述的虛擬相機1執行的渲染操作和上述s305中所描述的虛擬相機2所執行的渲染操作都是在同一幀(即,目標幀)實現的。換句話說,執行上述s304和上述s305,即在到達目標幀時,開啟虛擬相機1執行上述s304所描述的渲染操作,以及開啟虛擬相機2執行上述s305所描述的渲染操作。其中,一幀所耗費的時間非常短暫(毫秒級),也就是說,用戶認為終端提供的用戶界面2包括第一區域顯示的第一渲染圖像和第二區域顯示的第二渲染圖像是實時渲染出來的,以及通過同一幀(即,目標幀)所對應的幀圖像在用戶界面2中進行顯示的。
89.上述s304中的時刻#1與上述s305中的時刻#2不同。也就是說,時刻#1和時刻#2分別為目標幀所包括的多個時刻中的不同的兩個時刻。示例性的,以每秒60幀為例,這種方式中,一幀所耗費的時間約為16.7ms,上述s304所描述的目標幀的時刻#1可以是該一幀所耗費16.7ms中的第8ms,也就是說,在該第8ms虛擬相機1執行對應的渲染操作;上述s305所描述的目標幀的時刻#2可以是該一幀所耗費16.7ms中的第12ms,也就是說,在該第12ms虛擬相機2執行對應的渲染操作。
90.第一渲染函數用於指示對採集數據1進行渲染的方式。第二渲染函數用於指示對採集數據2進行渲染的方式。其中,第一渲染函數的功能與第二渲染函數的渲染功能不同。相應的,第一渲染函數對應的渲染方式與第二渲染函數對應的渲染方式也不同。在本技術實施例中,對第一渲染函數的渲染功能和第二渲染函數的渲染功能不作具體限定,僅需滿足第一渲染函數的功能與第二渲染函數的渲染功能不同。實際應用中,可以根據用戶需求選擇第一渲染函數的功能和第二渲染函數的功能。例如,第一渲染函數的渲染功能用於指示對採集數據1所記錄的所有物體進行渲染;第二渲染函數的渲染功能用於指示對採集數據2所記錄的所有物體進行過度繪製渲染。例如,第一渲染函數的渲染功能用於指示對採集數據1所記錄的所有物體進行渲染,第二渲染函數的渲染功能用於指示對採集數據2所記錄的所有物體中的未被遮擋的物體進行渲染。例如,第一渲染函數的渲染功能用於指示對採集數據1所記錄的所有物體中的不透明物體進行渲染;第二渲染函數的渲染功能用於指示
對採集數據2所記錄的所有物體進行過度繪製渲染。其中,上述示例中的所有物體包括被遮擋的物體和未被遮擋的物體。
91.第一渲染圖像和第二渲染圖像是針對相同的採集數據執行不同渲染函數獲得的渲染圖像,故第一渲染圖像與第二渲染圖像不完全相同。也就是說,第一渲染圖像和第二渲染圖像是存在差異的。示例性的,圖4d中的(1)示出的用戶界面2的第一區域顯示的第一渲染圖像為對虛擬場景包括的所有物體進行渲染的渲染圖像,第二區域顯示的第二渲染圖像為對虛擬場景包括的所有物體進行過度繪製的渲染圖像。對比4c中的(1)示出的兩個渲染結果,可知這兩個渲染結果是對遊戲虛擬場景中的同一時刻同一位置的不同渲染效果的實時渲染顯示結果。
92.在本技術實施例中,可以將第一渲染函數封裝為第一api接口,將第二渲染函數封裝為第二api接口。這種實現方式中,控制虛擬相機1調用第一渲染函數對採集數據1進行渲染獲得第一渲染圖像,包括:控制虛擬相機1調用第一api接口,通過第一api接口對採集數據1進行渲染獲得第一渲染圖像。控制虛擬相機2調用第二渲染函數對採集數據2進行渲染獲得第二渲染圖像,包括:控制虛擬相機2調用第二api接口,通過第二api接口對採集數據2進行渲染獲得第二渲染圖像。
93.應用程式1的用戶界面2的第一區域和應用程式1的用戶界面2的第二區域不存在重疊。在一些實現方式中,第一區域和第二區域各佔應用程式1的用戶界面2的一半界面。示例性的,圖4b示出的用戶界面2中的第一渲染圖像所在區域為第一區域,第二渲染圖像所在區域為第二區域。可選的,在另一些實現方式中,第一區域和第二區域共佔用應用程式1的用戶界面2的部分界面。這種實現方式,應用程式1的用戶界面2中除去第一區域和第二區域之外的其他區域還可以設置為背景顏色(例如,白色或黑色)。可選的,應用程式1的用戶界面2中除去第一區域和第二區域之外的其他區域還可以顯示其他虛擬相機的渲染結果。示例性的,圖4c示出的用戶界面2中的第一渲染圖像所在區域為第一區域,第二渲染圖像所在區域為第二區域,除去第一區域和第二區域以外的區域被設置為黑色填充。可以理解的是,上述以第一區域的大小與第二區域的大小相同,且第一區域和第二區域分別位於應用程式1的用戶界面2的兩側為例進行了說明。可選的,在另一些實現方式中,第一區域的大小與第二區域的大小可以不同,例如第一區域小於或大於第二區域。可選的,在執行上述s304之前還可以執行以下步驟:調整虛擬相機1所關聯的第一區域的位置和大小。可選的,在執行上述s305之前還可以執行以下步驟:調整虛擬相機2所關聯的第二區域的位置和大小。示例性的,上述s304和s305中所描述的應用程式1的用戶界面2的解析度可以為1920
×
1080,這種場景中,第一渲染圖像的大小可以為960
×
540,第二渲染圖像的大小可以為960
×
540,第一渲染圖像的第一區域可以位於應用程式1的用戶界面2的左側,第二渲染圖像的第二區域可以位於應用程式1的用戶界面2的右側。這種實現方式中,用戶界面2僅包括第一區域和第二區域。示例性的,圖4b示出了這種實現方式中用戶界面2的示意圖。
94.執行上述s301至上述s305,可以理解為,在運行一個應用程式(即,應用程式1)的情況下,通過在該一個應用程式創建的遊戲虛擬場景中的同一位置設置兩個虛擬相機(即,虛擬相機1和虛擬相機2),且設置這兩個虛擬相機的旋轉角度相同,以保證這兩個相機在同一時刻從遊戲虛擬場景獲取到的數據是一致的。此後,通過該兩個虛擬相機調用不同渲染函數對該獲取的一致的數據執行不同渲染功能,最後通過該一個應用程式的用戶界面(即,
用戶界面2)實時顯示不同的渲染結果。上述渲染方法,避免了傳統技術中獲得的待渲染數據存在時間不一致和空間不一致的問題,根據該渲染方法獲得的渲染結果能夠更好的滿足用戶需求。
95.實際應用中,可能存在第一渲染函數的渲染功能和/或第二渲染函數的渲染功能不能滿足用戶預設的渲染需求,其中,用戶預設的渲染需求,是指控制虛擬相機對採集數據執行渲染操作的渲染需求。例如,用戶需要虛擬相機2關聯的第二渲染函數的渲染功能實現遮擋剔除的渲染結果,但實際執行第二渲染函數獲得的渲染結果把未被遮擋的物體也進行了剔除,即沒有渲染未被遮擋的物體。這種情況下,可以認為第二渲染函數的渲染功能不能滿足用戶預設的渲染需求。上述一個渲染函數的渲染功能不能滿足用戶預設的渲染需求,還可以理解為,該一個渲染函數對應的原始碼不能滿足用戶預設的渲染需求。為解決上述渲染函數的渲染功能與用戶預設的渲染需求不匹配問題,本技術基於上述渲染方法,進一步提供了以下技術方案以解決上述不匹配的問題。該方法的基本原理包括:通過對比上述用戶界面2第一區域顯示的第一渲染函數的第一渲染圖像和第二區域顯示的第二渲染函數的第二渲染圖像,確定第一渲染函數的渲染功能和/或第二渲染函數的渲染功能是否滿足用戶的預設渲染需求。
96.下面,結合s306至s308以「對比上述用戶界面2第一區域顯示的第一渲染函數的第一渲染圖像和第二區域顯示的第二渲染函數的第二渲染圖像,確定第二渲染函數的渲染功能是否滿足用戶的預設渲染需求。」為例進行描述。可以理解的是,第一渲染函數的渲染功能是否滿足用戶的預設渲染需求的判斷原理與s306至s308描述的判斷原理是類似或相同的。
97.s306,根據第一渲染圖像和第二渲染圖像,確定第二渲染函數的渲染功能是否滿足用戶的預設渲染需求。
98.其中,根據第一渲染圖像和第二渲染圖像,確定第二渲染函數的渲染功能是否滿足用戶的預設渲染需求,包括:在確定第二渲染函數的渲染功能滿足用戶的預設渲染需求情況下,在執行s306之後執行s308;或者,在確定第二渲染函數的渲染功能不滿足用戶的預設渲染需求的情況下,在執行s306之後執行s307。
99.下面,結合具體示例,描述不同實現方式中「確定第二渲染函數的渲染功能是否滿足用戶的預設渲染需求」的方法。
100.實現方式一:
101.實現方式一中,第一渲染函數的渲染功能用於指示對採集數據1所記錄的所有物體執行渲染,第二渲染函數的渲染功能用於指示對採集數據2所記錄的所有物體執行過度繪製渲染,其中,所有物體包括被遮擋的物體和未被遮擋的物體。執行正常渲染即對同一像素點僅執行一次渲染操作,過度繪製渲染即對同一像素點執行多次渲染操作。可以理解的是,被執行多次渲染操作的像素點的亮度高於被執行一次渲染操作的像素點的亮度。示例性的,圖4d中的(1)示出了用戶界面2的第一區域顯示第一渲染圖像為對虛擬場景包括的所有物體進行渲染的渲染圖像,第二區域顯示第二渲染圖像為對虛擬場景包括的所有物體進行過度繪製的渲染圖像。與第一區域顯示的第一渲染圖像相比,可以發現第二區域示出的渲染圖像中的一些像素點的顏色亮度高於對應第一區域示出的渲染圖像中的像素點的顏色亮度。也就是說,第二區域顯示的第二渲染圖像是過度繪製渲染的渲染結果,可以認為該
第二渲染圖像所關聯的第二渲染函數的渲染功能可以滿足用戶的預設渲染需求。
102.實現方式二:
103.實現方式一中,第一渲染函數的渲染功能用於指示對採集數據1所記錄的所有物體執行渲染,第二渲染函數的渲染功能用於指示對採集數據2所記錄的所有物體中的未被遮擋的物體進行渲染,其中,所有物體包括被遮擋的物體和未被遮擋的物體。示例性的,圖4d中的(2)示出了用戶界面2的第一區域顯示第一渲染圖像為對虛擬場景包括的未被遮擋的物體進行渲染的渲染圖像,第二區域顯示第二渲染圖像為對虛擬場景包括的所有物體進行渲染的渲染圖像。與第二區域顯示的第一渲染圖像相比,可以發現被遮擋的物體在第一區域示出的渲染圖像中並未被渲染,即被遮擋的物體在第一區域示出的渲染圖像中沒有顯示。同時,未被遮擋的物體成功在第二區域示出的渲染圖像中顯示。也就是說,第二區域顯示的第二渲染圖像是遮擋剔除的渲染結果,該第二渲染圖像所關聯的第二渲染函數的渲染功能能夠滿足用戶的預設渲染需求。
104.上述實現方式一和實現方式二描述了「確定第二渲染函數的渲染功能滿足用戶的預設渲染需求」的示例。下面,結合實現方式三,描述「確定第二渲染函數的渲染功能不滿足用戶的預設渲染需求」的示例。
105.實現方式三:
106.實現方式一中,第一渲染函數的渲染功能用於指示對採集數據1所記錄的所有物體執行渲染,第二渲染函數的渲染功能用於指示對採集數據2所記錄的所有物體中的未被遮擋的物體進行渲染,其中,所有物體包括被遮擋的物體和未被遮擋的物體。示例性的,圖4d中的(3)示出了用戶界面2的第一區域顯示第一渲染圖像為對虛擬場景包括的未被遮擋的物體進行渲染的渲染圖像,第二區域顯示第二渲染圖像為對虛擬場景包括的所有物體進行渲染的渲染圖像。通過比較上述兩個渲染結果,可以發現第二區域顯示的渲染結果中未被遮擋的物體也並未被渲染出來,如第一區域中虛線圓圈內的未被遮擋的物體並未在第二區域內渲染。也就是說,該第二渲染圖像所關聯的第二渲染函數的渲染功能不能夠滿足用戶的預設渲染需求。
107.需說明的是,上述實現方式一至上述實現方式三中均以「第一渲染函數的渲染功能用於指示對採集數據1所記錄的所有物體執行渲染」為例進行描述。可選的,上述第一渲染函數的渲染功能還可以為其他渲染功能,例如,第一渲染函數的渲染功能用於指示對採集數據1所記錄的所有不透明的物體執行渲染。又如,第一渲染函數的渲染功能用於指示對採集數據1所記錄的所有物體中的大於預設大小的物體進行渲染。
108.s307,對第二渲染函數所關聯的代碼進行修改。
109.在執行上述s307之後,還可重新執行本技術實施例提供的渲染流程。具體來說,重新執行渲染流程時,上述s305中的第二渲染函數已經是根據上述s307修改後的渲染函數,且上述s305中的第二區域顯示的第二渲染圖像也是根據執行修改後的第二渲染函數對採集數據2進行渲染獲得的渲染圖像。
110.執行上述s306和s307,即可以通過對比同一個用戶界面2包括的不同區域分別顯示的對同一數據執行不同渲染功能的渲染結果,確定不同渲染功能所關聯的函數功能是否有誤。例如,程序中設置執行遮擋剔除渲染,但渲染結果中將未被遮擋的物體也給剔除掉了,即渲染結果中並未顯示該未被遮擋的物體。上述通過一個用戶界面2顯示對同一數據的
不同渲染功能對應的不同渲染幾個,可以方便開發人員檢測渲染功能效果,也可以方便測試檢測人員快速檢測渲染函數的渲染功能是否有問題。
111.s308,結束渲染流程。
112.應理解的是,上述圖3所描述的渲染方法僅為示意,並不對本技術實施例提供的渲染方法構成任何限定。上述圖3所描述的渲染方法以在遊戲虛擬場景的同一位置和視場角設置兩個虛擬相機為例描述了本技術實施例提供的渲染方法。可選的,在另一些實現方式中,還可以在遊戲虛擬場景的同一位置和視場角設置兩個以上的虛擬相機,相應的,應用程式1的用戶界面2設置兩個以上的區域,該兩個以上的區域與該兩個以上的虛擬相機一一對應,每個區域用於顯示對應的虛擬相機執行對應的渲染函數的渲染結果。示例性的,遊戲虛擬場景的同一位置設置有3虛擬相機(虛擬相機1、虛擬相機2和虛擬相機3),且這3個虛擬相機具體相同的旋轉角度。也就是說,虛擬相機1採集到的採集數據#1,虛擬相機2採集到的採集數據#2,以及虛擬相機3採集到的採集數據#3中的任意兩個採集數據是相同的。其中,虛擬相機1執行對採集數據1所記錄的所有物體進行渲染的操作,虛擬相機2對採集數據2所記錄的所有物體中的未被遮擋的物體進行渲染的操作,虛擬相機3對採集數據3所記錄的所有物體進行過渡繪製渲染的操作。這種實現方式中,應用程式1的用戶界面2可以設置有3個區域,具體參見圖5示出的第二圖形用戶界面為該應用程式1的用戶界面2的一種示意圖,圖5中示出的第一渲染圖像可以顯示虛擬相機1的渲染結果,第二渲染圖像可以顯示虛擬相機2的渲染結果,第三渲染圖像可以顯示虛擬相機3的渲染結果。
113.在本技術實施例中,在終端中的一個應用程式中創建一個遊戲虛擬場景,且在該遊戲虛擬場景中的同一位置設置兩個虛擬相機(即,虛擬相機1和虛擬相機2),且設置這兩個虛擬相機的旋轉角度相同,這種設置方式可以保證這兩個虛擬相機在同一時刻從遊戲虛擬場景獲取到的採集數據(即,採集數據1和採集數據2)具有一致性(即,時間一致性和空間一致性)。接下來,通過控制這兩個虛擬相機在同一幀(即,目標幀)調用不同渲染函數在用戶界面2中的兩個區域(即,第一區域和第二區域)對該獲取的具有一致性的採集數據執行不同的渲染功能,使得在該同一幀內通過用戶界面2中的兩個區域實時顯示這兩個虛擬相機獲得的兩個不同的渲染結果(即,第一渲染圖像和第二渲染圖像)。上述渲染方法,避免了傳統技術中不同虛擬相機採集獲得的採集數據存在時間不一致和空間不一致的問題,以及避免了傳統技術中不能實現在同一幀實時渲染不同虛擬相機獲得的不同渲染結果的問題。上述渲染方法,保證不同虛擬相機是對具有一致性的數據(即,同一份數據)執行不同邏輯的渲染,進一步,基於該渲染方法獲得的渲染結果能夠更好的滿足用戶(例如,開發人員)需求。綜上,該方法可以在同一幀實時顯示對同一虛擬場景執行不同渲染規則所獲得的不同渲染圖像,以及更好的滿足用戶需求。此外,上述第一渲染圖像和第二渲染圖像通過同一個用戶界面2中的兩個區域進行顯示,這種顯示方式可以方便開發人員檢測渲染功能效果,以及也可以方便測試檢測人員快速檢測渲染功能是否有問題。
114.上文,結合圖1至圖5詳細介紹了本技術提供的渲染方法適用的應用場景和渲染方法。下面,結合圖6和圖7介紹本技術提供的渲染裝置和電子設備。應理解,上文中渲染方法與下文中的渲染裝置、電子設備相對應。下文中未詳細描述的內容可以參見上述方法實施例中的相關描述。
115.圖6是本技術實施例提供的一種渲染裝置的結構示意圖。如圖6所示,該裝置包括
處理單元601、採集單元602、第一渲染單元603和第二渲染單元604,其中,
116.所述處理單元601用於:在應用程式中創建用於在第一圖形用戶界面中顯示的虛擬場景,其中,所述虛擬場景包括第一虛擬相機和第二虛擬相機;所述採集單元602用於:控制所述第一虛擬相機和所述第二虛擬相機在預設時刻對所述虛擬場景進行數據採集,獲得採集數據,其中,所述第一虛擬相機和所述第二虛擬相機在同一時刻對所述虛擬場景進行數據採集所獲得的採集數據相同;所述第一渲染單元603用於:控制所述第一虛擬相機在目標幀按照第一渲染規則對所述採集數據進行渲染,輸出第一渲染圖像;所述第二渲染單元604用於:控制所述第二虛擬相機在所述目標幀按照第二渲染規則對所述採集數據進行渲染,輸出第二渲染圖像,其中,所述第一渲染規則和所述第二渲染規則不同。
117.可選的,在一些實現方式中,所述目標幀包括第一時刻和第二時刻,所述第一渲染單元603還用於:控制所述第一虛擬相機在所述第一時刻按照所述第一渲染規則對所述採集數據進行渲染,輸出所述第一渲染圖像;所述第二渲染單元604還用於:控制所述第二虛擬相機在所述第二時刻按照所述第二渲染規則對所述採集數據進行渲染,輸出所述第二渲染圖像。
118.可選的,在另一些實現方式中,所述應用程式中還創建有用於顯示渲染圖像的第二圖形用戶界面,所述第二圖形用戶界面包括第一區域和第二區域,所述第一渲染單元603還用於:控制所述第一虛擬相機在所述目標幀按照所述第一渲染規則在所述第一區域中對所述採集數據進行渲染,以使所述第一區域輸出所述第一渲染圖像;所述第二渲染單元604還用於:控制所述第二虛擬相機在所述目標幀按照所述第二渲染規則在所述第二區域中對所述採集數據進行渲染,以使所述第二區域輸出所述第二渲染圖像。
119.可選的,在另一些實現方式中,所述第一渲染規則通過第一應用程式接口封裝,所述第二渲染規則通過第二應用程式接口封裝,所述第一應用程式接口和所述第二應用程式接口不同,所述第一渲染單元603還用於:根據所述第一渲染規則,控制所述第一虛擬相機在所述目標幀調用所述第一應用程式接口封裝對所述採集數據進行渲染;所述第二渲染單元604還用於:根據所述第二渲染規則,控制所述第二虛擬相機在所述目標幀調用所述第二應用程式接口封裝對所述採集數據進行渲染。
120.可選的,在另一些實現方式中,所述處理單元601還用於:根據預設虛擬相機參數,在所述應用程式中創建用於在所述第一圖形用戶界面中顯示的所述虛擬場景,其中,所述預設虛擬相機參數指示所述第一虛擬相機和所述第二虛擬相機位於所述虛擬場景中的同一位置,以及指示所述第一虛擬相機的旋轉角度和所述第二虛擬相機的旋轉角度相同,所述第一虛擬相機和所述第二虛擬相機中的任意一個虛擬相機的旋轉角度表示所述任意一個虛擬相機對所述虛擬場景進行數據採集所對應的拍攝視角。
121.可選的,在另一些實現方式中,所述處理單元601還用於:根據所述第一渲染圖像,確定所述第一渲染規則對應的第一代碼和所述第一渲染規則是否匹配;如果所述第一代碼和所述第一渲染規則不匹配,根據所述第一渲染規則對所述第一代碼進行修改,以使修改後的第一代碼與所述第一渲染規則匹配。
122.可選的,在另一些實現方式中,所述處理單元601還用於:根據所述第二渲染圖像,確定所述第二渲染規則對應的第二代碼和所述第二渲染規則是否匹配;如果所述第二代碼與所述第二渲染規則不匹配,根據所述第二渲染規則對所述第二代碼進行修改,以使修改
後的第二代碼與所述第二渲染規則匹配。
123.可選的,在另一些實現方式中,所述採集數據記錄所述虛擬場景中被遮擋的物體和未被遮擋的物體,其中,所述第一渲染規則是用於對所述被遮擋的物體和所述未被遮擋的物體進行渲染的規則;所述第二渲染規則是用於對所述未被遮擋的物體進行渲染的規則;或者所述第二渲染規則是用於對所述被遮擋的物體和所述未被遮擋的物體進行過度繪製的規則。
124.可選的,在另一些實現方式中,所述應用程式是基於遊戲引擎運行的應用程式,所述虛擬場景為遊戲虛擬場景。
125.圖7是本技術實施例提供的一種電子設備的結構示意圖。如圖7所示,包括存儲器701、處理器702、通信接口703以及通信總線704。其中,存儲器701、處理器702、通信接口703通過通信總線704實現彼此之間的通信連接。
126.存儲器701可以是只讀存儲器(read only memory,rom),靜態存儲設備,動態存儲設備或者隨機存取存儲器(random access memory,ram)。存儲器701可以存儲程序,當存儲器701中存儲的程序被處理器702執行時,處理器702和通信接口703用於執行本技術實施例的渲染方法的各個步驟。
127.處理器702可以採用通用的中央處理器(central processing unit,cpu),微處理器,應用專用集成電路(application specific integrated circuit,asic),圖形處理器(graphics processing unit,gpu)或者一個或多個集成電路,用於執行相關程序,以實現本技術實施例的渲染裝置中的單元所需執行的功能。
128.處理器702還可以是一種集成電路晶片,具有信號的處理能力。在實現過程中,本技術提供的渲染方法的各個步驟可以通過處理器702中的硬體的集成邏輯電路或者軟體形式的指令完成。上述的處理器702還可以是通用處理器、數位訊號處理器(digital signal processing,dsp)、專用集成電路(asic)、現成可編程門陣列(field programmable gate array,fpga)或者其他可編程邏輯器件、分立門或者電晶體邏輯器件、分立硬體組件。可以實現或者執行本技術實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。結合本技術實施例所公開的方法的步驟可以直接體現為硬體解碼處理器執行完成,或者用解碼處理器中的硬體及軟體模塊組合執行完成。軟體模塊可以位於隨機存儲器,快閃記憶體、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質中。該存儲介質位於存儲器701,處理器702讀取存儲器701中的信息,結合其硬體完成本技術實施例的渲染裝置中包括的單元所需執行的功能,或者執行本技術方法實施例的渲染方法。
129.通信接口703使用例如但不限於收發器一類的收發裝置,來實現圖7所示的設備與其他設備或通信網絡之間的通信。
130.通信總線704可包括在圖7所示的設備各個部件(例如,存儲器701、處理器702、通信接口703)之間傳送信息的通路。
131.本技術實施例提供了一種計算機可讀存儲介質,計算機可讀存儲介質包括計算機指令,計算機指令在被處理器執行時用於實現本技術實施例中任意一種渲染方法的技術方案。
132.通過以上的實施方式的描述,本領域的技術人員易於理解,這裡描述的示例實施
方式可以通過軟體實現,也可以通過軟體結合必要的硬體的方式來實現。因此,根據本公開實施方式的技術方案可以以軟體產品的形式體現出來,該軟體產品可以存儲在一個計算機可讀介質上,包括若干指令以使得一臺計算設備(可以是個人計算機、伺服器、終端裝置、或者網絡設備等)執行根據本技術公開實施方式的方法。
133.在一個典型的配置中,計算設備包括一個或多個處理器(cpu)、輸入/輸出接口、網絡接口和內存。
134.內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內存等形式,如只讀存儲器(rom)或快閃記憶體(flash ram)。內存是計算機可讀介質的示例。
135.計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限於相變內存(pram)、靜態隨機存取存儲器(sram)、動態隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光碟只讀存儲器(cd-rom)、數字多功能光碟(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁碟存儲或其他磁性存儲介質或任何其他非傳輸介質,可用於存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非暫存電腦可讀媒體(transitory media),如調製的數據信號和載波。
136.本領域技術人員應明白,本技術的實施例可提供為方法、系統或電腦程式產品。因此,本技術可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本技術可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、cd-rom、光學存儲器等)上實施的電腦程式產品的形式。
137.本技術雖然以較佳實施例公開如上,但其並不是用來限定本技術,任何本領域技術人員在不脫離本技術的精神和範圍內,都可以做出可能的變動和修改,因此本技術的保護範圍應當以本技術權利要求所界定的範圍為準。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀