TW202141418A - 處理拆分渲染中的遮蔽之方法及裝置 - Google Patents
處理拆分渲染中的遮蔽之方法及裝置 Download PDFInfo
- Publication number
- TW202141418A TW202141418A TW110108198A TW110108198A TW202141418A TW 202141418 A TW202141418 A TW 202141418A TW 110108198 A TW110108198 A TW 110108198A TW 110108198 A TW110108198 A TW 110108198A TW 202141418 A TW202141418 A TW 202141418A
- Authority
- TW
- Taiwan
- Prior art keywords
- content group
- content
- group
- obscures
- real
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公開涉及用於圖形處理的方法和裝置。本公開的各方面可以識別場景中的第一內容組和第二內容組。此外,本公開的各方面可以確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分。另外,本公開可以基於確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分來表示第一內容組和第二內容組。在一些方面,第一內容組可以包括至少一些現實內容,並且第二內容組可以包括至少一些擴增內容。本公開還可使用遮蔽材料來渲染第一內容組的表面的至少一部分。
Description
本公開總體上涉及處理系統,並且更特別地,涉及一種或多種用於圖形處理的技術。
計算設備通常利用圖形處理單元(GPU)來加速圖形資料的渲染以進行顯示。這樣的計算設備可以包括例如電腦工作站、諸如所謂的智慧型手機的行動電話、嵌入式系統、個人電腦、平板電腦和電玩主機。GPU執行圖形處理管線(pipeline),該管線包括一個或多個處理階段,這些階段一起操作以執行圖形處理命令並輸出幀。中央處理單元(CPU)可以通過向GPU發佈一個或多個圖形處理命令來控制GPU的操作。現代CPU通常能夠同時執行多個應用程式,每個應用程式在執行期間可能需要利用GPU。提供用於在顯示器上進行視覺呈現的內容的設備通常包括GPU。
通常,設備的GPU被配置為執行圖形處理管線中的處理。然而,隨著無線通訊和較小的手持設備的出現,對改進圖形處理的需求已日益增長。
以下呈現了一個或多個方面的簡化概述,以便提供對這些方面的基本理解。該概述不是所有預期方面的詳盡概述,並且既不旨在識別所有方面的關鍵元件,也不旨在描繪任何或所有方面的範圍。其唯一目的是以簡化形式呈現一個或多個方面的一些概念,作為稍後呈現的更詳細描述的序言。
在本公開的一方面,提供了一種方法、一種電腦可讀媒體(例如,非暫時性可讀電腦可讀媒體)和一種裝置。該裝置可以是伺服器、用戶端設備、中央處理單元(CPU)、圖形處理單元(GPU)或可以執行圖形處理的任何裝置。該裝置可以識別場景中的第一內容組和第二內容組。該裝置還可以確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分。另外,該裝置可以基於確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分來表示第一內容組和第二內容組。在一些方面,當第一內容組的至少一部分遮蔽第二內容組的至少一部分時,裝置可以使用遮蔽材料來渲染第一內容組的一個或多個表面的至少一部分。該裝置還可以根據至少一個第一平面方程式生成至少一個第一看板,並且根據至少一個第二平面方程式生成至少一個第二看板。該裝置還可以生成至少一個第一網格和第一陰影紋理,以及至少一個第二網格和第二陰影紋理。此外,該裝置可以將與第一內容組相關聯的資訊和與第二內容組相關聯的資訊傳遞給用戶端設備。
在另一方面,一種圖形處理的方法包括:識別場景中的第一內容組和第二內容組;確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分;以及基於確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分來表示第一內容組和第二內容組。
在另一示例中,提供了一種用於無線通訊的裝置,該裝置包括收發器、配置為儲存指令的記憶體、以及與收發器和記憶體通訊耦接的一個或多個處理器。該方面可以包括:一個或多個處理器,被配置為:識別場景中的第一內容組和第二內容組;確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分;以及基於確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分來表示第一內容組和第二內容組。
在另一方面,提供了一種用於圖形處理的裝置,該裝置包括用於識別場景中的第一內容組和第二內容組的構件;用於確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分的構件;用於基於確定第一內容組的至少一部分否是遮蔽或潛在地遮蔽第二內容組的至少一部分來表示第一內容組和第二內容組的構件。
在再一方面,提供了一種非暫時性電腦可讀媒體,其包括執行用於圖形處理的代碼的一個或多個處理器,該代碼在由處理器執行時使處理器識別場景中的第一內容組和第二內容組;確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分;以及基於確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分來表示第一內容組和第二內容組。
在附圖和以下描述中闡述了本公開的一個或多個示例的細節。根據說明書和附圖以及根據申請專利範圍,本公開的其他特徵、目的和優點將是顯而易見的。
本申請要求於2020年4月3日提交的題為“METHODS AND APPARATUS FOR HANDLING OCCLUSIONS IN SPLIT RENDERING”的申請號為63/005,164的美國臨時申請以及2020年10月1日提交的題為“METHODS AND APPARATUS FOR HANDLING OCCLUSIONS IN SPLIT RENDERING”的申請號為17/061,179的美國專利申請的優先權,這兩件申請都已轉讓給本受讓人,並在此通過引用明確地併入本文。
在擴增實境(AR)系統中,準確捕獲遮蔽可能是一個挑戰。當現實世界的內容遮蔽擴增內容時,可能就是這種情況。此外,這對於存在延遲問題的AR系統尤其如此。現實世界的內容和擴增內容的準確遮蔽可以幫助用戶獲得更現實和身臨其境的AR體驗。本公開的一些方面可以通過確定關於這些物件的深度資訊來解決上述對現實世界或擴增的物件的遮蔽。例如,出於擴增目的,現實世界的表面可以被視為遮蔽物,並且可以被流傳輸給用戶端設備並使用遮蔽材料在用戶端上進行渲染。具有遮蔽材料或顯示值為空的物件可以視為已渲染的物件,但在用戶端顯示中可能看不到。因此,本公開的各方面可以確定或渲染用於現實世界遮蔽物件的值,並且向這些物件提供遮蔽材料。在某些方面,這些遮蔽材料可以表示實體平坦的表面的顏色,例如像在看板(billboard)中那樣。在其他方面,可以將遮蔽材料分配給由網格描述的表面,例如,網格對應於被視為遮蔽物的現實世界的物件。通過這樣做,關於遮蔽物件的網格和/或資訊可以隨著時間變得越來越精確。因此,本公開的各方面可以提高在拆分渲染系統中遮蔽內容的準確性。
在下文中,參考附圖更全面地描述系統、裝置、電腦程式產品和方法的各個方面。然而,本公開可以以許多不同的形式實施,並且不應被解釋為限於貫穿本公開呈現的任何特定結構或功能。而是,提供這些方面以使得本公開將是透徹和完整的,並將向本領域技術人員充分傳達本公開的範圍。基於本文的教導,本領域技術人員應理解,本公開的範圍旨在覆蓋本文所公開的系統、裝置、電腦程式產品和方法的任何方面,無論是獨立於本公開的其他方面或是與其他方面結合實現。例如,可以使用本文闡述的任何數量的方面來實現裝置或實踐方法。另外,本公開的範圍旨在覆蓋這樣的裝置或方法,該裝置或方法使用不同于本文闡述的本公開的各個方面的其他結構、功能、或結構和功能或者除了本文闡述的本公開的各個方面還有其他結構、功能、或結構和功能來實踐。本文公開的任何方面可以通過申請專利範圍的一個或多個元件來體現。
儘管本文描述了各個方面,但是這些方面的許多變化和置換都落入本公開的範圍內。儘管提到了本公開的方面的一些潛在的益處和優點,但是本公開的範圍並不旨在限於特定的益處、用途或目的。相反,本公開的各方面旨在廣泛地適用於不同的無線技術、系統組態、網路以及傳輸協定,其中一些示例性地在附圖和以下描述中示出。詳細描述和附圖僅是對本公開的說明而不是限制,本公開的範圍由所附申請專利範圍及其等同物限定。
參考各種裝置和方法呈現了若干方面。通過各種方塊、組件、電路、處理、演算法等(統稱為“元件”)在下面的詳細描述中描述了這些裝置和方法,並在附圖中示出了這些裝置和方法。可以使用電子硬體、電腦軟體或它們的任意組合來實現這些元件。將這些元件實現為硬體或是軟體取決於特定的應用程式和施加在整個系統上的設計約束。
作為示例,元件或元件的任何部分或元件的任何組合可以被實現為包括一個或多個處理器(也可以稱為處理單元)的“處理系統”。處理器的示例包括微處理器、微控制器、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、應用程式處理器、數位訊號處理器(DSP)、精簡指令集計算(RISC)處理器、單晶片系統(SOC)、基頻處理器、特殊應用積體電路(ASIC)、現場可程式化邏輯閘陣列(FPGA)、可程式化邏輯設備(PLD)、狀態機、閘控邏輯、離散硬體電路以及配置為執行貫穿本公開描述的特種功能的其他合適的硬體。處理系統中的一個或多個處理器可以執行軟體。軟體可以廣義地解釋為指令、指令集、代碼、代碼段、程式碼、程式、子程式、軟體組件、應用程式、軟體應用程式、套裝軟體、常式、子常式、物件、可執行檔、執行執行緒、程序、函式等等,而無論是被稱為軟體、韌體、中介軟體、微程式、硬體描述語言或是其他形式。術語應用程式可以指軟體。如本文所述,一個或多個技術可以指被配置為執行一個或多個功能的應用,即軟體。在這樣的示例中,應用可以被儲存在記憶體中,例如,處理器的單晶片記憶體、系統記憶體或任何其他記憶體。本文描述的硬體(諸如,處理器)可以被配置為執行應用程式。例如,該應用程式可以被描述為包括當由硬體執行時使硬體執行本文描述的一個或多個技術的代碼。作為示例,硬體可以從記憶體存取代碼並且執行從記憶體存取的代碼以執行本文描述的一個或多個技術。在一些示例中,在本公開中識別了組件。在這樣的示例中,組件可以是硬體、軟體或它們的組合。組件可以是單獨的組件,也可以是單個組件的子組件。
因此,在本文描述的一個或多個示例中,描述的功能可以以硬體、軟體或它們的任何組合來實現。如果以軟體實現,則功能可以被儲存或作為一個或多個指令或代碼被編碼在電腦可讀媒體上。電腦可讀媒體包括電腦儲存媒體。儲存媒體可以是電腦可以存取的任何可用媒體。作為示例而非限制,這樣的電腦可讀媒體可以包括隨機存取記憶體(RAM)、器唯讀記憶體(ROM)、電子抹除式可複寫唯讀記憶體(EEPROM)、光碟儲存、磁碟儲存、其他磁性儲存設備、上述類型的電腦可讀媒體的組合、或可用於以電腦可存取的指令或資料結構形式儲存電腦可執行代碼的任何其他媒體。
總體上,本公開描述了用於在單個設備或多個設備中具有圖形處理管線、提高圖形內容的渲染和/或減少處理單元(即,被配置為執行本文描述的一個或多個技術的任何處理單元,諸如GPU)的負載的技術。例如,本公開描述了用於在利用圖形處理的任何設備中進行圖形處理的技術。貫穿本公開描述了其他示例益處。
如本文所使用的,術語“內容”的實例可以指“圖形內容”、“3D圖形設計的產品”、它們的再現(rendition),即“圖像”,反之亦然。不管這些術語是否被用作形容詞、名詞或其他詞性,都是如此。在一些示例中,如本文中所使用的,術語“圖形內容”可以指由圖形處理管線的一個或多個處理生成的內容。在一些示例中,如本文所使用的,術語“圖形內容”可以指由被配置為執行圖形處理的處理單元生成的內容。在一些示例中,如本文所使用的,術語“圖形內容”可以指由圖形處理單元生成的內容。
在一些示例中,如本文中所使用的,術語“顯示內容”可以指由被配置為執行顯示處理的處理單元生成的內容。在一些示例中,如本文中所使用的,術語“顯示內容”可以指由顯示處理單元生成的內容。圖形內容可以被處理成顯示內容。例如,圖形處理單元可以將諸如幀的圖形內容輸出給緩衝器(其可以稱為幀緩衝器)。顯示處理單元可以從緩衝器讀取圖形內容(諸如一個或多個幀),並且在其上執行一個或多個顯示處理技術以生成顯示內容。例如,顯示處理單元可以被配置為在一個或多個渲染的層上執行合成以生成幀。作為另一示例,顯示處理單元可以被配置為將兩個或更多個層組成、混合或以其它方式組合在一起形成單個幀。顯示處理單元可以被配置為對幀執行縮放,例如,上縮放或下縮放。在一些示例中,幀可以指層。在其他示例中,幀可以指已經混合在一起以形成幀的兩個或更多個層,即,幀包括兩個或更多個層,並且包括兩個或更多個層的幀可以隨後被混合。
圖1是示出了被配置為實現本公開的一個或多個技術的示例系統100的方塊圖。系統100包括設備104。設備104可以包括用於執行本文描述的各種功能的一個或多個組件或電路。在一些示例中,設備104的一個或多個組件可以是SOC的組件。設備104可以包括被配置為執行本公開的一個或多個技術的一個或多個組件。在所示的示例中,設備104可以包括處理單元120、內容編碼器/解碼器122和系統記憶體124。在一些方面,設備104可以包括多個可選組件,例如,通訊介面126、收發器132、接收器128、發送器130、顯示處理器127和一個或多個顯示器131。對顯示器131的引用可以指一個或多個顯示器131。例如,顯示器131可以包括單個顯示器或多個顯示器。顯示器131可以包括第一顯示器和第二顯示器。第一顯示器可以是左眼顯示器,第二顯示器可以是右眼顯示器。在一些示例中,第一顯示器和第二顯示器可以接收不同的幀以呈現在其上。在其他示例中,第一顯示器和第二顯示器可以接收相同的幀以呈現在其上。在進一步的示例中,圖形處理的結果可以不顯示在設備上,例如,第一和第二顯示器可以不接收任何用於呈現在其上的幀。相反,幀或圖形處理結果可以被傳送給另一設備。在某些方面,這可以被稱為拆分渲染。
處理單元120可以包括內部記憶體121。處理單元120可以被配置為執行圖形處理,諸如在圖形處理管線107中。內容編碼器/解碼器122可以包括內部記憶體123。在一些示例中,設備104可以包括顯示處理器,諸如顯示處理器127,以在由一個或多個顯示器131呈現之前,對由處理單元120生成的一個或多個幀執行一個或多個顯示處理技術。顯示處理器127可以被配置為執行顯示處理。例如,顯示處理器127可以被配置為對由處理單元120生成的一個或多個幀執行一個或多個顯示處理技術。一個或多個顯示器131可以被配置為顯示或以其它方式呈現由顯示處理器127處理的幀。在一些示例中,一個或多個顯示器131可以包括以下中的一個或多個:液晶顯示器(LCD)、電漿顯示器、有機發光二極體(OLED)顯示器、投影顯示設備、擴增實境顯示設備、虛擬實境顯示設備、頭戴式顯示器或任何其他類型的顯示設備。
處理單元120和內容編碼器/解碼器122可以存取處理單元120和內容編碼器/解碼器122外部的記憶體,例如系統記憶體124。例如,處理單元120和內容編碼器/解碼器122可以被配置為從外部記憶體(諸如系統記憶體124)讀取和/或寫入外部記憶體。處理單元120和內容編碼器/解碼器122可以通過匯流排通訊地耦接至系統記憶體124。在一些示例中,處理單元120和內容編碼器/解碼器122可以通過匯流排或不同的連接彼此通訊地耦接。
內容編碼器/解碼器122可以被配置為從諸如系統記憶體124和/或通訊介面126的任何源接收圖形內容。系統記憶體124可以被配置為儲存接收到的編碼或解碼的圖形內容。內容編碼器/解碼器122可以被配置為以編碼的像素資料的形式例如從系統記憶體124和/或通訊介面126接收編碼或解碼的圖形內容。內容編碼器/解碼器122可以被配置為對任何圖形內容進行編碼或解碼。
內部記憶體121或系統記憶體124可以包括一個或多個揮發性或非揮發性記憶體或儲存設備。在一些示例中,內部記憶體121或系統記憶體124可以包括RAM、SRAM、DRAM、可擦除可規劃式唯讀記憶體(EPROM)、電子抹除式可複寫唯讀記憶體(EEPROM)、快閃記憶體、磁資料媒體或光儲存媒體、或任何其他類型的記憶體。
根據一些示例,內部記憶體121或系統記憶體124可以是非暫時性儲存媒體。術語“非暫時性”可以指示儲存媒體沒有體現在載波或傳播訊號中。然而,術語“非暫時性”不應被解釋為意味著內部記憶體121或系統記憶體124是不可移動的或者其內容是靜態的。作為一個示例,系統記憶體124可以從設備104移除並且移動到另一設備。作為另一個示例,系統記憶體124可能不能從設備104移除。
處理單元120可以是中央處理單元(CPU)、圖形處理單元(GPU)、通用GPU(GPGPU)或可以被配置為執行圖形處理的任何其他處理單元。在一些示例中,處理單元120可以被整合到設備104的主機板中。在一些示例中,處理單元120可以存在於安裝在設備104的主機板中的埠中的圖形卡上或可以以它方式被併入配置為與設備104互操作的週邊設備中。處理單元120可以包括一個或多個處理器,諸如一個或多個微處理器、GPU、特殊應用積體電路(ASIC)、現場可程式化邏輯閘陣列(FPGA)、算術邏輯單元(ALU)、數位訊號處理器(DSP)、離散邏輯、軟體、硬體、韌體、其他等效的積體或離散邏輯電路、或它們的任意組合。如果部分地以軟體實現這些技術,則處理單元120可以將用於軟體的指令儲存在適當的、非暫時性電腦可讀儲存媒體(例如內部記憶體121)中,並且可以使用一個或多個處理器在硬體中執行指令,以執行本公開的技術。包括硬體、軟體、硬體和軟體的組合等的任何前述內容可以被認為是一個或多個處理器。
內容編碼器/解碼器122可以是被配置為執行內容解碼的任何處理單元。在一些示例中,內容編碼器/解碼器122可以被整合到設備104的主機板中。內容編碼器/解碼器122可以包括一個或多個處理器,諸如一個或多個微處理器、特殊應用積體電路(ASIC)、現場可程式化邏輯閘陣列(FPGA)、算術邏輯單元(ALU)、數位訊號處理器(DSP)、影音處理器、離散邏輯、軟體、硬體、韌體、其他等效的積體或離散邏輯電路、或它們的任意組合。如果部分地以軟體實現這些技術,則內容編碼器/解碼器122可以將用於軟體的指令儲存在適當的、非暫時性電腦可讀儲存媒體(例如內部記憶體123)中,並且可以使用一個或多個處理器在硬體中執行指令,以執行本公開的技術。包括硬體、軟體、硬體和軟體的組合等的任何前述內容可以被認為是一個或多個處理器。
在一些方面,系統100可以包括可選的通訊介面126。通訊介面126可以包括接收器128和發送器130。接收器128可以被配置為執行本文關於設備104所描述的任何接收功能。另外,接收器128可以被配置為從另一設備接收資訊,例如,眼睛或頭部的位置資訊、渲染命令或位置資訊。發送器130可以被配置為執行本文中關於設備104描述的任何傳送功能。例如,發送器130可以被配置為向另一設備傳送資訊,該資訊可以包括對內容的請求。接收器128和發送器130可以被組合成收發器132。在這樣的示例中,收發器132可以被配置為執行本文中關於設備104描述的任何接收功能和/或傳送功能。
再次參考圖1,在某些方面,圖形處理管線107可以包括被配置為識別場景中的第一內容組和第二內容組的確定組件198。確定組件198還可被配置為確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分。確定組件198還可以被配置為基於確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分來表示第一內容組和第二內容組。確定組件198還可被配置為當第一內容組的至少一部分遮蔽第二內容組的至少一部分時,使用遮蔽材料渲染第一內容組的一個或多個表面的至少一部分。確定組件198還可被配置為根據至少一個第一平面方程式生成至少一個第一看板,並且根據至少一個第二平面方程式生成至少一個第二看板。確定組件198還可被配置為將與第一內容組相關聯的資訊和與第二內容組相關聯的資訊傳遞給用戶端設備。
如本文中所描述,諸如設備104的設備可以指被配置為執行本文所描述的一個或多個技術的任何設備、裝置或系統。例如,設備可以是伺服器、基地台、使用者設備、用戶端設備、站、存取點、電腦(例如個人電腦、桌上型電腦、筆記型電腦、平板電腦、電腦工作站或大型主機)、終端產品、裝置、電話、智慧型手機、伺服器、電玩平臺或控制台、手持設備(例如可擕式影音設備或個人數位助理(PDA))、可穿戴計算設備(例如,智慧手錶、擴增實境設備或虛擬實境設備)、非可穿戴設備、顯示器或顯示設備、電視機、電視機上盒、中間網路設備、數位媒體播放機、影音流設備、內容流設備、車載電腦、任何行動設備、配置為生成圖形內容的任何設備、或配置為執行本文所述的一個或多個技術的任何設備。可以將本文的處理描述為由特定組件(例如,GPU)執行,但是在進一步的實施例中,可以使用與公開的實施例一致的其他組件(例如,CPU)來執行。
GPU可以處理GPU管線中的多種類型的資料或資料分組。例如,在一些方面,GPU可以處理兩種類型的資料或資料分組,例如,上下文暫存器分組和繪製調用(draw call)資料。上下文暫存器分組可以是一組全域狀態資訊,例如,關於全域暫存器、著色程式或常數資料的資訊,其可以調節將如何處理圖形上下文。例如,上下文暫存器分組可以包括關於顏色格式的資訊。在上下文暫存器分組的一些方面中,可能存在指示哪個工作量屬於上下文暫存器的位元。此外,可能有多個函式或程式設計(programming)同時和/或並行運行。例如,函式或程式設計可以描述某個操作,例如顏色模式或顏色格式。因此,上下文暫存器可以定義GPU的多個狀態。
上下文狀態可以用於確定單獨的處理單元(例如,頂點獲取器(vertex fetcher,VFD)、頂點著色器(vertex shader,VS)、著色器處理器或幾何形狀處理器)如何工作和/或該處理單元以什麼模式工作。為此,GPU可以使用上下文暫存器和程式設計資料。在一些方面,GPU可基於模式或狀態的上下文暫存器定義在管線中產生工作量,例如,頂點或像素工作量。某些處理單元(例如VFD)可以使用這些狀態來確定某些功能,例如,如何組裝頂點。由於這些模式或狀態可能會改變,因此GPU可能需要改變對應的上下文。此外,與模式或狀態對應的工作量可能會跟隨改變的模式或狀態。
GPU可以以各種不同的方式對圖像進行渲染。在一些情況下,GPU可以使用渲染或平鋪渲染(tiled rendering)來對圖像進行渲染。在平鋪渲染GPU中,可以將圖像劃分或拆分為不同的部分或圖塊。劃分圖像後,可以分別渲染每個部分或圖塊(tiles)。平鋪渲染GPU可以將電腦圖形圖像劃分為網格格式,以便分別渲染網格的每個部分,即圖塊。在一些方面,在裝箱通道(binning pass)期間,圖像可以被劃分成不同的箱(bins)或圖塊。此外,在裝箱通道中,例如可以使用繪製調用在某些箱中對不同的圖元進行著色。在一些方面,在裝箱通道期間,可以構造可見性流,其中可以識別可見圖元或繪製調用。
在渲染的一些方面,可能存在多個處理階段或通道。例如,可以在兩個通道中執行渲染,例如,可見性通道和渲染通道。在可見性通道期間,GPU可以輸入渲染工作量,記錄圖元或三角形的位置,然後確定哪些圖元或三角形屬於幀的哪個部分。在可見性通道的一些方面,GPU還可以識別或標記可見性流中的每個圖元或三角形的可見性。在渲染通道期間,GPU可以輸入可見性流並一次處理幀的一部分。在一些方面,可以分析可見性流以確定哪些圖元是可見的或者不可見的。這樣,可以處理可見的圖元。這樣一來,GPU就可以減少不必要的處理或渲染不可見圖元的工作量。
在一些方面,可以在多個位置和/或在多個設備上執行渲染,例如以便在不同設備之間劃分渲染工作量。例如,可以在伺服器與用戶端設備之間對渲染進行拆分,這可以稱為“拆分渲染”。在一些情況下,拆分渲染可以是用於將內容帶到使用者設備或頭戴式顯示器(HMD)的方法,其中圖形處理的一部分可以在設備或HMD的外部執行,例如在伺服器處。
可以對例如虛擬實境(VR)應用、擴增實境(AR)應用、雲端遊戲和/或延展實境(XR)應用的多個不同類型的應用執行拆分渲染。在VR應用中,在使用者設備處顯示的內容可以對應於人造或動畫的內容,例如,在伺服器或使用者設備處渲染的內容。在AR或XR內容中,在使用者設備處顯示的內容的一部分可以對應于現實世界的內容,例如現實世界中的物件,並且該內容的一部分可以是人造的或動畫的內容。此外,人造或動畫的內容和現實世界的內容可以顯示在光學透視或影音透視設備中,使得使用者可以同時觀看現實世界的物件和人造或動畫的內容。在一些方面,人造或動畫的內容可以被稱為擴增內容,反之亦然。
在AR應用中,物件可以從使用者設備的有利位置遮蔽其他物件。AR應用中也可能存在不同類型的遮蔽。例如,擴增內容可以遮蔽現實世界的內容,例如,渲染的物件可以部分遮蔽現實的物件。此外,現實世界的內容可能遮蔽擴增內容,例如,現實的物件可能會部分遮蔽渲染的物件。現實世界的內容和擴增內容的這種重疊會產生上述遮蔽,這是擴增內容和現實世界的內容可以在AR中如此無縫地融合的原因之一。這也可能導致難以解決擴增內容和現實世界的內容的遮蔽,從而使得擴增內容和現實世界的內容的邊緣可能會錯誤地重疊。
在一些方面,可以在現實世界或透視內容上渲染擴增內容或擴增物。這樣,擴增物可以從使用者設備的有利位置遮蔽擴增物之後的任何物件。例如,可以渲染具有紅色(R)、綠色(G)、藍色(B)(RGB)值的像素,以遮蔽現實世界的物件。因此,擴增物可能會遮蔽擴增物之後的現實世界的物件。在影音透視系統中,可以通過將擴增層合成到前景來實現相同的效果。這樣,擴增物可能會遮蔽現實世界的內容,反之亦然。
如上所述,當利用AR系統時,準確地捕獲遮蔽可能是一個挑戰。此外,這對於存在延遲問題的AR系統尤其如此。在一些方面,要準確地捕獲遮蔽擴增內容的現實世界的物件可能特別困難。現實世界的內容和擴增內容的準確遮蔽可以幫助用戶獲得更現實和身臨其境的AR體驗。
圖2示出了根據本公開的一個或多個技術的示例圖像或場景200。場景200包括擴增內容210和現實世界的內容220,現實世界的內容220包括邊緣222。更具體地,圖2顯示了現實世界的物件220,例如門,其遮蔽擴增內容210,例如人。如圖2所示,即使現實世界的物件220要完全遮蔽擴增內容210,擴增內容210也會與現實世界的物件220的邊緣222稍微重疊。例如,當門要完全遮蔽人時,人的一部分會稍微與門的邊緣重疊。
如上所述,圖2顯示了可能難以在AR系統中準確地實現遮蔽擴增內容的現實世界的內容的效果。如圖2所示,AR系統可能難以準確地反映出現實世界的物件何時遮蔽擴增內容,反之亦然。實際上,當物件是現實世界的內容和擴增內容時,某些AR系統可能難以快速和準確地處理兩個物件的邊緣。因此,需要準確地描繪現實世界的內容何時遮蔽擴增內容。
為了準確地類比遮蔽擴增內容的現實世界的內容,反之亦然,可以確定遮蔽物件的現實世界的幾何形狀信息。在一些情況下,這可以通過電腦視覺技術、三維(3D)重建和/或網格化(meshing)的組合來實現。在一種情況下,網格化可以在用戶端設備或HMD上即時運行,並且重構的幾何形狀可以被傳送給伺服器或雲端伺服器。在另一種情況下,用戶端設備或HMD可以按順序捕獲圖像並將其傳送給伺服器,然後伺服器執行3D重構和/或網格化演算法以提取有關在現實世界的場景中可見的物件的3D網格資訊。例如,在一些方面,可以確定現實世界的3D網格。因此,遮蔽物件的幾何形狀可能在用戶端設備上可獲得並被傳送給伺服器,反之亦然。隨著對相同的一個或多個現實世界的物件的更多觀察變得可用,幾何形狀表示可以隨著時間的流逝而被調整並變得更加精確。這樣一來,關於遮蔽物件的網格和/或資訊可以隨著時間的流逝變得越來越精確。
在一些方面,為了獲得擴增內容和現實世界的內容的精確描繪,擴增內容可能需要精確地停在現實世界的內容的邊緣,例如,如果現實世界的內容正在遮蔽擴增內容。這樣,遮蔽擴增內容的現實世界的內容可能需要對應於未被渲染的擴增內容的一部分。如圖2所示,疊加的擴增內容210可能需要停在遮蔽現實內容220的邊緣處。
在一些情況下,本公開的各方面可以確定遮蔽現實世界的內容的精確邊緣。另外,可以在渲染時確定或知道現實世界的內容的邊緣。這樣一來,擴增內容可以精確地停在現實世界的物件的邊緣,這可以提高AR體驗的準確性。
在一些方面,可以在例如渲染引擎中的可見性通道期間解決前述的邊緣確定。在拆分AR系統中,渲染引擎駐留在伺服器上。可見性通道可以考慮所有相關網格的姿勢,例如,在當前攝影機姿勢的角度下的現實世界網格和擴增網格兩者,和/或考慮到現實世界幾何形狀的深度以及擴增內容的期望深度/位置,確定從當前攝影機姿勢可以看到哪些三角形。在本公開的各方面中,現實世界的物件的網格上的可見三角形可以被渲染為遮蔽材料,或者可以通過例如具有(0,0,0)值的遮蔽消息來表示,並且電腦圖形物件的網格上的可見三角形可以被渲染為非零像素,即在彩色中。
在本公開的上下文中,術語“攝影機”可以互換使用以表示兩個不同的實體:電腦圖形攝影機(例如,圖形渲染引擎內部的攝影機物件)或現實世界的觀察者(例如,佩戴AR設備的使用者的眼睛)。可以基於經由攝影機“觀察”的內容來確定適合當前使用的術語攝影機的任何變體,例如,如果討論了現實世界的內容,則“攝影機”可以表示現實世界的觀察者。還要注意,XR系統中的兩種類型的攝影機之間可能存在對應關係,這是因為現實世界的觀察者的姿勢可以用於修改圖形渲染引擎攝影機的姿勢。此外,在本公開中討論的計算可以在電腦圖形世界的範圍內組合現實物件和動畫物件,從而可以在圖形渲染引擎內表示兩者。當發生這種情況時,術語“攝影機”的兩個概念可能會合併為對應於電腦圖形攝影機。
拆分XR、AR、雲端遊戲系統在將渲染的內容傳遞給用戶端顯示器時也可能引入延遲。在一些方面,比與用戶端渲染相比,當在伺服器上進行渲染時,此延遲甚至可能更高,但是它也可能啟用更複雜的XR或AR應用。另外,在計算攝影機姿勢的時間與內容出現在用戶端顯示器上的時間之間可能存在不可忽略的延遲。例如,在拆分XR、AR、雲端遊戲系統中可能始終存在一定量的延遲。
本公開可以考慮拆分XR、AR、雲端遊戲架構的兩種形態:像素流傳輸(PS)架構和向量流傳輸(VS)架構。在PS系統中,可以使用顯示之前用戶端上的非同步時間扭曲的變體來補償內容延遲。在一些方面,在拆分XR系統中,可以基於用於渲染內容的視圖與用於及時顯示相同內容的最新的視圖之間的視圖轉換來對流傳輸給用戶端的PS幀進行時間扭曲。例如,本公開的各方面可以執行時間補償重新投影,使得可以基於在補償的時間段內攝影機位置的估計距離和攝影機行進方向來確定延遲幀的出現。
本文描述的用於在拆分/遠端渲染AR系統中進行遮蔽處理的方法可以包括專門用於其中在螢幕空間中渲染的場景可以是伺服器與用戶端之間的介面的一部分的系統的技術。這些系統可以被稱為像素流傳輸系統。另外,本公開可以包括專用於其中最終螢幕空間渲染可以在用戶端上發生而伺服器可以在潛在的可見紋理的物件空間中提供相關場景幾何形狀和與姿勢有關的陰影的系統的技術。這些系統可以被稱為向量流傳輸系統。這兩種技術的描述可以分散在整個本公開中。確定正在描述哪個系統的一種方法是考慮描述中的介面。例如,用於像素流傳輸系統的介面(訊令媒體)可以是看板,而用於向量流傳輸系統的介面(訊令媒體)可以是網格或幾何形狀以及用於陰影表面紋理的陰影圖集。
在一些情況下,PS用戶端上的非同步時間扭曲(ATW)可能會使渲染的內容或CGI的形狀失真。例如,ATW本質上可以是平面視圖變換,而CGI場景中的大多數內容本質上可能不是平面的,甚至更少的內容表面可以遵循共平面關係,其中,在所述共平面關係中所討論的平面嚴格按攝影機對齊。在一些方面,如果擴增物的一部分在伺服器上被渲染並且然後被傳送給用戶端以完成渲染,則渲染的擴增物可能經歷時間扭曲。在這些方面,可能難以在僅應用于擴增物的時間扭曲之後在任何現實世界的物件與擴增物之間保留準確的遮蔽邊界。
在像素流傳輸架構中,伺服器或遊戲引擎可以確定場景的像素資訊或眼睛緩衝器資訊,並將像素資訊傳送給用戶端設備。然後,用戶端設備可以基於像素資訊來渲染場景。在一些情況下,該像素資訊或眼睛緩衝器資訊可以對應於XR攝影機的特定姿勢。
在一些方面,並且在拆分AR系統中,由ATW在擴增內容上進行的重新投影操作還可能使擴增內容的邊緣相對于遮蔽現實世界的物件發生偏移。例如,在上面的圖2中,半開的門220似乎被人210部分切斷。此外,部分半開的門220和被遮蔽的人210之間可能存在間隙。
在向量流傳輸系統中,伺服器可以流傳輸擴增或CGI表面的外觀以及這些擴增物件的幾何形狀。在設備處理的後期階段中,例如,在將資訊傳送給顯示器之前,用戶端可以對可見的擴增物件的幾何形狀進行光柵化和/或對從流傳輸的圖集到光柵化的多邊形的對應紋理進行紋理映射。預顯示處理的這種變體固有地沒有長的從姿勢到渲染(pose-to-render)的延遲,並且可能不會扭曲擴增物件的形狀。結合作為本公開主題的系統修改,該預顯示處理的變體還能夠保留前景和背景內容之間的準確邊界,並因此保持對混合現實場景的準確描繪。
在一些方面,在向量流傳輸系統內傳送的陰影圖集資訊可以作為隨時間演變的紋理來傳送,並且可以被編碼為影音。在一些方面,幾何形狀資訊可以表示CGI物件的網格或部分網格,並且可以使用網格壓縮方法原始地傳送或編碼。用戶端設備可以接收與用於渲染伺服器幀的頭戴式耳機姿勢T0
對應的陰影圖集資訊和幾何形狀資訊兩者,它可以解碼該資訊,並使用它來利用最近的姿勢T1
渲染場景的最終眼睛緩衝器表示。由於姿勢T1
可能比姿勢T0
更新和更新得多,並且由於在姿勢T1
進行的最終渲染步驟是適當的幾何形狀柵格而不是近似值,因此所描述的系統的延遲限制可能比像素流傳輸的小。
用戶端可以使用最近的姿勢T1
將此陰影圖集資訊和/或幾何形狀資訊柵格化,即,將該資訊轉換為可以在設備上顯示的像素。另外,在一些方面,伺服器可以接收從用戶端設備或HMD流傳輸的姿勢,然後基於該接收到的姿勢T0
執行可見性和陰影計算。可見性計算影響哪些網格或網格的部分可以傳送給用戶端,並且陰影計算可以包括與當前幀對應的陰影圖集,該陰影圖集也傳送給用戶端。本公開的各方面還可以假設用戶端設備具有關於這些網格或幾何形狀的資訊,例如作為離線場景載入步驟的結果,從而可以不需要將幾何形狀即時地流傳輸給用戶端。例如,伺服器可以僅計算和流傳輸物件表面上的陰影,例如,陰影可以基於攝影機的有利位置或場景的其他動態元件而變化,並且僅此陰影資訊可以即時流傳輸給用戶端。
在一些方面,無論AR應用使用像素流傳輸架構或是向量流傳輸架構,都可以向用戶端傳送有關現實世界的遮蔽內容及其如何影響背景擴增的資訊。本公開可以發訊號通知該資訊並且簡化用戶端操作,同時在整個延遲補償中保持遮蔽邊緣保真度。
本公開的一些方面可以通過確定關於這些物件的深度資訊來解決像素流傳輸系統中的上述遮蔽現實世界物件。例如,僅使用遮蔽材料作為表面材料類型,就可以將現實世界的表面視為另一種混合現實世界資產,並且可以將其與現實世界資產的一些其他屬性一起流傳輸給用戶端設備,以供用戶端將其合併為預顯示處理的一部分,目的是保持現實世界與擴增物件之間的遮蔽邊界接近其理想外觀。具有遮蔽材料的物件可能會被拆分渲染用戶端視為另一個渲染的物件,但是由於其表面材料類型,它可能在用戶端顯示器中不可見;相反,從預顯示頭戴式耳機姿勢T1
渲染的其輪廓用來遮蔽可能在背景中渲染的其他擴增物件/資產。因此,本公開的各方面可以確定或渲染用於現實世界遮蔽物件的值,並且將遮蔽材料附著到這些物件。可以通過包括用於遮蔽材料修補程式的單獨的訊令消息類型並列出要使用遮蔽材料渲染的修補程式的獨特的修補程式識別碼,來例如向向量流傳輸用戶端發訊號通知現實世界遮蔽物件的存在。
通過包括使用遮蔽材料表示的現實世界的內容,內容合成設備可以使擴增內容精確地停在遮蔽現實世界的物件的邊緣,而與在姿勢T0
與姿勢T1
之間的拆分渲染系統中引入的延遲無關。實際上,為了防止擴增物與遮蔽現實世界的物件重疊,本公開可以使用遮蔽材料來將前景的現實世界的內容渲染在背景動畫“之上”,這可以最終有效地遮蓋動畫中應當被現實世界的內容遮蔽的部分。這樣,本公開可以將現實世界的內容視為渲染的,類似於動畫層,但是AR設備的使用者可能無法觀看該渲染的內容,這是因為他們實際上正在通過“透視”遮罩(mask)觀看現實世界的內容。在用戶端使用遮蔽材料表示現實物件表面的目的可能是在預顯示處理階段期間充當“遮罩”;遮罩可以強制在對應的像素中看到透視(現實世界)內容。這個概念可以幫助維持現實世界前景內容與動畫背景內容之間的清晰邊界。
在一些方面,場景的像素資訊或眼睛緩衝器資訊可以在伺服器處被確定或渲染,並在單獨的看板或層中被傳送給用戶端。例如,擴增可以在一個看板或層中被確定或渲染並被傳送給用戶端,並且現實世界的物件可以在另一看板或層中被確定和傳送。在其他方面,在伺服器處生成並流傳輸給用戶端的每個看板或層可能包含場景資產(現實世界的物件或動畫)的不連貫平面投影,給定最新的攝影機/耳機姿勢的情況下,這些投影看起來與攝影機的距離/“深度”大致相同。在這樣的系統中,可以有許多(例如,十二個)不同的看板或層被傳送給PS用戶端以進行預顯示處理。
圖3示出了根據本公開的一個或多個技術的示例深度對齊的看板300。看板300包括看板或層310、320、330、340、350。如上所述,看板310、320、330、340、350可以表示不同的內容,諸如現實世界的內容或擴增內容。另外,圖3顯示了在像素流傳輸架構中看板310、320、330、340、350的使用。
在一些情況下,可以使用看板或層來描繪上述用於現實世界的內容的遮蔽材料,並且可以使用另一個看板或層來描繪擴增內容,而兩種類型的層可以在在預顯示處理期間以從後到前的方式在用戶端上合成。這樣一來,遮蔽材料現實世界的內容和擴增內容可以對應於單獨的看板或層。這些看板或層可以例如經由它們的平面再現來近似於AR場景中的現實世界和動畫內容。
在一些方面,當用戶端設備處的AR攝影機移動時,以各種深度值渲染的這些看板或層可以幫助保留混合現實場景中預期的遮蔽物/遮蔽關係。這樣,一個或多個看板或層可以對應于現實世界的內容,並且一個或多個其他看板或層可以對應于擴增內容,使得當客戶姿勢從內容渲染的姿勢T0
移動到內容呈現的姿勢T1
時,現實世界與擴增內容之間的相對遮蔽也可以保持準確。
另外,看板可以對應於不同深度的平面,當AR攝影機被時間調整時,這有助於保存場景的各個部分的視差/深度資訊。另外,在看板上的該深度資訊可以隱含地確定哪些內容(例如,現實世界的內容或擴增內容)通過可以是從後到前的內容合成的方式來遮蔽其他內容。此外,現實世界的物件/表面的看板或層表示可以提高現實世界的內容與擴增內容之間的邊緣或劃分的準確性,而不管兩個中的哪一個是遮蔽物。
在一些方面,可以在用戶端上將混合現實場景中的現實世界的物件表示為描述物件的位置、形狀和尺寸以及對應表面的遮蔽材料的網格/幾何形狀。例如,可以在伺服器處確定現實場景的網格表示,並且可以將具有遮蔽材料的對應幾何形狀傳送給用戶端以執行場景的渲染。此外,可以在伺服器和/或用戶端處確定或知道該網格表示。如果這在用戶端也是已知的,則不需要伺服器傳輸表示現實世界的內容所需的任何資訊。此外,從延遲的角度來看,在用戶端上具有現實的網格化能力具有其優勢。如果現實世界的場景不是完全靜態的(包含移動的或可變形的物件),則對世界進行網格化並使用遮蔽材料將網格資訊帶入柵格化的系統中包括的延遲可能會開始發揮作用。具有設備上網格化能力的用戶端可能會佔據優勢,這是因為它們的現實世界表示組件會產生較低的延遲,從而與實際的透視場景更緊密地對應。
在物件渲染時,伺服器可能需要若干條資訊。例如,伺服器可能需要現實世界遮蔽物件的網格或模型,然後可以例如在像素流傳輸系統中將其渲染到一系列看板或替代物(impostors)中,或者例如在向量流傳輸系統中可以作為伴隨有烤成陰影圖集的空表面的網格傳輸給用戶端。在一些方面,包含現實世界遮蔽物的螢幕空間投影的看板可以通過對應的平面參數(方向和與攝影機的距離(深度))來表徵。此外,包含擴增和現實世界物件的看板或層可能會經過精確的可見性計算而被渲染(例如,在視錐(frustum)中),或者可以至少被部分過分遮蔽,例如以包括在略微位於視錐外部或由於其他物件遮蔽而從當前角度不能精確可見的物件的螢幕空間投影的部分。在用戶端一側,看板或層可以從後到前被渲染或組合,並按深度被排序。
根據網路和處理延遲,環境網格化可以完全在雲端上(例如,上行鏈路數據是在用戶端上捕獲的即時影音饋送(feed)和IMU資料)完成,部分在雲端上並且部分在用戶端上(例如,上行鏈路數據可以包括一些關鍵幀、伴隨的元資料以及在用戶端本地提取的其他環境描述符)完成,或者完全在用戶端上(例如,用戶端可以向伺服器傳送一些高級網格化屬性,但是通常會本地保留網格化屬性)完成。這些選項可能會在計算負載(從用戶端到邊緣伺服器或雲端)與流量需求(從最高到中等)之間提供各種折衷。
在像素流傳輸系統的一些情況下,假設在看板上以至少一些超出嚴格可見性的過度陰影來渲染擴增物,並且如果大多數物件不太靠近顯示攝影機,則用於將現實世界的遮蔽物描繪為客戶顯示的方法可能會容忍一些延遲和攝影機運動,而不會大幅度扭曲遮蔽邊界。此外,在用戶端上累積的用於渲染的頭部姿勢與顯示時的頭部姿勢之間的相對運動可能會影響合成內容的品質。例如,AR攝影機移動和網路延遲的組合可能會影響渲染內容的準確性。
在像素流傳輸系統的一些情況下,每個現實和/或擴增的物件可以利用單獨的看板或層。這可能會使伺服器和用戶端的處理複雜化,並增加下行鏈路流量。在本公開的一些方面,伺服器可以識別或標記現實世界物件,這些現實世界物件朝向擴增物件部分地與視錐相交並且幷且在攝影機與擴增物之間。其餘的現實世界物件可能不會在下行鏈路上顯式傳送訊號,從而節省了傳輸頻寬和對應的用戶端處理。
另外,描述現實世界物件的看板或替代物可以從渲染姿勢T0
的角度追蹤這些物件的輪廓。在一些方面,當在用戶端處應用ATW作為延遲補償的手段時,現實世界遮蔽物件的訊號傳送的輪廓可以與姿勢偏移T1
-T0
成
比例地被調整或“拉伸”,並且可能不對應於從最新的角度來看的遮蔽物件輪廓,該物件輪廓與用於看板渲染的目的的被訊號傳送的輪廓相比可能不同或更高級。這可能會導致現實世界前景和擴增物背景之間的遮蔽邊緣出現不自然的外觀。此外,在某些條件下,感知到的遮蔽邊界可能相對於前景物件移動,這也可能顯得不自然。
這些缺點中的大多數可以在為向量流傳輸系統提出的方法中被自然解決。在這樣的系統中,用戶端例如使用最新的客戶姿勢,將混合場景物件(動畫和現實世界物件)最終光柵化到顯示幕上。由於光柵化可以使用原始資產的3D網格/幾何形狀作為輸入,因此,只要準確地在用戶端處呈現用於現實世界和擴增物件的幾何形狀網格,就不會出現形狀失真問題和/或變形/運動的遮蔽邊界問題。除了混合現實場景中潛在可見演員的網格/幾何形狀外,用戶端還可以接收打包在陰影圖集中的對應陰影表面。
圖4A示出了根據本公開的一個或多個技術的陰影圖集400。如圖4A所示,陰影圖集400示出了儲存在物件空間中而不是圖像空間中的紋理的有效方式。圖4A還示出了陰影圖集400的不同部分以不同的解析度被陰影化(shaded),例如,根據距攝影機的距離,需要以或多或少的細節水準來描繪被陰影化的紋理。另外,陰影圖集400的深灰色部分,例如圖4A的最右邊的陰影420,可以表示陰影圖集400的未分配部分。在一些情況下,可以基於高的時間相干性(temporal coherence)來有效地對陰影圖集400進行編碼。例如,陰影圖集400中的一個區塊可以表示混合現實世界中的相同實體表面。在一些方面,陰影圖集400中的區塊可以保持在相同位置,只要它們潛在地可見並且在螢幕空間中佔據相似的區域即可。
圖4B示出了根據本公開的一個或多個技術的陰影圖集組織450。如圖4B所示,陰影圖集460包括超區塊462,每個超區塊包括行470。可以在同一超區塊中分配一定寬度的行,其中,行包括行寬度A和行寬度B。每個行可以進一步包括區塊480。在一些方面,如陰影圖集組織450所示的,行寬度A可以是行寬度B的值的一半。如圖4B所示,陰影圖集組織450從大到小的值可以是超區塊462到行470到區塊480。圖4B示出了如何將區塊480有效地打包到陰影圖集460中。此外,當決定從區塊480到陰影圖集460中的對應位置的映射時,記憶體管理的層次結構允許廣泛的並行性。
陰影圖集的儲存組織可以如下。圖集包括超區塊,超區塊又分為(等寬的)行,並且每行包括堆疊的區塊。區塊具有矩形形狀(正方形是特例),並且它們包括固定數量的三角形,例如三角形490。這在圖4B中描繪了寬度B的行的部分示出,其中一些區塊被示出為包括多個三角形,例如三角形490。例如,該多個可以是1、2或3。在一些實施方式中,包括多於3個三角形的區塊星座可以也有可能。在資產載入和場景預處理(例如,離線執行)期間選擇一次三角形到區塊的分配,並且超過該點,它將在遊戲期間保持固定。在一些方面,如圖4B所示,三角形到區塊的映射操作與區塊到陰影圖集的儲存線上記憶體組織分離。在一種情況下,可以選擇分配給一個區塊的三角形,以使它們成為物件網格中的鄰居,它們的高寬比可以與所選的區塊星座“相容”,它們的尺寸/面積可以相似,並且它們的表面法線可以相似。三角形到區塊的分配可能純粹基於網格屬性,因此是在物件空間中並且因此可以在遊戲開始之前完成。與此相反,將區塊分配給超區塊可能會隨時間變化,並且與螢幕空間中的物件外觀緊密耦合,因此,這取決於攝影機的位置和方向。有若干因素指示區塊是否將出現在圖集中,以及如果出現,是在哪個超區塊中。首先,一旦區塊成為潛在可見集合的一部分,就將其啟動為陰影圖集。這大致意味著,一旦有可能由於攝影機在當前位置附近移動而顯示出來區塊,則首次添加該區塊。被分配用於添加的區塊的初始超區塊取決於螢幕空間中的區塊外觀。距離攝影機更近的區塊在螢幕空間中顯得更大,因此被分配了圖集不動產(real estate)的較大部分。此外,相對於攝影機軸以大入射角出現的區塊可能看起來是傾斜的,因此可以在圖集中由具有高高寬比的區塊(例如,細的矩形)來表示。根據攝影機的運動,螢幕空間中的三角形外觀可能會逐漸變化,因此對應區塊的尺寸和高寬比也可能會變化。在其中行寬度被限制為2的冪的陰影圖集組織的實例中,可能存在有限數量的在圖集中可用的區塊尺寸和高寬比,因此,將區塊從一個行寬度的超區塊切換為另一個在時間上可能不是很頻繁或可能不連續。
為了在圖集內保持前述的時間相干性,區塊一旦被添加到圖集中,就被限制成盡可能長時間佔據受到某些限制的相同的位置。但是,其在圖集中的位置可能會改變一次:(i)其螢幕空間面積和高寬比越來越不適用於當前的超區塊行寬度,因此有必要進行切換,或者(ii)區塊在很長一段時間內不再處於潛在可見集合中。在這兩種情況下,討論的區塊可以在圖集內移動或完全刪除——特別是在情況(ii)中。該變化可能導致編碼位元速率的暫時增加,但是新狀態可能會持續一段時間,從而導致整體降低編碼位元速率。為了促進快速儲存查找,水準和垂直區塊尺寸均保持為2的冪。例如,區塊可以是16像素高和64像素寬。該區塊將被分配給一個超區塊,該超區塊包含寬度均為64像素的區塊。當頭戴式耳機位置發生變化,以致該區塊的高寬比看起來更接近於1:2,並且尺寸稍大時,該區塊將從其當前位置移除,並且可以為其在高度上分配32像素並且在寬度上分配64像素。在這種情況下,可以再次將其分配給寬度為64的超區塊,但需要更改其位置。
在所提出的用於將關於現實世界的遮蔽物的資訊描繪給向量流傳輸用戶端的方法中,建議與在下行鏈路上傳送的幾何形狀的其餘部分一樣,流傳輸對應的網格/幾何形狀,例如,動畫對象的幾何形狀。在其中拆分渲染用戶端支援遮蔽材料渲染的系統中,所得到的現實世界多邊形可能需要伴隨對應的遮蔽材料消息。在不支援遮蔽材料渲染的用戶端中,需要將對應的多邊形表面描繪為陰影圖集中的紋理。如上所述,渲染到陰影圖集中的這些紋理可以是均勻的黑色、(0,0,0)值、空紋理,這是因為在某些情況下,在擴增實境顯示器上渲染(0,0,0)值可能會導致對應的區域被視為完全透明或透視。此外,由於這些特定物件的陰影紋理在顏色上可能是均勻的,因此它們的解析度可能不符合傳統的限制,即在3D場景中看起來更靠近攝影機的多邊形可能由解析度更高的紋理(即較大的矩形)表示在陰影圖集上。換句話說,混合現實場景中的現實世界物件的多邊形紋理可以由使用均勻空紋理陰影的小矩形表示。在一些方面,小矩形的尺寸可以是2像素乘2像素,即,每個維度上具有2像素的正方形。
此外,一些不支援在用戶端上的遮蔽材料渲染的向量流傳輸系統可能支援用於描述均勻著色的多邊形的特殊消息格式,該格式可以稱為單色消息。這些消息可以被傳送,而不是在陰影圖集中顯式地對均勻的黑色正方形陰影化,並且可以包括標頭,該標頭指示單色消息正在被傳送,其後是被映射為相同顏色的多個獨特表面片。消息的正文可以描述均勻的顏色——在遮蔽表面的情況下,該顏色為(0,0,0)黑色。這之後可以列舉出具有上述顏色的紋理(修補程式/三角形)的所有部分。使用獨特的單位表面識別碼來促進該列舉。例如,存在于混合現實場景中的所有修補程式都分配有獨特的修補程式ID,並且這些修補程式ID可以包括在單色消息中。從位元速率、記憶體和/或延遲的角度來看,此傳輸方案可能比在陰影圖集中將(0,0,0)顏色資訊作為單獨矩形顯示地用訊號傳送的方案更有效。同樣,某些表面可以使用單色消息來描述,這是在陰影圖集中顯式渲染它們的一種替代方法。這些單色消息可以通過簡單地將它們從影音中完全刪除,從而消除使用標準影音壓縮來描述所有均勻著色表面的大多數冗餘和效率低下的情況。
在一些情況下,向量流傳輸用戶端可以保持對於現實世界遮蔽物件的存在是不可知的。例如,當處理具有現實世界遮蔽的AR應用或沒有現實遮蔽的AR應用時,用戶端操作可能沒有差異。與用於可能存在於基於像素流傳輸的拆分渲染系統中的新穎視圖合成的非同步時間扭曲(ATW)和類似的方案相比,用於在所有拆分渲染系統中作為預顯示處理的一部分存在的新穎視圖合成步驟的向量流傳輸方案可以提供改進的性能。基於向量流傳輸的新穎視圖合成通過從新穎的觀點重新渲染整個潛在的可見幾何形狀,避免了基於平面投影的形狀失真和遮蔽邊界偏移/變形。在一些方面,如果上行鏈路流量被延遲或中斷,或者假設在用戶端上進行網格化,則用戶端設備可以在本地重建遮蔽現實世界物件的外觀和幾何形狀,然後可以向現有繪製調用列表中添加對應的網格和全零值。這樣一來,具有網格化能力的向量流傳輸用戶端可以為不穩定的通訊鏈路提供更大的穩固性,並且還可以提供具有更低的總延遲的解決方案,以將現實世界物件併入複雜的混合現實體驗中。在一些方面,本地可用的遮蔽物件網格(使用用戶端重建)可能沒有得到很大精煉,並且可能需要在伺服器處進行捆綁調整以使其更加精確並符合實際的現實世界幾何形狀。但是,在一些方面,在長的網路延遲或服務中斷的情況下,仍然可以選擇不具有任何這種表示的現實世界遮蔽物的粗略版本。
在一些方面,如果輸送量慢或延遲長,則用戶端可以選擇使用本地網格(例如用於現實世界的內容),而不是使用來自伺服器的網格。通過使用本地網格,用戶端可以在用戶端處渲染此網格內容,而不等待從伺服器接收網格。這可以對現實世界遮蔽提供更直接的回應。例如,本地用戶端網格對於由用戶端檢測到但伺服器尚不知道的現實世界內容可能有用。
用戶端設備還可以執行粗糙的現實世界的網格化並將該資訊傳送給伺服器。然後,伺服器可以執行捆綁包調整,以使伺服器在多個不同的時間點比較用戶端對現實物件的現實世界觀察,並將該資訊精煉為單個緊湊的精煉網格資訊,以用於現實世界物件的將來表示。因此,現實世界內容精煉可以在用戶端或伺服器上發生。
在一些情況下,用戶端設備可以利用附加的通道,用於例如使用最新的現實世界物件網格和姿勢來渲染對伺服器未知的遮蔽對象。如果標記的遮蔽物件未出現在下行鏈路數據中,則可以在用戶端上檢測到這種情況。此外,即使在存在遮蔽物件和/或沒有可靠的通訊網路服務的情況下,用戶端也可以例如在沒有伺服器輸入的情況下自給自足地操作。
如上所述,本公開的各方面可以通過經由層或看板渲染遮蔽物件來在處理像素流傳輸系統中處理遮蔽物件。例如,本公開可以通過與混合現實空間中的擴增物件的幾何形狀比較來確定哪些現實世界物件可能正在遮蔽物件。例如,可以通過使用在兩個世界之間的共同主體(攝影機)的姿勢,將現實世界物件的(例如,在與現實世界中的任意點綁定的世界坐標系中被檢測和劃分網格的)幾何形狀“翻譯”為由動畫物件指示的混合世界座標。此後,可以在混合世界表示中執行標準可見性測試的變體,以便將選擇的現實世界物件標記為潛在的遮蔽物。在像素空間中與動畫部分重疊並且比至少一個擴增物件看起來更接近虛擬攝影機的現實世界物件可以被標記為潛在遮蔽物,並使用最新已知的物件網格被渲染到單獨的看板上。這些遮蔽物件可以被光柵化到距AR攝影機平均物件距離的看板平面上(或使用一些其他方法確定相對於攝影機的平面距離和方向)。可以使用全零像素(例如,(0,0,0)的RGB值)渲染看板中的物件表面。
另外,本公開可以類似於其他物件來在向量流傳輸系統中處理遮蔽物件。具有已知網格的現實世界物件可以以與伺服器處的動畫物件相同的方式對待。這樣,這些現實世界物件可以參與可見性計算。如果發現現實世界物件遮蔽至少一個動畫物件,則本公開可以將該現實世界物件視為活動的阻擋物件,並將對應的資訊添加到已知物件的組合集合中。本公開還可以將這些物件的潛在可見的幾何形狀或紋理作為具有單色值或(0,0,0)的RGB值的消息來傳送。由於這些物件的網格資訊可以繼續在伺服器上被精煉,因此本公開可以傳送關於物件幾何形狀的更新。
如本文所指示的,本公開還可以包括當從伺服器接收的消息不包括關於這些遮蔽物件的資訊時,在用戶端設備上本地(而不是在伺服器上)估計現實遮蔽對象的幾何形狀。可能由於多種不同原因而發生這種情況,例如,由於上行鏈路臨時中斷和/或伺服器工作量的限制,為了減少組合的系統延遲。在本公開中,向量流傳輸用戶端可以使用對應紋理的全零值將現實世界物件的本地估計的網格添加到在用戶端上柵格化的網格列表中。此外,在將結果與通過網路接收到的像素流傳輸紋理進行組合之前,像素流傳輸用戶端可以在單獨的通道中對本地估計的網格進行柵格化。因此,在像素流傳輸系統中,本公開可以利用一種或多種解決方案來解決遮蔽擴增內容的現實世界的內容。並且在向量流傳輸系統中,本公開可以利用多種解決方案來解決遮蔽擴增內容的現實世界的內容。
圖5示出了根據本公開的一個或多個技術的示例圖像或場景500。場景500包括擴增內容510和現實世界的內容520,現實世界的內容520包括邊緣522。更具體地,圖5顯示了現實世界的物件520,例如門,其遮蔽擴增內容510,例如人。如圖5所示,當現實世界的物件520完全遮蔽擴增內容510時,擴增內容510在現實世界的物件520的邊緣522處停止。例如,人510的任何部分都不與門520的邊緣522重疊。
如上所述,圖5準確地顯示了在AR系統中現實世界的內容(例如,內容520)遮蔽擴增內容(例如,內容510)的效果。如圖5所示,當兩者在螢幕空間中完全或部分重疊時,本公開的各方面可以準確地確定哪些現實世界的物件和動畫的物件可以遮蔽另一個。此外,本公開的各方面可以在拆分渲染架構中渲染混合現實場景的內容,使得當物件是現實世界的內容和擴增內容時,在遮蔽/前景物件與遮蔽/背景物件之間的遮蔽遮擋邊界在一系列網路延遲和攝影機運動中保持清晰和準確。這樣,本公開的各方面可以準確地描繪現實世界的內容何時完全或部分地遮蔽擴增內容,或者何時擴增內容遮蔽現實世界的內容,以及在AR顯示器中如何或者在何處描繪兩者之間的邊界。
圖5示出了用於在具有現實世界的內容和擴增內容的拆分渲染中處理遮蔽內容的前述處理的示例。如圖5所示,本公開的各方面,例如本文中的伺服器和用戶端設備,可以執行許多不同的步驟或處理以沉浸式方式渲染現實世界和擴增內容共存並彼此互動的混合現實場景。例如,在場景中,本文中的伺服器和用戶端設備可以在現實世界物件(例如,圖5中的門520)中識別第一內容組,在動畫物件(例如,圖5中的人510)中識別第二內容組。本文中的伺服器和用戶端設備還可以基於它們在視錐中的位置來從當前攝影機姿勢或附近的攝影機姿勢確定其中一個是否潛在地(部分或全部)遮蔽另一個,並且對於潛在的遮蔽物/被遮蔽物(occludee),表示它們的外觀和幾何形狀屬性,這樣,當例如從密集的一組附近的攝影機姿勢和方向重新渲染混合場景時,兩者之間的遮蔽邊界可能會顯得準確。在一些方面,第一內容組(例如門520)可以包括至少一些現實內容,並且第二內容組(例如人510)可以包括至少一些擴增內容。本文中的伺服器和用戶端設備還可以確定第一內容組(例如門520)的至少一部分是否遮蔽或潛在地遮蔽第二內容組(例如人510)的至少一部分。
在一些方面,可以使用至少一個第一看板(例如,圖3中的看板320)來表示第一內容組,例如門520,並且可以使用至少一個第二看板(例如,圖3中的看板310)來表示第二內容組,例如人510。本文中的伺服器和用戶端設備還可根據至少一個第一平面方程式生成至少一個第一看板(例如,看板320),並且根據至少一個第二平面方程式生成至少一個第二看板(例如,看板310)。在一些方面,確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分,可以基於當前攝影機姿勢、具有附近位置或方向的一個或多個攝影機姿勢、或一個或多個預測的攝影機姿勢(包括近期姿勢)中的至少一個。另外,至少一個第一看板(例如,看板320)可以被定位和定向為與第一平面對應,並且至少一個第二看板(例如,看板310)可以被定位和定向為與第二平面對應。
在一些方面,可以使用至少一個第一網格和至少一個第一陰影紋理來表示第一內容組,例如門520,並且可以使用至少一個第二網格和至少一個第二陰影紋理來表示第二內容組,例如人510。本文中的伺服器和用戶端設備還可以生成至少一個第一網格和一個第一陰影紋理,以及至少一個第二網格和一個第二陰影紋理。
本文中的伺服器和用戶端設備還可以基於從當前或附近攝影機位置和方向確定第一內容組(例如門520)的至少一部分是否可以遮蔽第二內容組(例如人510)的至少一部分來渲染第一內容組和第二內容組。在一些方面,在什麼都不渲染的AR頭戴式耳機中的像素的行為可能與渲染的值是(0,0,0)(即這些像素對於現實世界的內容保持完全透明,這意味著觀看者可以“透視”這些像素)相同。可替代地,當第一內容組的至少一部分遮蔽第二內容組的至少一部分時,本文的用戶端設備可以使用遮蔽材料表面屬性來渲染第一內容組的一個或多個表面的至少一部分。在一些方面,至少一個第一網格可以與第一幾何形狀資訊相關聯,並且至少一個第二網格可以與第二幾何形狀資訊相關聯。
本文中的伺服器和用戶端設備還可以將與第一內容組(例如,門520)相關聯的資訊以及與第二內容組(例如,人510)相關聯的資訊傳遞給用戶端設備。在一些方面,用戶端裝置可以進行對於第一內容組(例如,門520)的元件和第二內容組(例如,人510)的元件是無法區分的處理。在一些方面,當至少一個眼睛緩衝器被合成用於顯示時,用戶端設備可以處理與第一內容組相關聯的資訊和與第二內容組相關聯的資訊。另外,第一內容組(例如,門520)和第二內容組(例如,人510)的表示可以至少部分地由伺服器準備。此外,第一內容組(例如,門520)和第二內容組(例如,人510)的表示可以至少部分地由用戶端設備渲染,例如到眼睛緩衝器中以進行顯示。在一些方面,可以使用一個或多個第一網格元件和一個或多個第一像素來表示第一內容組,並且可以使用一個或多個第二網格元件和一個或多個第二像素來表示第二內容組。在一些方面,第一內容組可以由一個或多個第一遮蔽消息表示。
在一些方面,第一內容組(例如,門520)可以包括一個或多個像素,並且第二內容組(例如,人510)可以用一個或多個像素來表示。此外,可以以拆分擴增實境(AR)架構、拆分延展實境(XR)架構或利用伺服器的雲端遊戲在位於用戶端設備處的顯示器上合成和/或生成場景,例如場景500。此外,確定第一內容組(例如門520)的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分可以至少部分地由GPU或CPU執行。在一些方面,當第一內容組的至少一部分遮蔽第二內容組的至少一部分時,使用遮蔽材料渲染第一內容組的一個或多個表面的至少一部分可以至少部分地在伺服器上執行。
如上所述,利用像素流傳輸系統的本公開的各方面可以包括看板、替代物或層,並且可以使用當前攝影機姿勢將現實世界的內容作為全空/黑色剪影遮罩渲染為對應的看板。利用向量流傳輸系統的本公開的各方面還可以包括用戶端設備,該用戶端設備以完全相同的方式處理表示現實世界的內容和動畫內容的資訊。例如,可以假設每個現實世界的遮蔽物件在伺服器處都是已知的。此外,可以假設每個現實世界遮蔽物件至少部分地由傳送給用戶端的消息來表示。在某些方面,表示嵌入在傳送的消息中的現實場景內的現實世界內容的方式可以與表示虛擬/混合現實場景中的動畫內容的方式相同。實際上,用戶端設備可以不區分關於哪個表示對應于擴增物件或現實世界物件。
另外,本公開的各方面可以包括其中伺服器可能不知道現實世界遮蔽物件的向量流傳輸架構,和/或到達用戶端的下行鏈路流量可能不包含關於遮蔽物件的資訊,但是用戶端設備可能知道現實世界遮蔽物件:它們相對於攝影機/觀察者的形狀、尺寸和姿勢。在這些情況下,用戶端設備可以具有單獨的渲染通道,其中用戶端光柵化現實世界遮蔽物件的網格,使用遮蔽材料來渲染其紋理。例如,伺服器可能需要花費若干個幀才能知道遮蔽物件,但是用戶端可能會在單個幀內知道遮蔽物件。因此,用戶端裝置可以比伺服器更快地確定遮蔽物件的幾何形狀,使得遮蔽物件的存在可以被更快地描繪並且最小化明顯不正確的遮蔽的發生。
圖6示出了根據本公開的一個或多個技術的示例方法的示例流程圖600。該方法可以由諸如伺服器、用用戶端設備、CPU、GPU的裝置或用於圖形處理的裝置執行。在602,如結合圖2、3、4和5中的示例所描述的,裝置可以識別場景中的第一內容組和第二內容組。在一些方面,如結合圖2、3、4和5中的示例所描述的,第一內容組可以包括至少一些現實內容,並且第二內容組可以包括至少一些擴增內容。
在604,如結合圖2、3、4和5中的示例所描述的,裝置可以確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分,例如,從當前的或附近的攝影機姿勢。
在一些方面,如果可能發生跨內容遮蔽,則可以使用至少一個第一看板來表示第一內容組。如結合圖2、3、4和5中的示例所描述的,可以使用至少一個第二看板來表示第二內容組。在606,如結合圖2、3、4和5中的示例所描述的,裝置可以根據至少一個第一平面方程式生成至少一個第一看板,並且根據至少一個第二平面方程式生成至少一個第二看板。在一些方面,如結合圖2、3、4和5中的示例所描述的,基於當前攝影機姿勢、具有附近位置或方向的一個或多個攝影機姿勢、或包括近期姿勢的一個或多個預測的攝影機姿勢中的至少一個來確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分。另外,如結合圖2、3、4和5中的示例所描述的,至少一個第一看板可以對應於第一平面,並且至少一個第二看板可以對應於第二平面。
在一些方面,如結合圖2、3、4和5中的示例所描述的,可以使用至少一個第一網格和第一陰影紋理來表示第一內容組,並且可以使用至少一個第二網格和第二陰影紋理來表示第二內容組。
在610,如結合圖2、3、4和5中的示例所描述的,裝置可基於第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分的確定來表示第一內容組和第二內容組。在612,如結合圖2、3、4和5中的示例所描述的,當第一內容組的至少一部分遮蔽或潛在地遮蔽第二內容組的至少一部分時,裝置可以使用遮蔽材料來渲染第一內容組的一個或多個表面的至少一部分。
在一些方面,如結合圖2、3、4和5中的示例所描述的,第一內容組可以由第一陰影圖集表示,並且第二內容組可以基於第二陰影圖集。另外,如結合圖2、3、4和5中的示例所描述的,至少一個第一網格可以與第一幾何形狀資訊相關聯,並且至少一個第二網格可以與第二幾何形狀資訊相關聯。
在614,如結合圖2、3、4和5中的示例所描述的,裝置可以將與第一內容組相關聯的資訊和與第二內容組相關聯的資訊傳遞給用戶端設備。在一些方面,如結合圖2、3、4和5中的示例所描述的,用戶端設備可以處理與第一內容組相關聯的資訊和與第二內容組相關聯的資訊,例如,當至少一個眼睛緩衝器被合成用於顯示時。此外,如結合圖2、3、4和5中的示例所描述的,第一內容組的表示和第二內容組的表示可以在伺服器上至少部分地被陰影化。進一步地,如結合圖2、3、4和5中的示例所描述的,第一內容組和第二內容組可以至少部分地由用戶端設備渲染。
在一些方面,如結合圖2、3、4和5中的示例所描述的,第一內容組可以包括一個或多個像素,第二內容組可以包括一個或多個像素。在一些方面,如結合圖2、3、4和5中的示例所描述的,第一內容組可以由一個或多個第一遮蔽消息表示。在一些方面,如結合圖2、3、4和5中的示例所描述的,可以使用一個或多個第一網格元件和一個或多個第一像素來表示第一內容組,並且可以使用一個或多個第二網格元件和一個或多個第二像素來表示第二內容組。此外,場景被渲染在位於以下至少一個中的用戶端設備的顯示器上:拆分擴增實境(AR)架構、拆分延展實境(XR)架構或利用伺服器的雲端遊戲。此外,如結合圖2、3、4和5中的示例所描述的,可以至少部分地由GPU或CPU執行以下操作:確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分,例如,從當前或附近的攝影機位置和方向。
在一些方面,如結合圖2、3、4和5中的示例所描述的,可以至少部分地在伺服器上執行對第一內容組的至少一部分是否遮蔽或潛在地遮蔽了第二內容組的至少一部分的確定。此外,當第一內容組的至少一部分遮蔽或潛在地遮蔽第二內容組的至少一部分時,使用遮蔽材料渲染第一內容組的一個或多個表面的至少一部分可以至少部分地在伺服器上執行。
在一種配置中,提供了一種用於圖形處理的方法或裝置。裝置可以是伺服器、用戶端設備、CPU、GPU或可以執行圖形處理的一些其他處理器。在一個方面,裝置可以是設備104內的處理單元120,或者可以是設備104或另一設備內的一些其他硬體。裝置可以包括用於在場景中識別第一內容組和第二內容組的構件。裝置還可以包括用於確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分的構件。裝置還可以包括用於基於確定第一內容組的至少一部分是否遮蔽或潛在地遮蔽第二內容組的至少一部分來表示第一內容組和第二內容組的構件。裝置還可包括用於當第一內容組的至少一部分遮蔽第二內容組的至少一部分時使用遮蔽材料渲染第一內容組的一個或多個表面的至少一部分的構件。裝置還可包括用於根據至少一個第一平面方程式和第一陰影紋理生成至少一個第一看板,以及根據至少一個第二平面方程式生成至少一個第二看板和第二陰影紋理的構件。裝置還可以包括用於將與第一內容組相關聯的資訊和與第二內容組相關聯的資訊傳遞給用戶端設備的構件。
本文所描述的主題可以被實現為實現一個或多個益處或優點。例如,所描述的圖形處理技術可以由伺服器、用戶端、GPU、CPU或可以執行圖形處理以實現本文所述的拆分渲染技術的一些其他處理器使用。與其他圖形處理技術相比,這也可以用低成本實現。此外,本文的圖形處理技術可以提高或加速資料處理或執行。此外,本文的圖形處理技術可以提高資源或資料利用率和/或資源效率。另外,本公開的各方面可以利用拆分渲染處理,該拆分渲染處理可以提高在具有現實世界的內容和擴增內容的拆分渲染中處理遮蔽內容的準確性。
根據本公開,在上下文沒有另外規定的情況下,術語“或”可以被理解為“和/或”。另外,雖然諸如“一個或多個”或“至少一個”之類的短語可能已經用於本文公開的一些特徵,而沒有用於其他特徵,但是未使用這種語言的特徵也可以被解釋為在上下文沒有另外規定的情況下具有隱含的這種含義。
在一個或多個示例中,本文描述的功能可以以硬體、軟體、韌體或它們的任何組合來實現。例如,儘管在整個本公開中已經使用了術語“處理單元”,但是這樣的處理單元可以以硬體、軟體、韌體或它們的任何組合來實現。如果以軟體實現本文描述的任何功能、處理單元、技術或其他模組,則本文描述的功能、處理單元、技術或其他模組可以作為一個或多個指令或代碼儲存在電腦可讀媒體上或在電腦可讀媒體上傳輸。電腦可讀媒體可以包括電腦資料儲存媒體或通訊媒體,包括有助於將電腦程式從一個地方傳送給另一地方的任何媒體。以這種方式,電腦可讀媒體通常可以對應於(1)非暫時性的有形電腦可讀儲存媒體,或者(2)諸如訊號或載波的通訊媒體。資料儲存媒體可以是可由一台或多台電腦或一個或多個處理器存取以擷取用於實現本公開中描述的技術的指令、代碼和/或資料結構的任何可用媒體。作為示例而非限制,這樣的電腦可讀媒體可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存或其他磁性儲存設備。本文使用的磁片和光碟包括壓縮光碟(CD)、雷射光碟、光碟、多樣化數位光碟(DVD)、軟碟和藍光光碟,其中磁片通常以磁性方式再現資料,而光碟則以鐳射光學方式再現資料。上述的組合也應包括在電腦可讀媒體的範圍內。電腦程式產品可以包括電腦可讀媒體。
代碼可以由一個或多個處理器執行,例如一個或多個數位訊號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、算術邏輯單元(ALU)、現場可程式化邏輯閘陣列(FPGA)或其他等效的積體或離散邏輯電路。因此,如本文所使用的,術語“處理器”可以指前述結構中的任何一種或適合於實現本文所描述的技術的任何其他結構。此外,這些技術可以在一個或多個電路或邏輯元件中完全實現。
本公開的技術可以在各種各樣的設備或裝置中實現,包括無線手持機、積體電路(IC)或IC的集合,例如晶片組。在本公開中描述各種組件、模組或單元以強調被配置為執行所公開的技術的設備的功能方面,但不一定需要由不同硬體單元來實現。相反,如上所述,各種單元可以組合在任何硬體單元中,或者由互操作硬體單元的集合(包括如上所述的一個或多個處理器)連同合適的軟體和/或韌體提供。
各種示例已經被描述。這些和其他示例在以下申請專利範圍的範圍內。
100:系統
104:設備
107:圖形處理管線
120:處理單元
121:內部記憶體
122:內容編碼器/解碼器
123:內部記憶體
124:系統記憶體
126:通訊介面
127:顯示處理器
128:接收器
130:發送器
131:顯示器
132:收發器
198:確定組件
200:場景
210:增強內容
220:現實世界的內容、現實世界的物件
222:邊緣
300:看板
310:看板、層
320:看板、層
330:看板、層
340:看板、層
350:看板、層
400:陰影圖集
420:陰影
450:陰影圖集組織
460:陰影圖集
462:超區塊
470:行
480:區塊
490:三角形
500:場景
510:擴增內容
520:現實世界的內容、現實世界的物件、門
522:邊緣
600:流程圖
602:步驟
604:步驟
606:步驟
610:步驟
612:步驟
614:步驟
圖1是示出了根據本公開的一個或多個技術的示例內容生成系統的方塊圖。
圖2示出了根據本公開的一個或多個技術的示例圖像或場景。
圖3示出了根據本公開的一個或多個技術的深度對齊的看板的示例。
圖4A示出了根據本公開的一個或多個技術的示例陰影圖集。
圖4B示出了根據本公開的一個或多個技術的示例陰影圖集組織。
圖5示出了根據本公開的一個或多個技術的示例圖像或場景。
圖6示出了根據本公開的一個或多個技術的示例方法的示例流程圖。
100:系統
104:設備
107:圖形處理管線
120:處理單元
121:內部記憶體
122:內容編碼器/解碼器
123:內部記憶體
124:系統記憶體
126:通訊介面
127:顯示處理器
128:接收器
130:發送器
131:顯示器
132:收發器
198:確定組件
Claims (44)
- 一種圖形處理方法,包括: 識別場景中的第一內容組和第二內容組; 確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分;以及 基於所述確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分來表示所述第一內容組和所述第二內容組。
- 根據請求項1所述的方法,其中,所述第一內容組包括至少一些現實內容,並且所述第二內容組包括至少一些擴增內容。
- 根據請求項1所述的方法,其中,基於確定所述第一內容組的至少一部分是否遮蔽所述第二內容組的至少一部分來表示所述第一內容組和所述第二內容組還包括: 當所述第一內容組的所述至少一部分遮蔽或潛在地遮蔽所述第二內容組的所述至少一部分時,使用遮蔽材料來渲染所述第一內容組的一個或多個表面的至少一部分。
- 根據請求項1所述的方法,其中,使用至少一個第一看板來表示所述第一內容組,並且使用至少一個第二看板來表示所述第二內容組。
- 根據請求項4所述的方法,還包括: 根據至少一個第一平面方程式生成所述至少一個第一看板,並且根據至少一個第二平面方程式生成所述至少一個第二看板。
- 根據請求項1所述的方法,其中,確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分是基於當前攝影機姿勢、具有附近位置或方向的一個或多個攝影機姿勢、或包括近期姿勢的一個或多個預測的攝影機姿勢中的至少一個的。
- 根據請求項6所述的方法,還包括:利用場景演員的實體模型和運動預測以便在顯示時更準確地預測所述第一內容和所述第二內容的動態部分的世界位置和方向,所述場景演員包括所述第一內容的一部分和所述第二內容的一部分。
- 根據請求項1所述的方法,其中,使用至少一個第一網格和第一陰影紋理來表示所述第一內容組,並且使用至少一個第二網格和第二陰影紋理來表示所述第二內容組。
- 根據請求項7所述的方法,其中,所述至少一個第一網格與第一幾何形狀資訊相關聯,並且所述至少一個第二網格與第二幾何形狀資訊相關聯。
- 根據請求項8所述的方法,其中,所述第二內容組是根據用戶端能力而使用遮蔽材料表面屬性或使用RGB值(0,0,0)的全黑像素被渲染的。
- 根據請求項1所述的方法,還包括: 將與所述第一內容組相關聯的資訊和與所述第二內容組相關聯的資訊傳遞給用戶端設備。
- 根據請求項11所述的方法,其中,當至少一個眼睛緩衝器被合成用於顯示時,所述用戶端設備處理與所述第一內容組相關聯的資訊和與所述第二內容組相關聯的資訊。
- 根據請求項1所述的方法,其中,在伺服器上至少部分地確定所述第一內容組的表示和所述第二內容組的表示。
- 根據請求項1所述的方法,其中,所述第一內容組和所述第二內容組至少部分地由用戶端設備渲染。
- 根據請求項1所述的方法,其中,所述第一內容組由一個或多個像素表示,並且第二內容組由一個或多個像素表示。
- 根據請求項1所述的方法,其中,所述第一內容組由一個或多個第一遮蔽消息表示。
- 根據請求項7所述的方法,其中,使用一個或多個第一網格元件和一個或多個第一像素來表示所述第一內容組,並且使用一個或多個第二網格元件和一個或多個第二像素來表示所述第二內容組。
- 根據請求項1所述的方法,其中,所述場景被渲染在位於以下至少一個中的用戶端設備的顯示器上:拆分擴增實境(AR)架構、拆分延展實境(XR)架構或利用伺服器的雲端遊戲。
- 根據請求項1所述的方法,其中,所述確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分是至少部分地由圖形處理單元(GPU)或中央處理單元(CPU)執行。
- 根據請求項1所述的方法,其中,所述確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分是至少部分地在伺服器上執行。
- 根據請求項3所述的方法,其中,所述當所述第一內容組的所述至少一部分遮蔽所述第二內容組的所述至少一部分時,使用遮蔽材料來渲染所述第一內容組的一個或多個表面的所述至少一部分被至少部分地在伺服器上執行。
- 一種用於圖形處理的裝置,包括: 記憶體;以及 至少一個處理器,耦接到所述記憶體並被配置為: 識別場景中的第一內容組和第二內容組; 確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分;以及 基於所述確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分來表示所述第一內容組和所述第二內容組。
- 根據請求項22所述的裝置,其中,所述第一內容組包括至少一些現實內容,並且所述第二內容組包括至少一些擴增內容。
- 根據請求項22所述的裝置,其中,基於所述確定所述第一內容組的至少一部分是否遮蔽所述第二內容組的至少一部分來表示所述第一內容組和所述第二內容組還包括所述至少一個處理器被配置為: 當所述第一內容組的所述至少一部分遮蔽或潛在地遮蔽所述第二內容組的所述至少一部分時,使用遮蔽材料來渲染所述第一內容組的一個或多個表面的至少一部分。
- 根據請求項22所述的裝置,其中,使用至少一個第一看板來表示所述第一內容組,並且使用至少一個第二看板來表示所述第二內容組。
- 根據請求項25所述的裝置,其中,所述至少一個處理器還被配置為: 根據至少一個第一平面方程式生成所述至少一個第一看板,並且根據至少一個第二平面方程式生成所述至少一個第二看板。
- 根據請求項22所述的裝置,其中,確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分是基於當前攝影機姿勢、具有附近位置或方向的一個或多個攝影機姿勢、或包括近期姿勢的一個或多個預測的攝影機姿勢中的至少一個的。
- 根據請求項27所述的裝置,其中,所述至少一個處理器還被配置為:利用場景演員的實體模型和運動預測以便在顯示時更準確地預測所述第一內容和所述第二內容的動態部分的世界位置和方向,所述場景演員包括所述第一內容的一部分和所述第二內容的一部分。
- 根據請求項22所述的裝置,其中,使用至少一個第一網格和第一陰影紋理來表示所述第一內容組,並且使用至少一個第二網格和第二陰影紋理來表示所述第二內容組。
- 根據請求項29所述的裝置,其中,所述至少一個第一網格與第一幾何形狀資訊相關聯,並且所述至少一個第二網格與第二幾何形狀資訊相關聯。
- 根據請求項30所述的裝置,所述第二內容組是根據用戶端能力而使用遮蔽材料表面屬性或使用RGB值(0,0,0)的全黑像素來被渲染的。
- 根據請求項22所述的裝置,其中,所述至少一個處理器還被配置為: 將與所述第一內容組相關聯的資訊和與所述第二內容組相關聯的資訊傳遞給用戶端設備。
- 根據請求項32所述的裝置,其中,當至少一個眼睛緩衝器被合成用於顯示時,所述用戶端設備處理與所述第一內容組相關聯的資訊和與所述第二內容組相關聯的資訊。
- 根據請求項22所述的裝置,其中,所述第一內容組的表示和所述第二內容組的表示在伺服器上至少部分地被陰影化。
- 根據請求項22所述的裝置,其中,所述第一內容組和所述第二內容組至少部分地由用戶端設備渲染。
- 根據請求項22所述的裝置,其中,所述第一內容組由一個或多個像素表示,並且第二內容組由一個或多個像素表示。
- 根據請求項22所述的裝置,其中,所述第一內容組由一個或多個第一遮蔽消息表示。
- 根據請求項22所述的裝置,其中,使用一個或多個第一網格元件和一個或多個第一像素來表示所述第一內容組,並且使用一個或多個第二網格元件和一個或多個第二像素來表示所述第二內容組。
- 根據請求項22所述的裝置,其中,所述場景被渲染在位於以下至少一個中的用戶端設備的顯示器上:拆分擴增現實(AR)架構、拆分延展實境(XR)架構或利用伺服器的雲端遊戲。
- 根據請求項22所述的裝置,其中,所述確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分是至少部分地由圖形處理單元(GPU)或中央處理單元(CPU)執行。
- 根據請求項22所述的裝置,其中,所述確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分是至少部分地在伺服器上執行。
- 根據請求項24所述的裝置,其中,所述當所述第一內容組的所述至少一部分遮蔽所述第二內容組的所述至少一部分時,使用遮蔽材料來渲染所述第一內容組的一個或多個表面的所述至少一部分被至少部分地在伺服器上執行。
- 一種用於圖形處理的裝置,包括: 用於識別場景中的第一內容組和第二內容組的構件; 用於確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分的構件;以及 用於基於所述確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分來表示所述第一內容組和所述第二內容組的構件。
- 一種儲存用於圖形處理的電腦可執行代碼的電腦可讀媒體,所述代碼在由處理器執行時使所述處理器: 識別場景中的第一內容組和第二內容組; 確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分;以及 基於所述確定所述第一內容組的至少一部分是否遮蔽或潛在地遮蔽所述第二內容組的至少一部分來表示所述第一內容組和所述第二內容組。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063005164P | 2020-04-03 | 2020-04-03 | |
US63/005,164 | 2020-04-03 | ||
US17/061,179 | 2020-10-01 | ||
US17/061,179 US11468629B2 (en) | 2020-04-03 | 2020-10-01 | Methods and apparatus for handling occlusions in split rendering |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202141418A true TW202141418A (zh) | 2021-11-01 |
Family
ID=77920859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110108198A TW202141418A (zh) | 2020-04-03 | 2021-03-08 | 處理拆分渲染中的遮蔽之方法及裝置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11468629B2 (zh) |
EP (1) | EP4128170A2 (zh) |
KR (1) | KR20220163366A (zh) |
CN (1) | CN115244584A (zh) |
TW (1) | TW202141418A (zh) |
WO (1) | WO2021202055A2 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11625806B2 (en) * | 2019-01-23 | 2023-04-11 | Qualcomm Incorporated | Methods and apparatus for standardized APIs for split rendering |
US11748913B2 (en) * | 2021-03-01 | 2023-09-05 | Qualcomm Incorporated | Modeling objects from monocular camera outputs |
US11694409B1 (en) * | 2021-12-08 | 2023-07-04 | Google Llc | Augmented reality using a split architecture |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9122053B2 (en) | 2010-10-15 | 2015-09-01 | Microsoft Technology Licensing, Llc | Realistic occlusion for a head mounted augmented reality display |
US10181214B2 (en) | 2013-03-14 | 2019-01-15 | Google Llc | Smooth draping layer for rendering vector data on complex three dimensional objects |
US9286725B2 (en) | 2013-11-14 | 2016-03-15 | Nintendo Co., Ltd. | Visually convincing depiction of object interactions in augmented reality images |
WO2016077798A1 (en) | 2014-11-16 | 2016-05-19 | Eonite Perception Inc. | Systems and methods for augmented reality preparation, processing, and application |
US10937246B2 (en) | 2017-12-22 | 2021-03-02 | Magic Leap, Inc. | Multi-stage block mesh simplification |
-
2020
- 2020-10-01 US US17/061,179 patent/US11468629B2/en active Active
-
2021
- 2021-03-05 KR KR1020227031647A patent/KR20220163366A/ko unknown
- 2021-03-05 WO PCT/US2021/021245 patent/WO2021202055A2/en active Application Filing
- 2021-03-05 CN CN202180018228.1A patent/CN115244584A/zh active Pending
- 2021-03-05 EP EP21715382.4A patent/EP4128170A2/en active Pending
- 2021-03-08 TW TW110108198A patent/TW202141418A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20210312701A1 (en) | 2021-10-07 |
WO2021202055A2 (en) | 2021-10-07 |
KR20220163366A (ko) | 2022-12-09 |
CN115244584A (zh) | 2022-10-25 |
WO2021202055A3 (en) | 2021-11-11 |
US11468629B2 (en) | 2022-10-11 |
EP4128170A2 (en) | 2023-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3673463B1 (en) | Rendering an image from computer graphics using two rendering computing devices | |
CN110035328B (zh) | 用于动态抖动和延迟容忍渲染的系统和方法 | |
US10776997B2 (en) | Rendering an image from computer graphics using two rendering computing devices | |
US20230039100A1 (en) | Multi-layer reprojection techniques for augmented reality | |
TW202141418A (zh) | 處理拆分渲染中的遮蔽之方法及裝置 | |
US20200410740A1 (en) | Graphics processing systems | |
CN107392836B (zh) | 使用图形处理管线实现的立体多投影 | |
US20140292803A1 (en) | System, method, and computer program product for generating mixed video and three-dimensional data to reduce streaming bandwidth | |
TW202141417A (zh) | 用於高效多視圖光柵化的方法和裝置 | |
US10237563B2 (en) | System and method for controlling video encoding using content information | |
TW202230287A (zh) | 用於遮擋處理技術的方法和裝置 | |
US20230101978A1 (en) | Meshlet shading atlas | |
TW202141429A (zh) | 使用陰影資訊進行渲染 | |
US11875452B2 (en) | Billboard layers in object-space rendering | |
WO2023164792A1 (en) | Checkerboard mask optimization in occlusion culling | |
WO2023055655A1 (en) | Meshlet shading atlas | |
CN117974814A (zh) | 用于图像处理的方法、装置及存储介质 |