TW202322043A - 小網格著色圖譜 - Google Patents
小網格著色圖譜 Download PDFInfo
- Publication number
- TW202322043A TW202322043A TW111135899A TW111135899A TW202322043A TW 202322043 A TW202322043 A TW 202322043A TW 111135899 A TW111135899 A TW 111135899A TW 111135899 A TW111135899 A TW 111135899A TW 202322043 A TW202322043 A TW 202322043A
- Authority
- TW
- Taiwan
- Prior art keywords
- small
- primitives
- grid
- atlas
- scene
- Prior art date
Links
Images
Classifications
-
- 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/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
Abstract
本文所呈現的各態樣涉及用於圖形處理的方法和設備,包括例如GPU的裝置。該裝置可以將至少一個場景劃分為複數個小網格,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點。該裝置亦可以計算針對複數個頂點之每一者頂點的紋理座標對。此外,該裝置可以基於該對紋理座標並且基於複數個小網格之每一者小網格的透視投影來選擇至少一個場景中的複數個小網格之每一者小網格的大小。該裝置亦可以計算小網格圖譜中針對至少一個場景之每一者小網格的佈局資訊。此外,該裝置可以基於計算出的佈局資訊來對小網格圖譜中的複數個圖元之每一者圖元進行著色。
Description
本專利申請案主張於2021年9月30日提出申請的名稱為「MESHLET SHADING ATLAS」的美國臨時申請案第63/261,909號和於2022年9月21日提出申請的名稱為「MESHLET SHADING ATLAS」的美國專利申請案第17/934,159號的權益和優先權,其全部內容以引用方式明確地併入本文。
本發明大體上係關於處理系統,並且更具體地係關於一或多個圖形處理技術。
計算設備通常執行圖形及/或顯示處理(例如,利用圖形處理單元(GPU)、中央處理單元(CPU)、顯示處理器等)來渲染和顯示視覺內容。此類計算設備可以包括例如電腦工作站、行動電話(諸如智慧手機)、嵌入式系統、個人電腦、平板電腦和視訊遊戲控制台。GPU被配置為執行包括一或多個處理階段的圖形處理管線,該一或多個處理階段一起操作以執行圖形處理命令並輸出訊框。中央處理單元(CPU)可以經由向GPU發出一或多個圖形處理命令來控制GPU的操作。現代CPU通常能夠同時執行多個應用程式,每個應用程式在執行期間皆可能需要利用GPU。顯示處理器被配置為將從CPU接收的數位資訊轉換為類比值,並且可以向顯示面板發出用於顯示視覺內容的命令。提供在顯示器上進行視覺表現的內容的設備可以利用GPU及/或顯示處理器。
設備的GPU可以被配置為執行圖形處理管線中的程序。此外,顯示處理器或顯示處理單元(DPU)可以被配置為執行顯示處理的程序。然而,隨著無線通訊和更小的手持設備的出現,對改進的圖形或顯示處理的需求日益增加。
下文呈現了一或多個態樣的簡化概述,以便提供對這些態樣的基本理解。本概述不是所有設想到的態樣的廣泛概述,並且既不意欲標識所有態樣的關鍵或重要元素,亦不意欲勾勒任何或所有態樣的範疇。其唯一目的是以簡化形式呈現一或多個態樣的一些概念,作為稍後呈現的更詳細的描述的序言。
在本案的一個態樣,提供了一種方法、一種電腦可讀取媒體和一種裝置。該裝置可以是圖形處理單元(GPU)或能夠執行圖形處理的任何裝置。該裝置可以將至少一個場景劃分為複數個小網格,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點。該裝置亦可以辨識至少一個場景中的複數個小網格之每一者小網格的可見性,其中複數個小網格之每一者小網格被辨識為可見或不可見。另外,該裝置可以丟棄被辨識為不可見的複數個小網格之每一者小網格。該裝置亦可以計算針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對。該裝置亦可以基於針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對並且基於複數個小網格之每一者小網格的透視投影來選擇至少一個場景中的複數個小網格之每一者小網格的大小。此外,該裝置可以計算小網格圖譜中針對至少一個場景中的複數個小網格之每一者小網格的佈局資訊,該小網格圖譜中針對每個小網格的該佈局資訊是基於小網格的選定大小。該裝置亦可以基於小網格圖譜中計算出的佈局資訊來對小網格圖譜中的複數個圖元之每一者圖元進行著色。該裝置亦可以渲染被辨識為可見的複數個小網格之每一者小網格,其中小網格圖譜被取樣以決定輸出影像中多個圖元之每一者圖元的顏色。此外,該裝置可以向顯示器或面板發送輸出影像,該輸出影像包括被辨識為可見的經渲染的複數個小網格。
在附圖及下文的描述中闡述了本案的一或多個實例的細節。本案的其他特徵、目的和優點將從該描述和附圖以及從請求項中顯而易見。
圖形處理的一些態樣可以利用不同類型的著色程序,例如,物件空間著色或紋素著色。物件空間著色可以將著色結果儲存在物件空間中,而不是如在其他類型的著色中那樣儲存在最終影像空間中。物件空間可以是模型的紋理空間,諸如在紋素著色中。在著色圖譜流中,物件空間是在塊(例如,矩形塊)內對模型補丁進行著色的圖譜。在圖形處理的一些態樣,不同的物件空間著色方法可以將著色工作負荷不同地(諸如在不同類型的著色單元中)封包。這可以改善著色效率,以及啟用著色資訊的資料串流及/或著色資訊的再使用。紋素著色的一些態樣可以在每個紋理的原始紋理空間中使用圖元圖塊(例如,8×8個圖元圖塊)。此外,著色圖譜流可以使用被映射到矩形塊的補丁(例如,多達3個圖元/三角形)。與此相對,螢幕空間方法可以在每圖元級(或在螢幕空間圖塊中)操作,這可能需要大約每訊框重新計算。因此,螢幕空間方法可能難以再使用及/或以足夠的時間相干性進行資料串流。物件空間著色方法亦可能導致物件空間取樣樣式與目標螢幕空間取樣樣式不匹配。這種無法與目標螢幕空間取樣樣式匹配的情況可能導致過取樣,這會浪費GPU效能(例如,浪費高達400%的被處理圖元)。此外,無法與目標螢幕空間取樣樣式匹配的情況可能導致欠取樣,這會引起影像品質降低。在一些情況下,由於矩形映射到塊,所以著色圖譜中的失真圖元/三角形可能在一個軸上遭受欠取樣,而在另一個軸上遭受過取樣。本案的各態樣可以提供著色方法,例如物件空間著色方法,該著色方法包括匹配目標螢幕空間取樣樣式的取樣樣式。例如,本案的各態樣可以包括例如在紋理空間中的大著色單元,其映射對於所有可能的視圖而言主要是獨立於視圖的並且無失真的。本案的各態樣亦可以提供足夠大且與其螢幕空間大小大致對準的著色單元。經由這樣做,本案的各態樣可以使過取樣和欠取樣的影響最小化。
下文參考附圖更全面地描述系統、裝置、電腦程式產品和方法的各個態樣。然而,本案可以經由許多不同的形式體現,並且不應被解釋為限於貫穿本案呈現的任何特定結構或功能。相反,提供這些態樣是為了使本案徹底和完整,並且將本案的範疇完全傳達給本發明所屬領域中具有通常知識者。基於本文中的教導,本發明所屬領域中具有通常知識者應理解,本案的範疇意欲覆蓋本文揭示的系統、裝置、電腦程式產品和方法的任何態樣,無論其獨立於本案的其他態樣實施還是與本案的其他態樣組合實施。例如,可以使用本文所闡述的任何數目的態樣來實施裝置或實踐方法。此外,本案的範疇意欲覆蓋使用除本文闡述的本案的各個態樣之外的其他結構、功能、或結構和功能來實踐的此類裝置或方法。本文揭示的任何態樣可以由請求項的一或多個元素體現。
儘管在本文中描述了各個態樣,但這些態樣的許多變型和排列落入本案的範疇內。儘管提及了本案的各態樣的一些潛在益處和優點,但本案的範疇不意欲限於特定益處、用途或目標。相反,本案的各態樣意欲廣泛地適用於不同的無線技術、系統組態、網路以及傳輸協定,其中一些以實例的方式在附圖和以下描述中示出。具體實施方式和附圖僅是對本案的說明而不是限制,本案的範疇由所附請求項及其均等物限定。
參考各種裝置和方法來呈現若干態樣。這些裝置和方法將在下文的詳細描述中進行描述並且在附圖中用各種塊、部件、電路、處理、演算法等(被統稱為「元素」)進行圖示。這些元素可以使用電子硬體、電腦軟體或它們的任意組合來實施。將這些元素實現為硬體還是軟體取決於特定的應用和施加在整個系統上的設計約束。
舉例而言,元素或元素的任何部分或元素的任何組合可以被實現為包括一或多個處理器(亦可以被稱為處理單元)的「處理系統」。處理器的實例包括微處理器、微控制器、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、應用處理器、數位訊號處理器(DSP)、精簡指令集計算(RISC)處理器、片上系統(SOC)、基頻處理器、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、可程式設計邏輯裝置(PLD)、狀態機、閘控邏輯、個別硬體電路以及被配置為執行貫穿本案所描述的各種功能的其他合適硬體。處理系統中的一或多個處理器可以執行軟體。軟體可以廣義地解釋為指令、指令集、代碼、程式碼片段、程式碼、程式、副程式、軟體部件、應用、軟體應用、套裝軟體、常式、子常式、物件、可執行檔、執行執行緒、程序、函數等等,無論是否被稱為軟體、韌體、中介軟體、微碼、硬體描述語言或其他。術語「應用「可以指軟體。如本文所述,一或多個技術可以指被配置為執行一或多個功能的應用,即軟體。在此類實例中,應用可以被儲存在記憶體中,例如,處理器的片上記憶體、系統記憶體或任何其他記憶體。本文描述的硬體(諸如,處理器)可以被配置為執行應用。例如,應用可以被描述為包括代碼,該代碼在由硬體執行時使硬體執行本文描述的一或多個技術。作為實例,硬體可從記憶體存取碼並且執行從記憶體存取的代碼以執行本文描述的一或多個技術。在一些實例中,部件在本案內容中被辨識。在此類實例中,部件可以是硬體、軟體或它們的組合。部件可以是單獨的部件或是單個部件的子部件。
因此,在本文描述的一或多個實例中,所描述的功能可以以硬體、軟體或它們的任意組合來實現。若以軟體來實現,則功能可以被儲存在電腦可讀取媒體上或者被編碼為電腦可讀取媒體上的一或多個指令或代碼。電腦可讀取媒體包括電腦儲存媒體。儲存媒體可以是可由電腦存取的任何可用媒體。舉例而言,但不限於此,此類電腦可讀取媒體可以包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子可抹除可程式設計ROM(EEPROM)、光碟儲存裝置、磁性儲存設備、其他磁存放裝置、上述類型的電腦可讀取媒體的組合,或者可用於以可由電腦存取的指令或資料結構的形式儲存電腦可執行代碼的任何其他媒體。
通常,本案描述了在單個設備或多個設備中具有圖形處理管線、改善圖形內容的渲染及/或減少處理單元(亦即,被配置為執行本文所述的一或多個技術的任何處理單元,諸如GPU)的負載的技術。例如,本案描述了任何利用圖形處理的設備中用於圖形處理的技術。本案通篇描述了其他實例益處。
如本文所用,術語「內容」的實例可以指「圖形內容」、「影像」,反之亦然。無論這些術語是用作形容詞、名詞還是其他詞性,皆是如此。在一些實例中,如本文所用,術語「圖形內容」可以指由圖形處理管線的一或多個程序產生的內容。在一些實例中,如本文所用,術語「圖形內容」可以指由被配置為執行圖形處理的處理單元產生的內容。在一些實例中,如本文中所用,術語「圖形內容」可以指由圖形處理單元產生的內容。
在一些實例中,如本文所用,術語「顯示內容」可以指由被配置為執行顯示處理的處理單元產生的內容。在一些實例中,如本文所用,術語「顯示內容」可以指由顯示處理單元產生的內容。圖形內容可以被處理成顯示內容。例如,圖形處理單元可以向緩衝器(其可以被稱為訊框緩衝器)輸出圖形內容(諸如訊框)。顯示處理單元可以從該緩衝器讀取圖形內容(諸如一或多個訊框),並且在其上執行一或多個顯示處理技術以產生顯示內容。例如,顯示處理單元可以被配置為在一或多個經渲染層上執行合成以產生訊框。作為另一個實例,顯示處理單元可以被配置為將兩個或兩個以上層一起合成、混合或以其他方式組合成單個訊框。顯示處理單元可以被配置為對訊框執行縮放(例如,按比例放大或按比例縮小)。在一些實例中,訊框可以代表層。在其他實例中,訊框可以指已經混合在一起以形分框的兩個或兩個以上層,亦即,該訊框包括兩個或兩個以上層,並且包括兩個或兩個以上層的訊框隨後可以進行混合。
圖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外部的記憶體(諸如系統記憶體124)可以由處理單元120和內容編碼器/解碼器122存取。例如,處理單元120和內容編碼器/解碼器122可以被配置為從外部記憶體(諸如系統記憶體124)讀取及/或寫入外部記憶體。處理單元120和內容編碼器/解碼器122可以經由匯流排通訊地耦合到系統記憶體124。在一些實例中,處理單元120和內容編碼器/解碼器122可以經由匯流排或不同的連接彼此通訊地耦合。
內容編碼器/解碼器122可以被配置為從任何來源(諸如系統記憶體124及/或通訊介面126)接收圖形內容。系統記憶體124可以被配置為儲存所接收的已編碼或已解碼圖形內容。內容編碼器/解碼器122可以被配置為例如從系統記憶體124及/或通訊介面126接收呈已編碼圖元資料的形式的已編碼或已解碼圖形內容。內容編碼器/解碼器122可以被配置為對任何圖形內容進行編碼或解碼。
內部記憶體121或系統記憶體124可以包括一或多個揮發性或非揮發性記憶體或存放裝置。在一些實例中,內部記憶體121或系統記憶體124可以包括RAM、SRAM、DRAM、可抹除可程式設計ROM(EPROM)、電子可抹除可程式設計ROM(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可以將用於軟體的指令儲存在合適的非暫時性電腦可讀取儲存媒體(例如,內部記憶體121)中,並且可以使用一或多個處理器在硬體中執行指令以執行本案的技術。上述任何一項(包括硬體、軟體、硬體和軟體的組合等)可以被視為一或多個處理器。
在一些態樣,內容產生系統100可以包括通訊介面126。通訊介面126可以包括接收器128和發送器130。接收器128可以被配置為執行本文關於設備104描述的任何接收功能。另外,接收器128可以被配置為從另一設備接收資訊,例如,眼睛或頭部位置資訊、渲染命令或位置資訊。發送器130可以被配置為執行本文關於設備104描述的任何發送功能。例如,發送器130可以被配置為向另一設備發送資訊,該資訊可以包括對內容的請求。接收器128和發送器130可以組合成收發器132。在此類實例中,收發器132可以被配置為執行本文關於設備104描述的任何接收功能及/或發送功能。
再次參考圖1,在某些態樣,處理單元120可以包括小網格部件198,該小網格部件被配置為將至少一個場景劃分為複數個小網格,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點。小網格部件198亦可以被配置為辨識至少一個場景中的複數個小網格之每一者小網格的可見性,其中複數個小網格之每一者小網格被辨識為可見或不可見。小網格部件198亦可以被配置為丟棄被辨識為不可見的複數個小網格之每一者小網格。小網格部件198亦可以被配置為計算針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對。小網格部件198亦可以被配置為基於針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對並且基於複數個小網格之每一者小網格的透視投影來選擇至少一個場景中的複數個小網格之每一者小網格的大小。小網格部件198亦可以被配置為計算小網格圖譜中針對至少一個場景中的複數個小網格之每一者小網格的佈局資訊,該小網格圖譜中針對每個小網格的該佈局資訊是基於小網格的選定大小。小網格部件198亦可以被配置為基於小網格圖譜中計算出的佈局資訊來對小網格圖譜中的複數個圖元之每一者圖元進行著色。小網格部件198亦可以被配置為渲染被辨識為可見的複數個小網格之每一者小網格,其中小網格圖譜被取樣以決定輸出影像中複數個圖元之每一者圖元的顏色。小網格部件198亦可以被配置為向顯示器或面板發送輸出影像,該輸出影像包括被辨識為可見的經渲染的複數個小網格。儘管以下描述可能集中於圖形處理,但本文描述的概念可以適用於其他類似處理技術。
如本文所述,設備(諸如設備104)可以指被配置為執行本文描述的一或多個技術的任何設備、裝置或系統。例如,設備可以是伺服器、基地台、使用者設備、客戶端設備、站、存取點、電腦(例如,個人電腦、桌上型電腦、膝上型電腦、平板電腦、電腦工作站或大型電腦)、終端產品、裝置、電話、智慧型電話、伺服器、視訊遊戲平臺或控制台、手持設備(例如,可攜式視訊遊戲裝置或個人數位助理(PDA))、可穿戴計算設備(例如,智慧手錶)、增強現實設備或虛擬實境設備、不可穿戴設備、顯示器或顯示裝置、電視機、電視機上盒、中間網路設備、數位媒體播放機、視訊流設備、內容流設備、車載電腦、任何行動設備、被配置為產生圖形內容的任何設備,或被配置為執行本文所述的一或多個技術的任何設備。本文的處理可以被描述為由特定部件(例如,GPU)執行,但是,在進一步的實施例中,可以使用與所揭示的實施例一致的其他部件(例如,CPU)來執行。
GPU可以在GPU管線中處理多種類型的資料或資料封包。例如,在一些態樣,GPU可以處理兩種類型的資料或資料封包,例如,上下文暫存器封包和繪製調用(draw call)資料。上下文暫存器封包可以是一組全域狀態資訊,例如,關於全域暫存器、著色程式或常數資料的資訊,其可以調節將如何處理圖形上下文。例如,上下文暫存器封包可以包括關於顏色格式的資訊。在上下文暫存器封包的一些態樣,可能存在指示哪個工作負荷屬於上下文暫存器的位元。並且,可能有多個函數或程式設計同時及/或並行地執行。例如,函數或程式設計可以描述某種操作,例如顏色模式或顏色格式。因此,上下文暫存器可以定義GPU的多個狀態。
上下文狀態可以用於決定個體處理單元(例如,頂點提取器(VFD)、頂點著色器(VS)、著色器處理器或幾何形狀處理器)如何運作及/或處理單元以何種模式運作。為了做到這一點,GPU可以使用上下文暫存器和程式設計資料。在一些態樣,GPU可以基於模式或狀態的上下文暫存器定義在管線中產生工作負荷,例如,頂點或圖元工作負荷。某些處理單元(例如VFD)可以使用這些狀態來決定某些函數,例如頂點如何組裝。由於這些模式或狀態可能改變,所以GPU可能需要改變對應的上下文。另外,對應於該模式或狀態的工作負荷可以遵循改變的模式或狀態。
圖2圖示根據本案的一或多個技術的實例GPU 200。如圖2所示,GPU 200包括命令處理器(CP)210、繪製調用封包212、VFD 220、VS 222、頂點快取記憶體(VPC)224、三角形設置引擎(TSE)226、光柵化程式(RAS)228、Z處理引擎(ZPE)230、圖元內插器(PI)232、片段著色器(FS)234、渲染後端(RB)236、第2級(L2)快取記憶體(UCHE)238和系統記憶體240。儘管圖2顯示了GPU 200包括處理單元220-238,但GPU 200可以包括多個附加處理單元。另外,處理單元220-238僅僅是實例,並且處理單元的任何組合或順序可以由根據本案的GPU使用。GPU 200亦包括命令緩衝器250、上下文暫存器封包260和上下文狀態261。
如圖2所示,GPU可以利用CP(例如CP 210)或硬體加速器來將命令緩衝器解析為上下文暫存器封包(例如,上下文暫存器封包260)及/或繪製調用資料封包(例如,繪製調用封包212)。CP 210隨後可以經由單獨的路徑將上下文暫存器封包260或繪製調用封包212發送到GPU中的處理單元或塊。此外,命令緩衝器250可以交替上下文暫存器和繪製調用的不同狀態。例如,命令緩衝器可以按以下方式進行構造:上下文N的上下文暫存器、上下文N的繪製調用、上下文N+1的上下文暫存器和上下文N+1的繪製調用。
GPU可以以各種不同的方式對影像進行渲染。在一些情況下,GPU可以使用渲染及/或圖塊渲染來渲染影像。在圖塊渲染GPU中,影像可以被劃分或分隔為不同的部分或圖塊。在影像的劃分之後,可以分別渲染每個區段或圖塊。圖塊渲染GPU可以將電腦圖形影像劃分為格網格式,使得格網的每一部分(亦即,圖塊)被單獨渲染。在一些態樣,在分箱通道期間,影像可以被劃分為不同的箱(bin)或圖塊。在一些態樣,在分箱通道期間,可以構建可見性流,其中可以辨識可見圖元或繪製調用。與圖塊渲染相反,直接渲染並不將訊框劃分為更小的箱或圖塊。相反,在直接渲染時,整個訊框一次被渲染。另外,一些類型的GPU可以允許圖塊渲染和直接渲染兩者。
在一些態樣,GPU可以將繪圖或渲染程序應用於不同的箱或圖塊。例如,GPU可以渲染到一個箱,並且執行該箱中的圖元或圖元的所有繪製。在渲染到箱的程序期間,渲染目標可以位於GMEM中。在一些情況下,在渲染到一個箱之後,渲染目標的內容可以被移動到系統記憶體,並且GMEM尅被釋放以渲染下一個箱。另外,GPU可以渲染到另一個箱,並且執行該箱中的圖元或圖元的繪製。因此,在一些態樣,可能存在少量的箱(例如,四個箱),它們覆蓋一個表面中的所有繪製。此外,GPU可以循環經由一個箱中的所有繪製,但僅執行針對可見的繪製調用(亦即,包括可見幾何形狀的繪製調用)的繪製。在一些態樣,可以例如在分箱程序中產生可見性流以決定影像或場景之每一者圖元的可見性資訊。例如,該可見性流可以辨識某個圖元是否可見。在一些態樣,該資訊可以用於例如在渲染通道中移除不可見的圖元。此外,被辨識為可見的至少一些圖元可以在渲染通道中被渲染。
在圖塊渲染的某些態樣,可以存在多個處理階段或通道。例如,渲染可以在以下兩個通道中執行:例如,可見性或箱可見性通道和渲染或箱渲染通道。在可見性通道期間,GPU可以輸入渲染工作負荷,記錄圖元或三角形的位置,並且隨後決定哪些圖元或三角形落入哪個箱或區域。在可見性通道的一些態樣,GPU亦可以辨識或標記可見性流之每一者圖元或三角形的可見性。在渲染通道期間,GPU可以輸入可見性流並一次處理一個箱或區域。在一些態樣,可以分析可見性流以決定哪些圖元或圖元的頂點是可見的或不可見的。因而,可見的圖元或圖元的頂點可以被處理。經由這樣做,GPU可以減少處理或渲染不可見的圖元或三角形的不必要工作負荷。
在一些態樣,在可見性通道期間,可以處理某些類型的圖元幾何形狀(例如,僅位置幾何形狀)。另外,取決於圖元或三角形的位置或地點,可以將圖元分類到不同的箱或區域中。在一些情況下,可以經由決定這些圖元或三角形的可見性資訊來將圖元或三角形分類到不同的箱中。例如,GPU可以將每個圖元的可見性資訊決定或寫入例如系統記憶體之每一者箱或區域中。該可見性資訊可以用於決定或產生可見性流。在渲染通道中,每個箱中的圖元可以單獨地進行渲染。在這些情況下,可見性流可以從用於丟棄對於該箱不可見的圖元的記憶體中獲取。
GPU或GPU架構的一些態樣可以提供渲染的多個不同選項,例如,軟體渲染和硬體渲染。在軟體渲染中,驅動器或CPU可以經由一次處理每個視圖來複製整個訊框幾何形狀。另外,可以根據視圖改變一些不同的狀態。這樣,在軟體渲染中,軟體可以經由改變可用於渲染影像之每一者視點的一些狀態來複製整個工作負荷。在某些態樣,由於GPU可以對於影像之每一者視點多次提交相同的工作負荷,因此可能會增加管理負擔量。在硬體渲染中,硬體或GPU可以負責複製或處理影像之每一者視點的幾何形狀。因此,硬體可以管理影像中每個視點的圖元或三角形的複製或處理。
在一些態樣,渲染可以在多個位置及/或在多個設備上執行,例如,以便在不同設備之間劃分渲染工作負荷。例如,渲染可以在伺服器和客戶端設備之間拆分,這可以稱為「拆分渲染」。在一些情況下,拆分渲染可以是用於將內容帶到使用者設備或頭戴式顯示器(HMD)的方法,其中圖形處理的一部分可以在該設備或HMD外部被執行,例如在伺服器處執行。
可以針對若干不同類型的應用(例如,虛擬實境(VR)應用、增強現實(AR)應用及/或擴展現實(XR)應用)執行拆分渲染。在VR應用中,在使用者設備上顯示的內容可以對應於人造或動畫內容。在AR或XR內容中,在使用者設備處顯示的內容的一部分可以對應於真實世界內容(例如,真實世界中的物件),並且該內容的一部分可以是人造或動畫內容。而且,該人造或動畫內容和真實世界內容可以被顯示在光學透視或視訊透視設備中,使得使用者可以同時觀看真實世界物件和人造或動畫內容。在一些態樣,人造或動畫內容可以被稱為增強內容,或反之亦然。
圖3圖示如在圖形處理中使用的著色圖譜300的一個實例。如圖3所示,圖形處理的一些態樣可以利用著色圖譜資料串流,諸如經由著色圖譜300。著色圖譜流是適用於資料串流虛擬實境(VR)內容的物件空間渲染框架。在一些情況下,著色圖譜流亦可以被稱為向量流。著色圖譜流可以動態地將圖元的補丁繪製成紋理圖譜。著色圖譜流亦可以修補分配給圖譜中的矩形的多個圖元或三角形(例如,一(1)個至三(3)個圖元或三角形)。
圖形處理的一些態樣亦可以決定兩個或三個相鄰圖元/三角形的補丁的可見性。圖譜記憶體管理可以直接源自當前和預測視點的潛在可見集合(PVS)(亦即,使用擴展視場(FOV))。該圖譜記憶體管理程序可以在圖形處理單元(GPU)上動態地執行。新可見的補丁可以被分配在圖譜中,而已經變得不可見的補丁則可以從圖譜中移除。此外,補丁大小可以基於螢幕上補丁的投影面積來決定。在著色階段,可以使用標準幾何通道將可見補丁著色到圖譜中。
在拆分渲染應用(例如,包括伺服器和客戶端設備的應用)中,伺服器可以計算著色圖譜(例如,著色圖譜300)中的著色資訊。著色圖譜可以被編碼(例如,運動影像專家組(MPEG)編碼)並且被資料串流到客戶端設備(例如,獨立的頭戴式顯示器(HMD))。著色圖譜可以是時間相干的,並且有助於有效的MPEG壓縮和資料串流。客戶端設備可以以較高畫面播放速率來渲染最終視圖。另外,著色可以從著色圖譜中進行取樣。當使用者移動其頭部時,可以渲染新的視圖。這些新視圖可以使用客戶端設備處可用的最新圖譜訊框。
圖形處理的一些態樣可以利用不同類型的著色程序(例如,物件空間著色或紋素著色)。物件空間著色可以將著色結果儲存在物件空間中,而不是如在其他類型的著色中一般儲存在最終影像空間中。物件空間可以是模型的紋理空間,諸如在紋素著色中。在著色圖譜流中,物件空間是在塊(例如,矩形塊)內對模型補丁進行著色的圖譜。例如,圖3中的著色圖譜300可以是物件空間,其中模型補丁在塊內進行著色。
在圖形處理的一些態樣,不同的物件空間著色方法可以將著色工作負荷不同地封包。這可以提高著色效率,以及啟用著色資訊的資料串流及/或著色資訊的再使用。紋素著色的一些態樣可以經由在每個紋理的原始紋理空間中使用圖元圖塊(例如,8×8圖元圖塊)來對著色工作負荷進行群組。此外,著色圖譜流可以經由使用映射到矩形塊中的補丁(例如,多達3個圖元/三角形的組)來對著色工作負荷進行群組。相反,螢幕空間方法可以在每圖元級(或在螢幕空間圖塊中)操作,這可能需要大約每訊框重新計算。因此,螢幕空間方法可能難以再使用及/或以足夠的時間相干性進行資料串流。
物件空間著色方法亦可能導致物件空間取樣樣式與目標螢幕空間取樣樣式不匹配。這種無法與目標螢幕空間取樣樣式匹配的情況可能導致過取樣,這會浪費GPU效能。此外,無法與目標螢幕空間取樣樣式匹配的情況可能導致欠取樣,這會引起影像品質降低。在一些情況下,由於矩形映射到塊,所以著色圖譜中的失真圖元/三角形可能在一個軸上遭受欠取樣,而在另一個軸上遭受過取樣。基於上述情況,可能有益的是提供包括與目標螢幕空間取樣樣式匹配的取樣樣式的著色方法。亦可能有益的是辨識能夠(例如在紋理空間中)連續地被著色的大面積,其映射對於所有可能的視圖而言主要是獨立於視圖的並且無失真的。此外,可能有益的是包括足夠大且與其螢幕空間大小大致對準的著色單元。
本案的各態樣可以提供著色方法(例如物件空間著色方法),該著色方法包括匹配目標螢幕空間取樣樣式的取樣樣式。例如,本案的各態樣可以包括(例如在紋理空間中的)大著色單元,其映射對於所有可能的視圖而言主要是獨立於視圖的並且無失真的。本案的各態樣亦可以提供足夠大且與其螢幕空間大小大致對準的著色單元。經由這樣做,本案的各態樣可以使過取樣和欠取樣的影響最小化。
在一些態樣,著色圖譜流可以依賴於物件空間著色並且可以使用被映射到矩形塊中的補丁(例如,多達3個圖元或三角形)來作為單元構建塊。物件空間著色方法可能遭受其取樣樣式與目標螢幕空間取樣樣式不匹配的事實,這可能導致過取樣和欠取樣。本文呈現的各態樣提出了物件空間著色方法來解決該問題,包括匹配目標螢幕空間取樣樣式的取樣樣式。例如,本文呈現的各態樣可以利用著色單元,其映射對於多個視圖(例如,所有可能的視圖)而言是獨立於視圖的並且無失真的。本文呈現的各態樣亦可以利用足夠大且與其螢幕空間大小大致對準以便使過取樣和欠取樣的影響最小化的著色單元。
在一些情況下,本案的各態樣可以經由將場景劃分為小網格並預計算多個獨立於視圖的圖表來限定用於著色的圖元組。例如,本案的各態樣可以預計算包括第一軸(U)和第二軸(V)的二維(2D)圖表(亦即,UV圖表)。小網格是一組幾何圖元,該組幾何圖元可以連接或不連接。小網格可以被產生為相對平坦,使得在小網格內不會發生自遮擋以便避免偽像。如本文所述,每個小網格可以包括一或多個圖元或三角形。此外,小網格可以是現代渲染引擎的方便表示。例如,網格著色器可以顯著地增加現代渲染管線的效能。
本案的各態樣可以利用或瞄準具有最大圖元/三角形計數的小網格。此外,本案的各態樣可以使用現有著色圖譜記憶體管理以便將小網格渲染到圖譜中。在一些態樣,每個小網格的固定UV圖表可以在初始化期間被資料流一次,並且該UV圖表可以更新圖譜中的偏移。此外,較大的小網格可能導致需要處理和資料串流的實例較少。
另外,本案的各態樣可以利用包括多個不同階段的渲染程序。例如,本案的各態樣可以利用預處理階段、可見性階段、記憶體管理階段、著色階段及/或顯示階段來渲染。在預處理階段期間,本案的各態樣可以經由應用最小二乘保角映射方法來產生小網格並產生UV圖表。在可見性階段,本案的各態樣可以決定哪些小網格是可見的以及哪些小網格是不可見的。在記憶體管理階段期間,本案的各態樣可以在圖譜中為每個可見小網格分配空間。在著色階段,本案的各態樣可以對所分配的圖譜塊之每一者小網格進行著色。最後,在顯示階段期間,本案的各態樣可以使用在圖譜及/或預計算的UV圖表中具有偏移的可見小網格來渲染最終視圖/影像。為了顯示最終視圖/影像,該視圖/影像可以被傳輸到顯示器或顯示面板。
圖4A、圖4B和圖4C分別圖示實例著色三維(3D)模型402、實例小網格視覺化模型422和實例小網格442的圖400、圖420和圖440。更具體地,圖4A、圖4B和圖4C中的圖400、420和440圖示轉變程序的不同階段。如圖4A、圖4B和圖4C所圖示的,該轉變程序包括著色圖譜中的著色三維(3D)模型402、小網格視覺化模型422和小網格442。如圖4A所示,圖400包括著色3D模型402,該模型包括辨識區域(亦即,白框)。該辨識區域對應於著色圖譜中包括至少一個小網格(例如,小網格442)的區域。如圖4B所示,圖420包括小網格視覺化模型422,該小網格視覺化模型包括辨識區域(亦即,白框)。類似於圖4A,該辨識區域對應於著色圖譜中包括至少一個小網格(例如,小網格442)的區域。如圖4C所圖示,圖440包括著色圖譜中的小網格442,該小網格對應於圖4A和圖4B中的辨識區域。
本案的各態樣亦可以利用時間相干性方法。例如,由於UV圖表是預計算的,因此小網格的投影大小的變化可能導致小網格到圖譜的映射的比例調整。該比例調整程序可以類似於標準著色圖譜中的程序。而且,該程序可以與時間重用和快取記憶體相結合以產生更高的效率(這可以類似於時間自我調整著色)。此外,流式轉碼器能夠利用類似於標準著色圖譜的時間相干性。
如前述,本案的各態樣可以在渲染程序期間利用記憶體管理階段。在記憶體管理階段中,可以以類似於原始著色圖譜的方式來決定小網格的大小。例如,可以基於小網格中心、相機和小網格中的頂點之間的最大角度來決定小網格的大小。可以執行該網格大小決定以避免透視投影的問題。在一些態樣,可以將邊界框(例如,螢幕空間邊界框)的各個邊放大到某一冪(例如,二的下一冪)。此外,可以在著色圖譜中分配對應大小的塊(例如,圖譜空間塊)。另外,偏置(亦即,類似於原始著色圖譜中的偏置)可以被施加到邊界框大小。該程序可以用於限制著色工作負荷的量。
圖5A和圖5B分別圖示實例螢幕空間邊界框和實例圖譜空間塊的圖500和520。如圖5A所示,圖500包括螢幕空間邊界框502。如本文所提到的,螢幕空間邊界框502可以在渲染程序期間的記憶體管理階段中使用。更具體地,在記憶體管理階段期間,可以向邊界框的大小施加偏置。此外,螢幕空間邊界框502的各個邊可以被放大到某一冪(例如,2的冪)。如圖5B所示,圖520包括圖譜空間塊522。如上所提到的,圖譜空間塊522可以被分配在著色圖譜中。例如,圖譜空間塊522可以對應於螢幕空間邊界框502的大小,並且被分配在著色圖譜中。此外,圖譜空間塊522的長度可以對應於某一量(例如,2
m),並且圖譜空間塊522的寬度可以對應於另一量(例如,2
n),其中m和n是整數。
圖6圖示在著色階段期間使用的實例小網格的圖600。如圖6所示,圖600包括小網格610和著色圖元620。如上文所提到的,本案的各態樣可以在渲染程序期間利用著色階段。在著色階段期間,可以使用網格著色器來對著色圖譜(或小網格圖譜)中的某些小網格(例如,可見小網格)進行著色。如圖6中所圖示,可以在每個著色小網格(例如,小網格610)周圍添加著色圖元(例如,著色圖元620)的邊框。經由在小網格610周圍添加著色圖元620的邊框,這可以允許在從圖譜取樣時進行紋理過濾。著色圖譜可以包含對應於所渲染場景的可見表面的著色資訊。小網格圖譜可以包含對應於所渲染場景的可見表面的小網格資訊。此外,佈局資訊可以是關於所渲染場景內的元素的佈置的資訊。
本案的各態樣亦可以在渲染程序期間利用顯示階段。在一些情況下,該顯示階段可以是直接渲染通道。例如,紋理座標可以在頂點著色器中用預計算的UV圖表(亦即,按頂點儲存)和圖譜中的偏移來計算。紋理座標是紋理空間中的座標。紋理座標可以相對於紋理空間中的位置(例如,(0,0))。此外,當紋理被應用於圖元時,其紋素位址可以被映射到物件座標中。物件座標隨後可以被轉換為螢幕座標或圖元位置。另外,片段著色器可以利用來自頂點著色器的紋理座標來實現對著色圖譜的紋理檢視。
本案的各態樣可以包括許多不同的益處或優點。如上文所提到的,本案的各態樣可以提供穩健的紋理空間著色方法,其利用某些著色方法,諸如小網格和網格著色器。根據本案的紋理空間著色解決方案可以主要獨立於原始模型的紋理解析度。此外,紋理空間著色解決方案可以經由採用獨立於視圖的預計算UV圖表來減少取樣偽像。例如,獨立於視圖的預計算UV圖表可以組合圖元/三角形,例如儘可能多的圖元/三角形。紋理空間著色解決方案亦可以維持高效的記憶體管理、時間相干性、潛在資料串流能力及/或著色圖譜的緊湊性。因此,本文所呈現的各態樣可以提供用於利用紋理空間快取記憶體及/或渲染的現代引擎的實用方法。例如,本文所呈現的各態樣可以與許多程序一起使用,諸如全域照明、時間累積/快取記憶體/反鋸齒以及烘焙。
圖7是根據本案的一或多個技術的圖形處理的通訊流程圖700。如圖7所示,圖700包括根據本案的一或多個技術的在GPU部件702(例如,GPU管線中的部件)、顯示器或面板704和GPU部件706(例如,GPU管線中的部件)之間的實例通訊。
在710處,GPU部件702可以將至少一個場景劃分為複數個小網格,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點。在一些態樣,GPU部件702可以接收至少一個場景的指示(例如,GPU部件702可以從GPU部件706接收至少一個場景712的指示)。在一些態樣,複數個小網格之每一者小網格中的複數個圖元之每一者圖元可以與複數個圖元中的至少一個其他圖元相鄰,在該至少一個其他圖元的閾值距離內,或在空間上與該至少一個其他圖元相干。
在720處,GPU部件702可以辨識至少一個場景中的複數個小網格之每一者小網格的可見性,其中複數個小網格之每一者小網格被辨識為可見或不可見。在一些情況下,被辨識為可見的複數個小網格之每一者小網格可以對應於小網格圖譜中的已著色的複數個圖元中的至少一個圖元。
在730處,GPU部件702可以丟棄被辨識為不可見的複數個小網格之每一者小網格。
在740處,GPU部件702可以計算針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對。針對複數個小網格之每一者小網格中的複數個頂點之每一者頂點的該對紋理座標可以基於小網格的最少失真佈置來預計算。此外,針對複數個小網格之每一者小網格中的複數個頂點之每一者頂點的該對紋理座標可以基於小網格的透視投影來動態地計算。此外,針對複數個小網格之每一者小網格中的複數個頂點之每一者頂點的該對紋理座標可以在網格著色器、頂點著色器或計算著色器中進行計算。
在750處,GPU部件702可以基於針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對並且基於複數個小網格之每一者小網格的透視投影來選擇至少一個場景中的複數個小網格之每一者小網格的大小。複數個小網格之每一者小網格的透視投影可以是每個小網格到對應於至少一個場景的當前視點的影像平面的投影。此外,複數個小網格之每一者小網格的大小可以基於複數個小網格之每一者小網格的中心與小網格的複數個頂點之每一者頂點之間的夾角的最大值,其中該夾角對應於至少一個場景的當前視點。
在760處,GPU部件702可以計算小網格圖譜中針對至少一個場景中的複數個小網格之每一者小網格的佈局資訊,該小網格圖譜中針對每個小網格的該佈局資訊是基於小網格的選定大小。在一些態樣,計算小網格圖譜中的佈局資訊可以包括在小網格圖譜中為至少一個場景中的複數個小網格之每一者小網格分配空間,其中在著色圖譜中為複數個小網格之每一者小網格分配的空間是基於小網格的選定大小。小網格圖譜可以對應於物件空間著色表示。此外,小網格圖譜可以與圖形應用相關聯,該圖形應用包括以下至少一個:資料串流應用、全域照明應用、時間累積應用、快取記憶體應用或反鋸齒應用。
在770處,GPU部件702可以基於小網格圖譜中計算出的佈局資訊來對小網格圖譜中的複數個圖元之每一者圖元進行著色。在一些情況下,對小網格圖譜中的複數個圖元之每一者圖元進行著色可以包括計算小網格圖譜中的複數個圖元之每一者圖元的表面顏色。例如,GPU部件可以計算小網格圖譜中的複數個圖元之每一者圖元的表面顏色。另外,對小網格圖譜中的複數個圖元之每一者圖元進行著色可以包括計算以下至少一個:小網格圖譜中的複數個圖元之每一者圖元的透明資訊、小網格圖譜中的複數個圖元之每一者圖元的物件辨識碼、小網格圖譜中的複數個圖元之每一者圖元的一或多個表面法線、或小網格圖譜中的複數個圖元之每一者圖元的世界空間位置。例如,GPU部件可以計算以下至少一個:小網格圖譜中的複數個圖元之每一者圖元的透明資訊、小網格圖譜中的複數個圖元之每一者圖元的物件辨識碼、小網格圖譜中的複數個圖元之每一者圖元的一或多個表面法線、或小網格圖譜中的複數個圖元之每一者圖元的世界空間位置。
在780處,GPU部件702可以渲染被辨識為可見的複數個小網格之每一者小網格,其中小網格圖譜被取樣以決定輸出影像中複數個圖元之每一者圖元的顏色。
在790處,GPU部件702可以向顯示器或面板(例如,顯示器/面板704)發送輸出影像,該輸出影像包括被辨識為可見的經渲染的複數個小網格(例如,GPU部件702可以向顯示器/面板704傳輸影像792)。
圖8是根據本案的一或多個技術的實例圖形處理方法的流程圖800。該方法可以由GPU執行,諸如用於圖形處理的裝置、另一圖形處理器、GPU管線、無線通訊設備及/或能夠執行如與圖1至圖7的實例結合使用的圖形處理的任何設備。
在802處,GPU可以將至少一個場景劃分為複數個小網格,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點,如結合圖1至圖7中的實例所述。例如,如圖7的710中所述,GPU部件702可以將至少一個場景劃分為複數個小網格,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括多個頂點。此外,步驟802可以由圖1中的處理單元120執行。在一些態樣,複數個小網格之每一者小網格中的複數個圖元之每一者圖元可以與複數個圖元中的至少一個其他圖元相鄰,在該至少一個其他圖元的閾值距離內,或在空間上與該至少一個其他圖元相干。在一些態樣,GPU可以接收至少一個場景的指示(例如,GPU可以從另一個GPU部件接收至少一個場景的指示)。
在808處,GPU可以計算針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對,如結合圖1至圖7中的實例所述。例如,如圖7的740中所述,GPU部件702可以計算針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對。此外,步驟808可以由圖1中的處理單元120執行。針對複數個小網格之每一者小網格中的複數個頂點之每一者頂點的該對紋理座標可以基於小網格的最少失真佈置來預計算。此外,針對複數個小網格之每一者小網格中的複數個頂點之每一者頂點的該對紋理座標可以基於小網格的透視投影來動態地計算。此外,針對複數個小網格之每一者小網格中的複數個頂點之每一者頂點的該對紋理座標可以在網格著色器、頂點著色器或計算著色器中進行計算。
在810處,GPU可以基於針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對並且基於複數個小網格之每一者小網格的透視投影來選擇至少一個場景中的複數個小網格之每一者小網格的大小,如結合圖1至圖7中的實例所述。例如,如圖7的750中所述,GPU部件702可以基於針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對並且基於複數個小網格之每一者小網格的透視投影來選擇至少一個場景中的複數個小網格之每一者小網格的大小。此外,步驟810可以由圖1中的處理單元120執行。複數個小網格之每一者小網格的透視投影可以是每個小網格到對應於至少一個場景的當前視點的影像平面的投影。此外,複數個小網格之每一者小網格的大小可以基於複數個小網格之每一者小網格的中心與小網格的複數個頂點之每一者頂點之間的夾角的最大值,其中該夾角對應於至少一個場景的當前視點。
在812處,GPU可以計算小網格圖譜中針對至少一個場景中的複數個小網格之每一者小網格的佈局資訊,該小網格圖譜中針對每個小網格的該佈局資訊是基於小網格的選定大小,如結合圖1至圖7中的實例所述。例如,如圖7的760中所述,GPU部件702可以計算小網格圖譜中針對至少一個場景中的複數個小網格之每一者小網格的佈局資訊,該小網格圖譜中針對每個小網格的該佈局資訊是基於小網格的選定大小。此外,步驟812可以由圖1中的處理單元120執行。在一些態樣,計算小網格圖譜中的佈局資訊可以包括在小網格圖譜中為至少一個場景中的複數個小網格之每一者小網格分配空間,其中在著色圖譜中為複數個小網格之每一者小網格分配的空間是基於小網格的選定大小。小網格圖譜可以對應於物件空間著色表示。此外,小網格圖譜可以與圖形應用相關聯,該圖形應用包括以下至少一個:資料串流應用、全域照明應用、時間累積應用、快取記憶體應用或反鋸齒應用。
在814處,GPU可以基於小網格圖譜中計算出的佈局資訊來對小網格圖譜中的複數個圖元之每一者圖元進行著色,如結合圖1至圖7中的實例所述。例如,如圖7的770中所述,GPU部件702可以基於小網格圖譜中計算出的佈局資訊來對小網格圖譜中的複數個圖元之每一者圖元進行著色。此外,步驟814可以由圖1中的處理單元120執行。在一些情況下,對小網格圖譜中的複數個圖元之每一者圖元進行著色可以包括計算小網格圖譜中的複數個圖元之每一者圖元的表面顏色。例如,GPU可以計算小網格圖譜中的複數個圖元之每一者圖元的表面顏色。另外,對小網格圖譜中的複數個圖元之每一者圖元進行著色可以包括計算以下至少一個:小網格圖譜中的複數個圖元之每一者圖元的透明資訊、小網格圖譜中的複數個圖元之每一者圖元的物件辨識碼、小網格圖譜中的複數個圖元之每一者圖元的一或多個表面法線、或小網格圖譜中的複數個圖元之每一者圖元的世界空間位置。例如,GPU部件可以計算以下至少一個:小網格圖譜中的複數個圖元之每一者圖元的透明資訊、小網格圖譜中的複數個圖元之每一者圖元的物件辨識碼、小網格圖譜中的複數個圖元之每一者圖元的一或多個表面法線、或小網格圖譜中的複數個圖元之每一者圖元的世界空間位置。
圖9是根據本案的一或多個技術的實例圖形處理方法的流程圖900。該方法可以由GPU執行,諸如用於圖形處理的裝置、另一圖形處理器、GPU管線、無線通訊設備及/或能夠執行如與圖1至圖7的實例結合使用的圖形處理的任何設備。
在902處,GPU可以將至少一個場景劃分為複數個小網格,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點,如結合圖1至圖7中的實例所述。例如,如圖7的710中所述,GPU部件702可以將至少一個場景劃分為複數個小網格,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點。此外,步驟902可以由圖1中的處理單元120執行。在一些態樣,複數個小網格之每一者小網格中的複數個圖元之每一者圖元可以與複數個圖元中的至少一個其他圖元相鄰,在該至少一個其他圖元的閾值距離內,或在空間上與該至少一個其他圖元相干。在一些態樣,GPU可以接收至少一個場景的指示(例如,GPU可以從另一個GPU部件接收至少一個場景的指示)。
在904處,GPU可以辨識至少一個場景中的複數個小網格之每一者小網格的可見性,其中複數個小網格之每一者小網格被辨識為可見或不可見,如結合圖1至圖7中的實例所述。例如,如圖7的720中所述,GPU部件702可以辨識至少一個場景中的複數個小網格之每一者小網格的可見性,其中複數個小網格之每一者小網格被辨識為可見或不可見。此外,步驟904可以由圖1中的處理單元120執行。在一些情況下,被辨識為可見的複數個小網格之每一者小網格可以對應於小網格圖譜中的已著色的複數個圖元中的至少一個圖元。
在906處,GPU可以丟棄被辨識為不可見的複數個小網格之每一者小網格,如結合圖1至圖7中的實例所述。例如,如圖7的730中所述,GPU部件702可以丟棄被辨識為不可見的複數個小網格之每一者小網格。此外,步驟906可以由圖1中的處理單元120執行。
在908處,GPU可以計算針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對,如結合圖1至圖7中的實例所述。例如,如圖7的740中所述,GPU部件702可以計算針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對。此外,步驟908可以由圖1中的處理單元120執行。針對複數個小網格之每一者小網格中的複數個頂點之每一者頂點的該對紋理座標可以基於小網格的最少失真佈置來預計算。此外,針對複數個小網格之每一者小網格中的複數個頂點之每一者頂點的該對紋理座標可以基於小網格的透視投影來動態地計算。此外,針對複數個小網格之每一者小網格中的複數個頂點之每一者頂點的該對紋理座標可以在網格著色器、頂點著色器或計算著色器中進行計算。
在910處,GPU可以基於針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對並且基於複數個小網格之每一者小網格的透視投影來選擇至少一個場景中的複數個小網格之每一者小網格的大小,如結合圖1至圖7中的實例所述。例如,如圖7的750中所述,GPU部件702可以基於針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對並且基於複數個小網格之每一者小網格的透視投影來選擇至少一個場景中的複數個小網格之每一者小網格的大小。此外,步驟910可以由圖1中的處理單元120執行。複數個小網格之每一者小網格的透視投影可以是每個小網格到對應於至少一個場景的當前視點的影像平面的投影。此外,複數個小網格之每一者小網格的大小可以基於複數個小網格之每一者小網格的中心與小網格的複數個頂點之每一者頂點之間的夾角的最大值,其中該夾角對應於至少一個場景的當前視點。
在912處,GPU可以計算小網格圖譜中針對至少一個場景中的複數個小網格之每一者小網格的佈局資訊,該小網格圖譜中針對每個小網格的該佈局資訊是基於小網格的選定大小,如結合圖1至圖7中的實例所述。例如,如圖7的760中所述,GPU部件702可以計算小網格圖譜中針對至少一個場景中的複數個小網格之每一者小網格的佈局資訊,該小網格圖譜中針對每個小網格的該佈局資訊是基於小網格的選定大小。此外,步驟912可以由圖1中的處理單元120執行。在一些態樣,計算小網格圖譜中的佈局資訊可以包括在小網格圖譜中為至少一個場景中的複數個小網格之每一者小網格分配空間,其中在著色圖譜中為複數個小網格之每一者小網格分配的空間是基於小網格的選定大小。小網格圖譜可以對應於物件空間著色表示。此外,小網格圖譜可以與圖形應用相關聯,該圖形應用包括以下至少一個:資料串流應用、全域照明應用、時間累積應用、快取記憶體應用或反鋸齒應用。
在914處,GPU可以基於小網格圖譜中計算出的佈局資訊來對小網格圖譜中的複數個圖元之每一者圖元進行著色,如結合圖1至圖7中的實例所述。例如,如圖7的770中所述,GPU部件702可以基於小網格圖譜中計算出的佈局資訊來對小網格圖譜中的複數個圖元之每一者圖元進行著色。此外,步驟914可以由圖1中的處理單元120執行。在一些情況下,對小網格圖譜中的複數個圖元之每一者圖元進行著色可以包括計算小網格圖譜中的複數個圖元之每一者圖元的表面顏色。例如,GPU可以計算小網格圖譜中的複數個圖元之每一者圖元的表面顏色。另外,對小網格圖譜中的複數個圖元之每一者圖元進行著色可以包括計算以下至少一個:小網格圖譜中的複數個圖元之每一者圖元的透明資訊、小網格圖譜中的複數個圖元之每一者圖元的物件辨識碼、小網格圖譜中的複數個圖元之每一者圖元的一或多個表面法線、或小網格圖譜中的複數個圖元之每一者圖元的世界空間位置。例如,GPU可以計算以下至少一個:小網格圖譜中的複數個圖元之每一者圖元的透明資訊、小網格圖譜中的複數個圖元之每一者圖元的物件辨識碼、小網格圖譜中的複數個圖元之每一者圖元的一或多個表面法線、或小網格圖譜中的複數個圖元之每一者圖元的世界空間位置。
在916處,GPU可以渲染被辨識為可見的複數個小網格之每一者小網格,其中小網格圖譜被取樣以決定輸出影像中複數個圖元之每一者圖元的顏色,如結合圖1至圖7中的實例所述。例如,如圖7的780中所述,GPU部件702可以渲染被辨識為可見的複數個小網格之每一者小網格,其中小網格圖譜被取樣以決定輸出影像中複數個圖元之每一者圖元的顏色。此外,步驟916可以由圖1中的處理單元120執行。
在918處,GPU可以向顯示器或面板發送輸出影像,該輸出影像包括被辨識為可見的經渲染的複數個小網格,如結合圖1至圖7中的實例所述。例如,如圖7的790中所述,GPU部件702可以向顯示器或面板發送輸出影像,該輸出影像包括被辨識為可見的經渲染的複數個小網格。此外,步驟918可以由圖1中的處理單元120執行。
在配置中,提供了一種用於圖形處理的方法或裝置。該裝置可以是GPU、圖形處理器或能夠執行圖形處理的一些其他處理器。在各態樣,該裝置可以是設備104內的處理單元120,或者可以是設備104或另一設備內的一些其他硬體。該裝置(例如,處理單元120)可以包括用於將至少一個場景劃分為複數個小網格的部件,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點。該裝置(例如,處理單元120)亦可以包括用於計算針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對的部件。該裝置(例如,處理單元120)亦可以包括用於基於針對複數個小網格之每一者小網格中的複數個圖元之每一者圖元的複數個頂點之每一者頂點的紋理座標對並且基於複數個小網格之每一者小網格的透視投影來選擇至少一個場景中的複數個小網格之每一者小網格的大小的部件。該裝置(例如,處理單元120)亦可以包括用於計算小網格圖譜中針對至少一個場景中的複數個小網格之每一者小網格的佈局資訊的部件,該小網格圖譜中針對每個小網格的該佈局資訊是基於小網格的選定大小。該裝置(例如,處理單元120)亦可以包括用於基於小網格圖譜中計算出的佈局資訊來對小網格圖譜中的複數個圖元之每一者圖元進行著色的部件。該裝置(例如,處理單元120)亦可以包括用於辨識至少一個場景中的複數個小網格之每一者小網格的可見性的部件,其中複數個小網格之每一者小網格被辨識為可見或不可見。該裝置(例如,處理單元120)亦可以包括用於丟棄被辨識為不可見的複數個小網格之每一者小網格的部件。該裝置(例如,處理單元120)亦可以包括用於渲染被辨識為可見的複數個小網格之每一者小網格的部件,其中小網格圖譜被取樣以決定輸出影像中複數個圖元之每一者圖元的顏色。該裝置(例如,處理單元120)亦可以包括用於向顯示器或面板發送輸出影像的部件,該輸出影像包括被辨識為可見的經渲染的複數個小網格。
本文描述的主題可以被實施以實現一或多個益處或優點,例如,所描述的圖形處理技術可以由GPU、圖形處理器或能夠執行圖形處理以實施本文所描述的小網格著色圖譜技術的一些其他處理器使用。與其他圖形處理技術相比,這亦可以以低成本實現。此外,本文的圖形處理技術可以改進或加快資料處理或執行。此外,本文的圖形處理技術可以提高資源或資料利用率及/或資源效率。另外,本案的各態樣可以利用小網格著色圖譜技術以便提高記憶體頻寬效率及/或提高GPU處的處理速度。
應當理解,所揭示的程序/流程圖中的塊的具體順序或層級是實例方法的說明。基於設計偏好,應當理解,可以重新佈置程序/流程圖中的塊的具體順序或層級。此外,一些塊可以進行組合或被省略。所附方法請求項以樣品順序呈現各個方塊的元素,並且不意味著限於所呈現的具體順序或層級。
前述描述被提供用於使本發明所屬領域中具有通常知識者能夠實踐本文所描述的各個態樣。本發明所屬領域中具有通常知識者將容易明白對這些態樣的各種修改,並且本文限定的一般原理可以應用於其他態樣。因此,請求項不意欲限於本文所示的各態樣,而是要符合與請求項的語言一致的全部範疇,其中除非明確地如此陳述,否則以單數形式提及元素不意欲意指「一個且僅一個」,而是意指「一或多個」。詞語「示例性」在本文中用於意指「充當實例、例子或說明」。本文中描述為「示例性」的任何態樣不一定被解釋為比其他態樣優選或有利。
除非另有明確說明,否則術語「一些」是指一或多個,並且術語「或」可以被解釋為「及/或」,其中上下文沒有另外規定。諸如「A、B或C中的至少一個」、「A、B或C中的一或多個」、「A、B和C中的至少一個」、「A、B和C中的一或多個」和「A、B、C或它們的任何組合」等組合包括A、B及/或C的任何組合,並且可以包括A的倍數、B的倍數或C的倍數。具體地,諸如「A、B或C中的至少一個」、「A、B或C中的一或多個」、「A、B和C中的至少一個」、「A、B和C中的一或多個」和「A、B、C或它們的任何組合」可以是僅A、僅B、僅C、A和B、A和C、B和C、或A和B和C,其中任何此類組合可以包含A、B或C中的一或多個成員。本發明所屬領域中具有通常知識者已知的或今後將會知道的、貫穿本案所述的各個態樣的元素的所有結構和功能均等物皆以引用方式明確地併入本文,並且意欲被請求項所涵蓋。此外,本文所揭示的任何內容均不意欲專供公眾使用,不管該揭示內容是否在申請專利範圍中明確敘述。詞語「模組」、「機構」、「元素」、「設備」等可能不是詞語「部件」的替代物。因此,除非使用短語「用於…的部件」明確地敘述該元素,否則任何請求項元素皆不應被解釋為部件加功能。
在一或多個實例中,本文所描述的功能可以以硬體、軟體、韌體或它們的任何組合來實現。例如,儘管在本案中使用了術語「處理單元」,但是此類處理單元可以以硬體、軟體、韌體或它們的任何組合來實現。若本文所描述的任何功能、處理單元、技術或者其他模組以軟體來實現,則本文所描述的功能、處理單元、技術或者其他模組可以作為一或多個指令或代碼被儲存在電腦可讀取媒體上或者經由該電腦可讀取媒體進行傳輸。
根據本案,術語「或」可以被解釋為「及/或」,其中上下文沒有另外規定。此外,儘管諸如「一或多個」或「至少一個」等短語可能已用於本文所揭示的一些特徵而未用於其他特徵,但是沒有使用此類語言的特徵可以在上下文沒有另外規定的情況下被解釋為具有隱含的這種含義。
在一或多個實例中,本文所描述的功能可以以硬體、軟體、韌體或它們的任何組合來實現。例如,儘管在本案中使用了術語「處理單元」,但是此類處理單元可以以硬體、軟體、韌體或它們的任何組合來實現。若本文所描述的任何功能、處理單元、技術或者其他模組以軟體來實現,則本文所描述的功能、處理單元、技術或者其他模組可以作為一或多個指令或代碼被儲存在電腦可讀取媒體上或者經由該電腦可讀取媒體進行傳輸。電腦可讀取媒體可以包括電腦資料儲存媒體或通訊媒體,包括便於將電腦程式從一個地方傳送到另一個地方的任何媒體。這樣,電腦可讀取媒體通常可以對應於(1)有形電腦可讀取儲存媒體,其是非暫時性的,或(2)通訊媒體,諸如信號或載波。資料儲存媒體可以是可由一或多個電腦或一或多個處理器存取以檢索用於實施本案中所描述的技術的指令、代碼及/或資料結構的任何可用媒體。舉例而言,但不限於此,此類電腦可讀取媒體可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟儲存裝置、磁性儲存設備或其他磁存放裝置。如本文所用,磁碟和光碟包括壓縮磁碟(CD)、雷射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中磁碟通常磁性地再現資料,而光碟用鐳射光學地再現資料。上述的組合亦應被包括在電腦可讀取媒體的範疇內。電腦程式產品可以包括電腦可讀取媒體。
代碼可以由一或多個處理器執行,諸如一或多個數位訊號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、算數邏輯單位(ALU)、現場可程式設計邏輯陣列(FPGA)或其他等效的整合或離散邏輯電路。因此,如本文所用,術語「處理器」可以代表前述結構中的任一個或適用於實現本文所描述的技術的任何其他結構。此外,該等技術可以完全在一或多個電路或邏輯元件中實現。
本案的技術可以在各種設備或裝置中實現,包括無線手機、積體電路(IC)或一組IC(例如,晶片組)。在本案中描述了各種部件、模組或單元以強調被配置為執行所揭示的技術的設備的功能態樣,但不一定需要由不同的硬體單元來實現。相反,如前述,各種單元可以組合在任何硬體單元中,或者由包括如前述的一或多個處理器在內的交互動操作硬體單元的集合連同合適的軟體及/或韌體來提供。因此,如本文所用,術語「處理器」可以代表前述結構中的任一個或適用於實現本文所描述的技術的任何其他結構。此外,該等技術可以完全在一或多個電路或邏輯元件中實現。
以下態樣僅是說明性的,並且可以與本文所描述的其他態樣或教導相結合,但不限於此。
態樣1是一種用於圖形處理的裝置,該裝置包括至少一個處理器,該至少一個處理器耦合到記憶體,並且至少部分地基於儲存在該記憶體中的第一資訊,該至少一個處理器被配置為:將至少一個場景劃分為複數個小網格,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點;計算針對該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元的該等複數個頂點之每一者頂點的紋理座標對;基於針對該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元的該等複數個頂點之每一者頂點的該紋理座標對並且基於該等複數個小網格之每一者小網格的透視投影來選擇該至少一個場景中的該等複數個小網格之每一者小網格的大小;計算小網格圖譜中針對該至少一個場景中的該等複數個小網格之每一者小網格的佈局資訊,該小網格圖譜中針對每個小網格的該佈局資訊是基於該小網格的該選定大小的;及基於該小網格圖譜中所計算出的佈局資訊來對該小網格圖譜中的複數個圖元之每一者圖元進行著色。
態樣2是態樣1之裝置,其中該至少一個處理器亦被配置為:辨識該至少一個場景中的該等複數個小網格之每一者小網格的可見性,其中該等複數個小網格之每一者小網格被辨識為可見或不可見。
態樣3是態樣2之裝置,其中該至少一個處理器亦被配置為:丟棄被辨識為不可見的該等複數個小網格之每一者小網格。
態樣4是態樣2之裝置,其中被辨識為可見的該等複數個小網格之每一者小網格對應於該小網格圖譜中的該已著色的複數個圖元中的至少一個圖元。
態樣5是態樣1至4中任一項所述的裝置,其中該等複數個小網格之每一者小網格的該透視投影是每個小網格到對應於該至少一個場景的當前視點的影像平面的投影。
態樣6是態樣1至5中任一項所述的裝置,其中該等複數個小網格之每一者小網格的該大小基於該等複數個小網格之每一者小網格的中心與該小網格的該等複數個頂點之每一者頂點之間的夾角的最大值,其中該夾角對應於該至少一個場景的當前視點。
態樣7是態樣1至6中任一項所述的裝置,其中為了計算該小網格圖譜中的該佈局資訊,該至少一個處理器被配置為:在該小網格圖譜中為該至少一個場景中的該等複數個小網格之每一者小網格分配空間,其中在著色圖譜中為該等複數個小網格之每一者小網格分配的空間是基於該小網格的該選定大小的。
態樣8是態樣1至7中任一項所述的裝置,其中為了對該小網格圖譜中的該等複數個圖元之每一者圖元進行著色,該至少一個處理器被配置為:計算該小網格圖譜中的該等複數個圖元之每一者圖元的表面顏色。
態樣9是態樣1至8中任一項所述的裝置,其中為了對該小網格圖譜中的該等複數個圖元之每一者圖元進行著色,該至少一個處理器被配置為:計算以下至少一個:該小網格圖譜中的該等複數個圖元之每一者圖元的透明資訊、該小網格圖譜中的該等複數個圖元之每一者圖元的物件辨識碼、該小網格圖譜中的該等複數個圖元之每一者圖元的一或多個表面法線、或該小網格圖譜中的該等複數個圖元之每一者圖元的世界空間位置。
態樣10是態樣1至9中任一項所述的裝置,其中該至少一個處理器亦被配置為:渲染被辨識為可見的該等複數個小網格之每一者小網格,其中該小網格圖譜被取樣以決定輸出影像中該等複數個圖元之每一者圖元的顏色。
態樣11是態樣10之裝置,其中該至少一個處理器亦被配置為:向顯示器或面板發送該輸出影像,該輸出影像包括被辨識為可見的經渲染的複數個小網格。
態樣12是態樣1至11中任一項所述的裝置,其中該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元與該等複數個圖元中的至少一個其他圖元相鄰,在該至少一個其他圖元的閾值距離內,或在空間上與該至少一個其他圖元相干。
態樣13是態樣1至12中任一項所述的裝置,其中針對該等複數個小網格之每一者小網格中的該等複數個頂點之每一者頂點的該紋理座標對是基於該小網格的最少失真佈置來預計算的。
態樣14是態樣1至13中任一項所述的裝置,其中針對該等複數個小網格之每一者小網格中的該等複數個頂點之每一者頂點的該紋理座標對是基於該小網格的該透視投影來動態地計算的。
態樣15是態樣1至14中任一項所述的裝置,其中針對該等複數個小網格之每一者小網格中的該等複數個頂點之每一者頂點的該紋理座標對是在網格著色器、頂點著色器或計算著色器中進行計算的。
態樣16是態樣1至15中任一項所述的裝置,其中該小網格圖譜對應於物件空間著色表示。
態樣17是態樣1至16中任一項所述的裝置,其中該小網格圖譜與圖形應用相關聯,該圖形應用包括以下至少一個:資料串流應用、全域照明應用、時間累積應用、快取記憶體應用或反鋸齒應用。
態樣18是態樣1至17中任一項所述的裝置,其中該裝置是無線通訊設備,亦包括耦合到該至少一個處理器的天線或收發器中的至少一個,其中該至少一個處理器被配置為經由該天線或該收發器中的至少一個來接收該場景的指示。
態樣19是一種用於實施態樣1至17中的任一項的圖形處理方法。
態樣20是一種用於圖形處理的裝置,該裝置包括用於實施態樣1至18中的任一項的部件。
態樣21是一種儲存電腦可執行代碼的電腦可讀取媒體(例如,非暫時性電腦可讀取媒體),該代碼在由處理器執行時使該至少一個處理器實施態樣1至17中的任一項。
100:內容產生系統
104:設備
107:圖形處理管線
120:處理單元
121:內部記憶體
122:內容編碼器/解碼器
123:內部記憶體
124:系統記憶體
126:通訊介面
127:顯示處理器
128:接收器
130:發送器
131:顯示器
132:收發器
198:小網格部件
200:GPU
210:命令處理器(CP)
212:繪製調用封包
220:VFD
222:VS
224:頂點快取記憶體(VPC)
226:三角形設置引擎(TSE)
228:光柵化程式(RAS)
230:Z處理引擎(ZPE)
232:圖元內插器(PI)
234:片段著色器(FS)
236:渲染後端(RB)
238:第2級(L2)快取記憶體(UCHE)
240:系統記憶體
250:命令緩衝器
260:上下文暫存器封包
261:上下文狀態
400:圖
402:著色三維(3D)模型
420:圖
422:小網格視覺化模型
440:圖
442:小網格
500:圖
502:螢幕空間邊界框
520:圖
522:圖譜空間塊
600:圖
610:小網格
620:著色圖元
700:圖
702:GPU部件
704:顯示器或面板
706:GPU部件
710:方塊
712:方塊
720:方塊
730:方塊
740:方塊
750:方塊
760:方塊
770:方塊
780:方塊
790:方塊
792:方塊
800:流程圖
802:方塊
808:方塊
810:方塊
812:方塊
814:方塊
900:流程圖
902:方塊
904:方塊
906:方塊
908:方塊
910:方塊
912:方塊
914:方塊
916:方塊
918:方塊
圖1是圖示根據本案的一或多個技術的實例內容產生系統的方塊圖。
圖2圖示根據本案的一或多個技術的實例GPU。
圖3是圖示實例著色圖譜的圖。
圖4A是圖示實例三維(3D)模型的圖。
圖4B是圖示實例視覺化模型的圖。
圖4C是圖示實例小網格的圖。
圖5A是圖示實例螢幕空間邊界框的圖。
圖5B是圖示實例圖譜空間塊的圖。
圖6是圖示實例小網格的圖。
圖7是圖示GPU部件與顯示器/面板之間的實例通訊的通訊流程圖。
圖8是實例圖形處理方法的流程圖。
圖9是實例圖形處理方法的流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
700:圖
702:GPU部件
704:顯示器或面板
706:GPU部件
710:方塊
712:方塊
720:方塊
730:方塊
740:方塊
750:方塊
760:方塊
770:方塊
780:方塊
790:方塊
792:方塊
Claims (30)
- 一種用於圖形處理的裝置,包括: 一記憶體;及 至少一個處理器,該至少一個處理器耦合到該記憶體,並且至少部分地基於儲存在該記憶體中的第一資訊,該至少一個處理器被配置為: 將至少一個場景劃分為複數個小網格,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點; 計算針對該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元的該等複數個頂點之每一者頂點的一紋理座標對; 基於針對該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元的該等複數個頂點之每一者頂點的該紋理座標對並且基於該等複數個小網格之每一者小網格的一透視投影來選擇該至少一個場景中的該等複數個小網格之每一者小網格的一大小; 計算一小網格圖譜中針對該至少一個場景中的該等複數個小網格之每一者小網格的佈局資訊,該小網格圖譜中針對每個小網格的該佈局資訊是基於該小網格的該選定大小的;及 基於該小網格圖譜中所計算出的佈局資訊來對該小網格圖譜中的複數個圖元之每一者圖元進行著色。
- 根據請求項1之裝置,其中該至少一個處理器亦被配置為: 辨識該至少一個場景中的該等複數個小網格之每一者小網格的一可見性,其中該等複數個小網格之每一者小網格被辨識為可見或不可見。
- 根據請求項2之裝置,其中該至少一個處理器亦被配置為: 丟棄被辨識為不可見的該等複數個小網格之每一者小網格。
- 根據請求項2之裝置,其中被辨識為可見的該等複數個小網格之每一者小網格對應於該小網格圖譜中的該已著色的複數個圖元中的至少一個圖元。
- 根據請求項1之裝置,其中該等複數個小網格之每一者小網格的該透視投影是每個小網格到對應於該至少一個場景的一當前視點的一影像平面的一投影。
- 根據請求項1之裝置,其中該等複數個小網格之每一者小網格的該大小基於該等複數個小網格之每一者小網格的一中心與該小網格的該等複數個頂點之每一者頂點之間的一夾角的一最大值,其中該夾角對應於該至少一個場景的一當前視點。
- 根據請求項1之裝置,其中為了計算該小網格圖譜中的該佈局資訊,該至少一個處理器被配置為:在該小網格圖譜中為該至少一個場景中的該等複數個小網格之每一者小網格分配空間,其中在一著色圖譜中為該等複數個小網格之每一者小網格分配的空間是基於該小網格的該選定大小的。
- 根據請求項1之裝置,其中為了對該小網格圖譜中的該等複數個圖元之每一者圖元進行著色,該至少一個處理器被配置為:計算該小網格圖譜中的該等複數個圖元之每一者圖元的一表面顏色。
- 根據請求項1之裝置,其中為了對該小網格圖譜中的該等複數個圖元之每一者圖元進行著色,該至少一個處理器被配置為:計算以下至少一個:該小網格圖譜中的該等複數個圖元之每一者圖元的透明資訊、該小網格圖譜中的該等複數個圖元之每一者圖元的一物件辨識碼、該小網格圖譜中的該等複數個圖元之每一者圖元的一或多個表面法線、或該小網格圖譜中的該等複數個圖元之每一者圖元的一世界空間位置。
- 根據請求項1之裝置,其中該至少一個處理器亦被配置為: 渲染被辨識為可見的該等複數個小網格之每一者小網格,其中該小網格圖譜被取樣以決定一輸出影像中該等複數個圖元之每一者圖元的一顏色。
- 根據請求項10之裝置,其中該至少一個處理器亦被配置為: 向一顯示器或一面板發送該輸出影像,該輸出影像包括被辨識為可見的經渲染的複數個小網格。
- 根據請求項1之裝置,其中該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元與該等複數個圖元中的至少一個其他圖元相鄰,在該至少一個其他圖元的一閾值距離內,或在空間上與該至少一個其他圖元相干。
- 根據請求項1之裝置,其中針對該等複數個小網格之每一者小網格中的該等複數個頂點之每一者頂點的該紋理座標對是基於該小網格的一最少失真佈置來預計算的。
- 根據請求項1之裝置,其中針對該等複數個小網格之每一者小網格中的該等複數個頂點之每一者頂點的該紋理座標對是基於該小網格的該透視投影來動態地計算的。
- 根據請求項1之裝置,其中針對該等複數個小網格之每一者小網格中的該等複數個頂點之每一者頂點的該紋理座標對是在一網格著色器、一頂點著色器或一計算著色器中進行計算的。
- 根據請求項1之裝置,其中該小網格圖譜對應於一物件空間著色表示。
- 根據請求項1之裝置,亦包括耦合到該至少一個處理器的一天線或一收發器中的至少一個,其中該至少一個處理器被配置為經由該天線或該收發器中的至少一個來接收該場景的一指示,並且其中該小網格圖譜與一圖形應用相關聯,該圖形應用包括以下至少一個:一資料串流應用、一全域照明應用、一時間累積應用、一快取記憶體應用或一反鋸齒應用。
- 一種圖形處理方法,包括以下步驟: 將至少一個場景劃分為複數個小網格,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點; 計算針對該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元的該等複數個頂點之每一者頂點的一紋理座標對; 基於針對該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元的該等複數個頂點之每一者頂點的該紋理座標對並且基於該等複數個小網格之每一者小網格的一透視投影來選擇該至少一個場景中的該等複數個小網格之每一者小網格的一大小; 計算一小網格圖譜中針對該至少一個場景中的該等複數個小網格之每一者小網格的佈局資訊,該小網格圖譜中針對每個小網格的該佈局資訊是基於該小網格的該選定大小的;及 基於該小網格圖譜中所計算出的佈局資訊來對該小網格圖譜中的複數個圖元之每一者圖元進行著色。
- 根據請求項18之方法,亦包括以下步驟: 辨識該至少一個場景中的該等複數個小網格之每一者小網格的一可見性,其中該等複數個小網格之每一者小網格被辨識為可見或不可見。
- 根據請求項19之方法,亦包括以下步驟: 丟棄被辨識為不可見的該等複數個小網格之每一者小網格。
- 根據請求項19之方法,其中被辨識為可見的該等複數個小網格之每一者小網格對應於該小網格圖譜中的該已著色的複數個圖元中的至少一個圖元。
- 根據請求項18之方法,其中該等複數個小網格之每一者小網格的該透視投影是每個小網格到對應於該至少一個場景的一當前視點的一影像平面的一投影。
- 根據請求項18之方法,其中該等複數個小網格之每一者小網格的該大小基於該等複數個小網格之每一者小網格的一中心與該小網格的該等複數個頂點之每一者頂點之間的一夾角的一最大值,其中該夾角對應於該至少一個場景的一當前視點。
- 根據請求項18之方法,其中計算該小網格圖譜中的該佈局資訊包括以下步驟:在該小網格圖譜中為該至少一個場景中的該等複數個小網格之每一者小網格分配空間,其中在一著色圖譜中為該等複數個小網格之每一者小網格分配的空間是基於該小網格的該選定大小的。
- 根據請求項18之方法,其中對該小網格圖譜中的該等複數個圖元之每一者圖元進行著色包括:計算該小網格圖譜中的該等複數個圖元之每一者圖元的一表面顏色,或者其中對該小網格圖譜中的該等複數個圖元之每一者圖元進行著色包括以下步驟:計算以下至少一個:該小網格圖譜中的該等複數個圖元之每一者圖元的透明資訊、該小網格圖譜中的該等複數個圖元之每一者圖元的一物件辨識碼、該小網格圖譜中的該等複數個圖元之每一者圖元的一或多個表面法線、或該小網格圖譜中的該等複數個圖元之每一者圖元的一世界空間位置。
- 根據請求項18之方法,亦包括以下步驟: 渲染被辨識為可見的該等複數個小網格之每一者小網格,其中該小網格圖譜被取樣以決定一輸出影像中該等複數個圖元之每一者圖元的一顏色;及 向一顯示器或一面板發送該輸出影像,該輸出影像包括被辨識為可見的經渲染的複數個小網格。
- 根據請求項18之方法,其中該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元與該等複數個圖元中的至少一個其他圖元相鄰,在該至少一個其他圖元的一閾值距離內,或在空間上與該至少一個其他圖元相干,並且其中針對該等複數個小網格之每一者小網格中的該等複數個頂點之每一者頂點的該紋理座標對是基於該小網格的一最少失真佈置來預計算的。
- 根據請求項18之方法,其中針對該等複數個小網格之每一者小網格中的該等複數個頂點之每一者頂點的該紋理座標對是基於該小網格的該透視投影來動態地計算的,其中針對該等複數個小網格之每一者小網格中的該等複數個頂點之每一者頂點的該紋理座標對是在一網格著色器、一頂點著色器或一計算著色器中進行計算的,其中該小網格圖譜對應於一物件空間著色表示,並且其中該小網格圖譜與一圖形應用相關聯,該圖形應用包括以下至少一個:一資料串流應用、一全域照明應用、一時間累積應用、一快取記憶體應用或一反鋸齒應用。
- 一種用於圖形處理的裝置,包括: 用於將至少一個場景劃分為複數個小網格的部件,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點; 用於計算針對該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元的該等複數個頂點之每一者頂點的一紋理座標對的部件; 用於基於針對該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元的該等複數個頂點之每一者頂點的該紋理座標對並且基於該等複數個小網格之每一者小網格的一透視投影來選擇該至少一個場景中的該等複數個小網格之每一者小網格的一大小的部件; 用於計算一小網格圖譜中針對該至少一個場景中的該等複數個小網格之每一者小網格的佈局資訊的部件,該小網格圖譜中針對每個小網格的該佈局資訊是基於該小網格的該選定大小的;及 用於基於該小網格圖譜中所計算出的佈局資訊來對該小網格圖譜中的複數個圖元之每一者圖元進行著色的部件。
- 一種儲存用於圖形處理的電腦可執行代碼的電腦可讀取媒體,該代碼在由一處理器執行時使該處理器: 將至少一個場景劃分為複數個小網格,該等複數個小網格之每一者小網格包括複數個圖元,並且該等複數個圖元之每一者圖元包括複數個頂點; 計算針對該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元的該等複數個頂點之每一者頂點的一紋理座標對; 基於針對該等複數個小網格之每一者小網格中的該等複數個圖元之每一者圖元的該等複數個頂點之每一者頂點的該紋理座標對並且基於該等複數個小網格之每一者小網格的一透視投影來選擇該至少一個場景中的該等複數個小網格之每一者小網格的一大小; 計算一小網格圖譜中針對該至少一個場景中的該等複數個小網格之每一者小網格的佈局資訊,該小網格圖譜中針對每個小網格的該佈局資訊是基於該小網格的該選定大小的;及 基於該小網格圖譜中所計算出的佈局資訊來對該小網格圖譜中的複數個圖元之每一者圖元進行著色。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163261909P | 2021-09-30 | 2021-09-30 | |
US63/261,909 | 2021-09-30 | ||
US17/934,159 | 2022-09-21 | ||
US17/934,159 US20230101978A1 (en) | 2021-09-30 | 2022-09-21 | Meshlet shading atlas |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202322043A true TW202322043A (zh) | 2023-06-01 |
Family
ID=85721687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111135899A TW202322043A (zh) | 2021-09-30 | 2022-09-22 | 小網格著色圖譜 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230101978A1 (zh) |
TW (1) | TW202322043A (zh) |
-
2022
- 2022-09-21 US US17/934,159 patent/US20230101978A1/en active Pending
- 2022-09-22 TW TW111135899A patent/TW202322043A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20230101978A1 (en) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11468629B2 (en) | Methods and apparatus for handling occlusions in split rendering | |
US11908079B2 (en) | Variable rate tessellation | |
US11631212B2 (en) | Methods and apparatus for efficient multi-view rasterization | |
US20210312704A1 (en) | Rendering using shadow information | |
TW202240539A (zh) | 注視點渲染中的內容移動 | |
TW202230287A (zh) | 用於遮擋處理技術的方法和裝置 | |
TW202322043A (zh) | 小網格著色圖譜 | |
TW202137141A (zh) | 用於邊緣壓縮抗混疊的方法和裝置 | |
US11875452B2 (en) | Billboard layers in object-space rendering | |
WO2023055655A1 (en) | Meshlet shading atlas | |
US11610372B2 (en) | Methods and apparatus for multiple lens distortion correction | |
WO2023164792A1 (en) | Checkerboard mask optimization in occlusion culling | |
TW202311940A (zh) | 基於圖塊的結構中深度和陰影遍歷渲染的最佳化 | |
TW202134996A (zh) | 用於減少渲染資訊的傳輸的方法和裝置 | |
TW202318332A (zh) | 動態可變速率著色 | |
TW202316375A (zh) | 與取樣空間相關聯的注視點分塊渲染 | |
CN116018807A (zh) | 图像空间函数传输 |