TW201737207A - 藉由追蹤物件及/或基元識別符的圖形處理增強之方法及系統,圖形處理單元及非暫時性電腦可讀媒體 - Google Patents
藉由追蹤物件及/或基元識別符的圖形處理增強之方法及系統,圖形處理單元及非暫時性電腦可讀媒體 Download PDFInfo
- Publication number
- TW201737207A TW201737207A TW106106185A TW106106185A TW201737207A TW 201737207 A TW201737207 A TW 201737207A TW 106106185 A TW106106185 A TW 106106185A TW 106106185 A TW106106185 A TW 106106185A TW 201737207 A TW201737207 A TW 201737207A
- Authority
- TW
- Taiwan
- Prior art keywords
- primitive
- buffer
- identifier
- primitives
- pixel
- Prior art date
Links
Classifications
-
- 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
- G06T15/405—Hidden part removal using Z-buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- 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/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Abstract
圖形處理包括設置虛擬空間中之場景中之複數個物件,每一物件係由一組頂點定義。唯一物件識別符經指派給每一物件且寫入至ID緩衝器。繪圖呼叫經發佈以繪製與該等物件識別符相關聯的物件。該等頂點之參數值經操縱以輸出頂點參數值。自該等頂點設置基元,每一基元係由該等頂點中之一或多者定義。每一基元屬於該等物件中之一或多者。每一基元在複數個像素處光柵化。處理該等像素包括空間或時間抗混淆,該空間或時間抗混淆利用該複數個物件識別符中之一或多個物件識別符。針對每一光柵化基元處理該等像素以產生輸出圖框。
Description
本揭示案係關於電腦圖形處理。
電腦圖形處理為用以創建描繪虛擬內容之影像以供在顯示器上呈現的複雜過程。現代3D圖形通常使用高能力圖形處理單元(GPU)來處理,該等高能力GPU具有經設計來有效操縱電腦圖形的專門架構。GPU為經設計來加速在圖框緩衝器中創建意欲輸出至顯示器之影像的專門電子電路,且GPU通常具有高度平行的處理架構,此處理架構使GPU對於平行地進行大資料塊之處理的演算法比通用CPU更有效。GPU用於多種計算系統中,該等計算系統諸如嵌式系統、行動電話、個人電腦、平板電腦、可攜式遊戲裝置、工作站及遊戲控制台。
用於視訊遊戲及其他即時應用的許多現代電
腦圖形處理利用再現管線,該再現管線包括用以對輸入資料進行操作之許多不同階段,該等操作判定將呈現在顯示器上的像素值之最終陣列。在圖形再現管線之一些實行方案中,可在CPU與GPU之間協調處理。輸入資料可經設置且繪圖命令可由中央處理單元(CPU)基於應用程式(例如,由CPU運行的視訊遊戲)之當前狀態藉由經由應用程式設計介面(API)發佈至GPU的一系列繪圖呼叫來發佈,每圖形圖框可發生多次此操作,且GPU作為回應可實行管線之各種階段來相應地再現影像。
管線之大多數階段具有作為穿過各種處理階段的資料流之良好定義之輸入及輸出,且任何特定實行方案可取決於所要的視覺效應而包括或省略各種階段。有時圖形管線內的各種固定功能操作經實行為GPU內之硬體模組,而可規劃著色器通常進行判定色彩、採光、紋理坐標及與影像中之物件及像素相關聯的其他視覺值的大部分著色計算,但是有可能在硬體、軟體或其組合中實行管線之各種階段。較舊的GPU使用使計算固定於GPU之單獨硬體模組中之顯著固定的功能管線,但是著色器及日益可規劃管線之出現已使更多操作由軟體程式來實行,從而給開發者提供更多靈活性及對再現過程之更大控制。
一般而言,管線中之早期階段包括對虛擬空間(在本文中有時被稱為「場景空間」)中之幾何形狀進行的計算,該虛擬空間可為二維虛擬世界或(更常見地)三維虛擬世界之表示。虛擬空間中之物件通常表示為多邊形網
格,該多邊形網格設置為至管線之早期階段之輸入,且該多邊形網格之頂點對應於影像中之基元之集合,該等基元通常為三角形,但亦可包括點、線及其他多邊形形狀。每一基元之頂點可由一組參數值定義,該等參數值包括定位值(例如,X-Y坐標值及Z深度值)、色彩值、採光值、紋理坐標等,且可在早期階段中藉由以每一頂點為基礎操縱頂點之參數值來處理圖形。早期階段中之操作可包括頂點著色計算,其用以操縱虛擬空間中之頂點之參數,並且選擇性地包括鑲嵌,其用以再分場景幾何形狀及幾何形狀著色計算來產生超過在應用程式階段中最初設置的場景幾何形狀之新場景幾何形狀。此等操作中之一些可由包括頂點著色器之可規劃著色器進行,該等頂點著色器以每一頂點為基礎操縱基元之頂點之參數值,以便在下層虛擬空間幾何形狀中進行再現計算。
為產生虛擬世界之適合於顯示的影像,將場景中之物件及該等物件之對應基元自虛擬空間轉換至螢幕空間。中間階段可包括用以判定基元至定義螢幕空間之二維平面的映射之各種操作。光柵化過程用以在螢幕空間中針對光柵化器所定義的離散像素處對來自早期階段之已處理基元取樣,並且產生用於光柵化器之樣本所覆蓋的基元之片段。與場景至螢幕空間之光柵化相關聯的此等中間操作亦可包括諸如以下的操作:裁剪在當前視圖之檢視範圍外的基元,及剔除在當前視圖中隱藏起來的向後基元,以作為最佳化來避免處理將對於被遮蓋或以其他方式在最終
影像中不可見的基元導致不必要的每像素計算之片段。用作每一片段之輸入值的參數值通常藉由將創建該片段的所取樣基元之頂點之參數內插至該片段之對應像素之位置來判定,該位置通常為像素之中心或像素內的不同樣本位置,但是在某些情形下可使用其他內插位置。
管線可隨後將片段及該等片段之內插輸入參數值沿管線傳遞以用於進一步處理。在此等較晚階段期間,每片段操作可藉由以每像素或每樣本為基礎調用像素著色器(有時被稱為「片段著色器」)來進一步操縱用於該等片段中每一者的輸入內插參數值(例如,色彩值、深度值、採光、紋理坐標等)來進行。螢幕空間中每一片段之坐標對應於在產生該等片段的光柵化中所定義的像素坐標及/或樣本坐標。
在最簡單的狀況下,每一像素使用對應於像素中心的單個樣本,且對於覆蓋像素中心的基元處理單個片段。若該片段通過深度測試,例如,該片段並未被相同螢幕空間位置處的另一基元遮蓋,則將像素著色器計算出的片段之輸出色彩值寫入至用於該等像素坐標的色彩緩衝器,且在像素著色器經規劃來輸出深度值的情況下可能將輸出深度值寫入至深度緩衝器。
有時,將多個子像素樣本用於抗混淆,抗混淆可藉由允許色彩緩衝器中之給定像素採用來自不同片段的輸出色彩值之混合來減少高頻率假影在所取樣紋理中的出現以及平滑鋸齒狀邊緣在基元界限處的出現,該等不同
片段係自覆蓋不同子像素樣本的不同基元計算出。在使用多個樣本的情況下,可將每一片段之輸出可應用於產生該片段的基元所覆蓋的一或多個子像素樣本。
若使用習知超級取樣,則對於每一子像素樣本由像素著色器處理唯一片段,且將該像素著色器之輸出寫入至樣本坐標處的色彩緩衝器,實質上將樣本當作迷你像素且再現至較高解析度。隨後可將較高解析度色彩緩衝器減少取樣以將該較高解析度色彩緩衝器向下濾波至顯示緩衝器中之顯示解析度。因為對於每一覆蓋樣本需要由像素著色器處理唯一片段,所以過程的計算需求很高且引入顯著的著色器負擔。
習知多重取樣藉由使用像素著色器處理單個片段且將該片段之值應用於色彩緩衝器中之多個覆蓋樣本來稍微減輕超級取樣之缺點。最簡單的多重取樣將每一樣本用於色彩及深度兩者,如在超級取樣中一般計算且寫入每樣本深度,且將單個每像素輸出色彩複製至每一像素中之所有覆蓋樣本。最近已出現新的多重取樣技術,諸如覆蓋取樣抗混淆(CSAA)及增強品質抗混淆(EQAA),該等技術使色彩樣本中之一些與深度樣本去耦,以便更準確地對光柵化器像素之界限內的基元邊緣之覆蓋範圍取樣,而不會有將由添加額外深度樣本引起的額外負擔。在此等多重取樣技術的情況下,在像素中通常存在比深度樣本更多的色彩樣本(亦即,一些樣本僅用於色彩),且在像素中之至少一樣本被覆蓋的任何時候對於基元由像素著色器處理片
段,且可將片段之輸出色彩值應用於色彩緩衝器中之每一覆蓋樣本。
一些新的多重取樣技術亦允許使色彩樣本與深度樣本去耦,使得可在不增加色彩緩衝器資料之大小的情況下產生更準確的深度資訊。然而,此等技術甚至將僅具有深度資訊之樣本視為著色樣本,且因此即使在無色彩樣本被覆蓋且輸出色彩將被丟棄時仍對於任何樣本被覆蓋的任何片段調用像素著色器。遺憾的是,像素著色器計算的計算成本很高,且在片段之輸出值對於所再現影像中之最終顯示像素值並無幫助的任何時候引入浪費的計算負擔。在視訊遊戲及即時圖形處理之其他實例中,降低計算要求且改良再現任務的計算效率為達成所再現圖形中之改良的品質及細節的關鍵目標。此外,隨著近來具有約4000個像素的水平解析度之超高清晰度(「超HD」或「4k」)顯示器的出現,需要可跟上顯示器技術之進步的更有效圖形處理方法。
本揭示案之態樣正是在此情境中出現的。
102a‧‧‧基元
102b‧‧‧基元
104‧‧‧像素
104a‧‧‧螢幕空間像素
104b‧‧‧螢幕空間像素
106a‧‧‧片段
106b‧‧‧基元
206a‧‧‧片段
208‧‧‧像素
206b‧‧‧片段
306a‧‧‧片段
308a‧‧‧邊界像素
306b‧‧‧片段
308b‧‧‧邊界像素
400‧‧‧方法
500‧‧‧管線
520‧‧‧圖形記憶體
522‧‧‧輸入資料
523‧‧‧基元處理
524‧‧‧頂點處理
525‧‧‧唯一索引偵測
526‧‧‧頂點著色計算
528‧‧‧鑲嵌/幾何形狀著色器計算
530‧‧‧光柵化處理
532‧‧‧基元組裝
534‧‧‧掃描轉換
536‧‧‧參數內插
538‧‧‧像素著色器調用
540‧‧‧像素處理
542‧‧‧像素著色計算
544‧‧‧再現輸出操作
546‧‧‧頂點參數值
548‧‧‧內插像素/樣本值
549‧‧‧色彩樣本值、深度樣本值
551‧‧‧顯示處理
552‧‧‧最終顯示像素值
554‧‧‧完成的圖框
600‧‧‧系統
650‧‧‧圖形記憶體
665‧‧‧應用程式
667‧‧‧圖形API
670‧‧‧中央處理單元(CPU)
671‧‧‧圖形處理單元(GPU)
672‧‧‧記憶體
673‧‧‧著色器
676‧‧‧資料匯流排
677‧‧‧支援功能
679‧‧‧輸入/輸出(I/O)元件
680‧‧‧電源(P/S)
681‧‧‧時鐘(CLK)
682‧‧‧快取記憶體
684‧‧‧大容量儲存器
686‧‧‧顯示器
687‧‧‧再現的圖形
688‧‧‧使用者介面
690‧‧‧網路介面
693‧‧‧再現目標
694‧‧‧色彩緩衝器
695‧‧‧光柵化器模組
696‧‧‧深度緩衝器
697‧‧‧顯示緩衝器
698‧‧‧硬體模組
711‧‧‧深度緩衝器
713‧‧‧色彩緩衝器
715‧‧‧顯示緩衝器
817a‧‧‧基元
817b‧‧‧基元
819‧‧‧像素
821‧‧‧色彩樣本
1019‧‧‧像素
1021‧‧‧色彩樣本
1133‧‧‧物件
1200‧‧‧計算系統
1259‧‧‧命令緩衝器
1269‧‧‧ID追蹤器模組
1300‧‧‧再現管線
1302‧‧‧應用處理
1304‧‧‧繪圖呼叫
1329‧‧‧鑲嵌著色器計算
1331‧‧‧幾何形狀著色計算
1399‧‧‧ID緩衝器
1400‧‧‧圖形處理方法
藉由結合隨附圖式考慮以下詳細描述,可容易地理解本揭示案之教示,在圖式中:
圖1A至圖1B為描繪根據第一習知混淆方法之圖形再現過程的示意圖。
圖2A至圖2B為描繪根據第二習知抗混淆方
法之圖形再現過程的示意圖。
圖3A至圖3C為描繪根據本揭示案之態樣之圖形再現過程的示意圖。
圖4為描繪根據本揭示案之態樣之再現圖形之方法的流程圖。
圖5為描繪根據本揭示案之態樣之圖形再現管線的流程圖。
圖6為描繪根據本揭示案之態樣之圖形再現系統的示意圖。
圖7A至圖7D為根據本揭示案之態樣之光柵化過程及顯示緩衝器的示意圖。
圖8A至圖8D為根據本揭示案之態樣之圖形處理的示意圖。
圖9A至圖9B為描繪根據本揭示案之態樣之用於圖形處理元素的唯一識別符之實例的示意圖。
圖10A至圖10C為描繪根據本揭示案之態樣之唯一物件識別符在圖形處理中之使用之實例的示意圖。
圖11A至圖11B為描繪根據本揭示案之態樣之唯一基元識別符在圖形處理中之使用之實例的示意圖。
圖12為描繪根據本揭示案之態樣之圖形再現管線的流程圖。
圖13為描繪根據本揭示案之態樣之圖形再現系統的方塊圖。
圖14為描繪根據本揭示案之態樣之藉由圖形
管線產生且傳輸物件及基元ID之方法之實例的流程圖。
儘管以下詳細描述含有許多特定細節以用於例示之目的,但是一般技術者將瞭解,對以下細節之許多變化及變更在本發明之範疇內。因此,以下所述本發明之示範性實施例係在對所請求發明沒有任何一般性損失的情況下且對所請求發明不強加限制的情況下闡述。
本揭示案之態樣描述可使對像素著色器之調用減至最低以便改良再現管線中之效率圖形處理系統及方法。在本揭示案之實行方案中,可在基元中取得複數個樣本。樣本可包括深度樣本及色彩樣本兩者,其中在每一像素中深度樣本計數大於色彩樣本計數。當樣本中之至少一者被覆蓋時,在調用像素著色器來進行著色計算之前可考慮由基元覆蓋的樣本之性質。若至少一樣本被基元覆蓋,但該等樣本全都不是色彩樣本,則可在某些情形下避免對像素著色器之調用。
在習知再現管線中,將調用像素著色器,而不考慮由基元覆蓋的樣本之類型。因此,將進行片段著色計算,且由像素著色器針對片段計算出的色彩值將應用於與產生該片段之基元所覆蓋之所有深度樣本相關聯的色彩樣本。若在使一些樣本僅用於色彩的習知光柵化期間使用取樣方案,則即使由基元覆蓋的樣本僅為深度樣本仍將調用像素著色器,且將基於樣本關聯邏輯使計算出的色彩值
應用於未覆蓋色彩樣本。
為更好地瞭解本揭示案之某些態樣,在圖1A至圖1B中描繪用於圖形處理的第一習知方法。圖1A至圖1B中所例示的實例每像素僅利用單個樣本,此舉可在像素之最終集合中導致顯著的混淆假影。
圖1A描繪可各自為形成將要再現的影像中之幾何形狀之部分的基元的複數個三角形102a、102b,及上覆在基元上方的一組螢幕空間像素104(或螢幕空間像素界限)。在圖1A中,每一螢幕空間像素僅在單個位置處經取樣,該單個位置在所例示實例中為像素104之中心。此樣本可用來判定螢幕像素之每一參數,包括色彩、深度或另一參數。當像素中之樣本被基元覆蓋時,亦即,在此實例中當螢幕空間像素之中心被覆蓋時,可針對覆蓋該樣本的基元產生片段,且可在判定該螢幕空間像素之最終值之前進一步處理該片段。
圖1B例示分別由對基元102a及102b取樣產生的片段106a及106b。亦即,圖1B例示對於下層基元產生至少一片段的像素。如圖1B中所示,片段106a係自基元102a產生,因為該等對應像素之中心處的樣本被該三角形覆蓋,且對於片段106b及基元102b,情況相同。片段106a、106b之參數值可藉由將產生片段的個別基元102a、102b之頂點之參數內插至片段之位置來判定。例如,可將三角形102a之每一頂點之參數值內插至每一片段106a之中心,以便判定用於此等片段106a中之每一者
的一組參數值,且可使用三角形102b之頂點參數值來對於片段106b中之每一者進行類似過程。參數可包括紋理坐標、法線、切線、採光值、色彩值、定位(包括深度值)等。
片段106a、106b及其內插參數值中之每一者可在判定最終再現影像中之該等對應像素之最終像素值之前經進一步處理。此等計算中之一些包括像素著色計算,該等像素著色計算係在判定圖框中之像素之色彩值之前藉由調用像素著色器以便進行色彩、紋理或其他片段參數值之額外每片段操縱來進行。
可自圖1B之例示瞭解的是,此第一習知方法之取樣方案可導致基元102a、102b之邊界處的某些混淆假影。如在所例示實例中可看出,一些像素可位於基元之邊界處,且當多個基元映射(例如,投影/變換)至該像素之螢幕空間坐標時,此等邊界像素之所定義界限可能實際上被此等基元覆蓋。然而,因為每一像素僅在單個位置中經取樣,所以將對於一個基元或另一基元而非兩者產生片段。亦即,僅基於單個樣本位置判定覆蓋。此可在最終影像中產生色彩及其他參數方面的鋸齒形效應(有時被稱為「鋸齒」),此狀況可參考片段106a及106b在三角形102a與102b之間的對角定向邊界處的階梯式出現來加以理解。換言之,對於界限與基元102a及102b之邊界交叉的邊界像素中之每一者而言,在圖1A至圖1B之習知混淆實例中,圖框緩衝器中之邊界像素之最終值將基於哪一
個基元覆蓋樣本來由針對基元102a或基元102b而非兩者產生的片段判定,且此舉可導致呈現在最終影像中的混淆假影。
為克服與以上參考圖1A至圖1B所述的混淆方法相關聯的缺點,每像素多個樣本有時用來使影像抗混淆。當像素之界限在基元之邊界處時,不同子像素樣本可被不同基元覆蓋,且顯示像素之最終值按照慣例為藉由組合不同子像素樣本值而判定的來自不同基元的值之組合,該等不同子像素樣本值由覆蓋樣本加權來判定最終顯示緩衝器中之單個像素之色彩值。
在圖2A至圖2B中描繪習知抗混淆方案之實例,且圖2A至圖2B之習知實例使用與圖1A至圖1B之習知混淆實例相同的像素104及基元102a、102b。如圖2A中所示,跨每一像素之區域取得多個樣本,而非如在圖1A之實例中一般僅在每一像素104之每一中心處取得單個樣本。在所例示實例中,在針對光柵化器定義的每一螢幕像素104之界限內的四個不同位置處取得樣本,且若螢幕像素之樣本中之至少一者被給定基元覆蓋,則通常自螢幕像素104處的給定基元產生至少一片段。亦即,當基元之區域在投影至螢幕空間上時覆蓋螢幕空間中所定義的像素之樣本時,可產生至少一片段以用於進一步處理。
圖2B描繪分別自基元102a及102b之取樣產生的片段206a及206b。亦即,所例示片段206a為針對下層基元102a處理至少一片段的該等螢幕像素界限,且
所例示片段206b為針對下層基元102b處理至少一片段的該等螢幕像素界限。如在第一實例中,當至少一像素樣本被基元覆蓋時,針對基元產生片段,且每一片段將具有自產生該片段的基元之頂點之參數值內插至片段之位置的參數值。亦類似於第一實例,將針對片段中之每一者調用像素著色器以用於進一步的每片段像素著色計算,該等每片段像素著色計算可操縱片段之參數以影響片段之最終色彩值輸出。
若使用傳統超級取樣,則將針對每一覆蓋樣本產生多個色彩片段,且單獨色彩片段將經唯一地著色且應用於該等色彩片段之對應樣本。在此狀況下,每一片段之輸出色彩值將被寫入至實質上為較高解析度色彩緩衝器的事物處的螢幕空間中之對應樣本,隨後經向下濾波以判定特定螢幕空間像素104中之最終像素值。因為在超級取樣中實質上將每一樣本當作迷你像素,所以像素著色器可使用內插至對應樣本位置的參數值來作為每一片段之輸入。雖然此舉達成良好結果,但此舉引入大量著色器負擔,因為對於每一單獨樣本調用一次像素著色器。
若使用傳統多重取樣,則將在至少一樣本被基元覆蓋的任何時候對於給定基元產生像素坐標處的單個色彩片段,而不考慮落在基元內的樣本之數目,且像素著色器之相同輸出值將隨後應用於每一覆蓋樣本,例如,若覆蓋三個樣本,則可處理一個片段,且可針對覆蓋樣本中之每一者複製該片段之輸出值。可將頂點參數值內插至螢
幕空間像素之中心以作為用於所有樣本的片段之輸入(但是應注意,若像素中心落在基元邊界外,則內插值可為外插,或形心取樣可用以使用內插至基元之界限內的值)。因為像素著色器對於每一覆蓋基元僅需每像素調用一次,所以在多個樣本被覆蓋的情形下,多重取樣可顯著降低著色器負擔。
兩種取樣的某種混合(多重取樣/超級取樣混合)可用來提供像素內的可組配像素著色器反覆,其中對於螢幕像素多次調用像素著色器(例如,多個色彩片段將由像素著色器處理),隨後將每一色彩片段輸出進一步應用於一個以上樣本。例如,可取得8個色彩樣本,其中此等色彩樣本中之4個為「著色」色彩樣本且4個為「儲存」色彩樣本。對於使用之4個「著色」色彩樣本中之每一者可調用像素著色器一次,從而導致用於著色色彩樣本中之每一者的唯一著色色彩值。隨後可將每一著色色彩片段輸出應用於著色色彩樣本及「儲存」色彩樣本中之一或多者。
無論是此等技術中之哪一者,在此習知實例中,對於邊界像素208,針對基元206a及基元206b兩者在每一像素處產生至少一片段。此意味,用於邊界像素位置208的片段206a將使用自三角形102a之頂點值內插的參數值加以處理,而在此等相同螢幕空間像素位置處的片段206b將採用自三角形102b之頂點值內插的參數值。片段206a及206b中之每一者將藉由對像素著色器的單獨調
用來處理,此與圖1A至圖1B之混淆實例相比可由於增加的片段數目而相應地增加計算負荷。然而,可減少取樣參數之混淆假影且可改良最終影像之品質,因為邊界像素208中之每一者處的最終顯示像素值可採用來自不同基元的色彩值之組合,例如,基於樣本覆蓋來加權的色彩值。在此實例中,將兩個三角形簡單地例示為相鄰前景三角形以用於例示之目的,但每一樣本之深度值亦可用以用子像素精度來更準確地判定覆蓋像素的哪些三角形在單獨樣本位置處的前景中,且因此判定比可僅僅自樣本覆蓋所判定之權重更準確的權重。
隨後可將已處理片段值應用於落在產生該片段的基元內的樣本位置,且對於落在基元外的樣本將其丟棄。藉由實例的方式,對於邊界像素208中具有由三角形206a覆蓋的三個樣本及由三角形206b覆蓋的一個樣本之給定邊界像素(諸如,在圖2B之例示中映射至三角形102b之左上角的片段)而言,對應顯示像素處的色彩之最終值可為朝向對應片段206a之計算值75%加權(例如,基元102a之3/4樣本覆蓋)及朝向對應片段206b之計算值25%加權(例如,基元102b之1/4樣本覆蓋)的混合。此可減少最終影像中之基元之邊界處的混淆假影,且當取樣基元具有極其不同的色彩或深度參數時效應可最顯著。例如,若兩個基元屬於不同物件,且基元中之一者在前景中而另一基元在遠背景中,則來自不同基元的參數可明顯不同,且混淆假影將更顯著。藉由在像素內的複數個不同位
置處取得樣本所進行的抗混淆可藉由允許像素採用映射至像素之不同區域的基元之值來消除過渡。
在圖2A至圖2B中所描繪的實例中,將樣本位置之數目描繪為四個以用於例示之目的,但可取得任何其他數目的樣本。一般而言,較大數目的樣本可增加抗混淆之品質,但以較大計算要求為代價。在圖2A至圖2B之習知實例中,樣本中之每一者具有相同類型且用於至少色彩及深度,且針對光柵化器定義的像素104與顯示緩衝器中掃描輸出至顯示器的最終像素值一對一對應。
現轉至圖3A至圖3C,描繪本揭示案之實行方案。在所例示實行方案中,根據本揭示案之態樣,每一像素104取得比深度樣本少的色彩樣本,從而導致解析度比色彩緩衝器高的深度緩衝器。根據本揭示案之某些態樣,此可允許以深度緩衝器之解析度重新建構顯示緩衝器,而無需以全顯示緩衝器解析度的色彩緩衝器。此可提供多種益處,其中包括用於任何給定顯示器解析度的更有效再現的時間及空間抗混淆。應注意,色彩樣本可通常與相較於深度樣本的較大計算要求(例如,記憶體頻寬、著色器負擔等)相關聯。本揭示案之某些實行方案可利用此事實且使用來自深度樣本的資訊來有效地再現圖形,該等深度樣本相較於色彩樣本具有在螢幕上之較高空間精度。
圖3A描繪與圖2A至圖2B及圖1A至圖1B之先前實例中相同的基元102a、102b,該等基元映射至相同螢幕空間像素104。如在圖2A中,在跨像素的複數
個不同位置處對每一像素104取樣。然而,與圖2A之實例形成對照,像素各自含有比深度樣本較少數目的色彩樣本。換言之,用於像素104中之每一者的色彩樣本計數低於深度或z樣本計數。圖3A至圖3C中所描繪的實例包括用於色彩及深度兩者的兩個色彩樣本,及僅用於深度的兩個樣本,但可使用其他取樣模式。本揭示案之更一般實行方案可利用具有使用一或多個色彩樣本及複數個深度樣本來取樣之一組像素的任何取樣方案。
在此實例中,每一像素中存在複數個色彩樣本,但應注意,本揭示案之實行方案可適用於僅取得單個色彩樣本的情形。此外,在此實例中,對於所例示像素中之每一者一致地實行取樣,使得每一像素每一類型且在相同位置處含有相同數目的樣本;然而,某些實行方案亦可將不一致取樣方案用於不同像素。例如,有可能使用對於不同像素不同的取樣模式,諸如用於不同像素的不同樣本位置及/或不同樣本計數。亦應注意,雖然圖3A至圖3C之實例中的每一色彩樣本亦用於深度,但是有可能具有僅用於色彩的一些樣本。更一般而言,本揭示案之態樣可適用於整個像素陣列包含如下一組像素的任何方案,其中該組中之每一像素具有一或多個色彩樣本及複數個深度樣本,且其中該組中之每一像素的深度樣本之數目大於色彩樣本之數目。
現轉至圖3B,可分別自基元102a及102b之取樣產生片段306a及306b,該取樣使用具有每一像素中
之一或多個色彩樣本及每一像素中之複數個深度樣本的取樣技術。亦即,圖3B之例示中之片段306a為至少一片段係針對基元102a產生的該等螢幕像素界限,且片段306b為至少一片段係針對基元102b產生的該等螢幕像素界限。在此實例中,在每一螢幕空間像素104中於複數個不同位置處取得複數個樣本再次產生一組邊界像素308a、308b,該等邊界像素具有由兩個相鄰基元102a及102b覆蓋的樣本。在圖3B之例示性實例中,當像素之樣本中之至少一者由給定基元覆蓋時,自給定基元在給定像素處產生至少一片段以用於進一步處理。在圖3B之所例示實例中,針對邊界像素308a處的基元102a及102b兩者產生片段,因為對於此等像素中之每一者而言,當基元投影至螢幕空間上時,至少一樣本被基元覆蓋。
應注意,雖然用於圖3B之實例的取樣模式並非習知的,但是藉由像素著色器產生且處理片段之方式為習知的。亦即,在圖3B之實例中,在至少一樣本被基元覆蓋的任何時候產生片段且相應地調用像素,而不考慮樣本之類型。然而,重要的是應注意,對於所例示實例中之邊界像素308a、308b中之每一者而言,至少一深度樣本由基元102a及102b中之每一者覆蓋,但對於此等相同的所例示邊界像素而言,色彩樣本完全含於一個基元或另一基元而非兩者內。更具體而言,在圖3B之所例示實例中,對於邊界像素308a,色彩樣本由基元102a而非基元102b覆蓋,而對於邊界像素308b,色彩樣本由基元102b
而非基元102a覆蓋。
通常將調用像素著色器,且用於片段的輸出將應用於由根據該等樣本之樣本類型產生片段的基元覆蓋的樣本。此意味,對於圖3B中所描繪的由像素處理片段,但僅覆蓋深度樣本的該等邊界像素,由像素著色器計算出的z深度或樣板值可應用於所覆蓋深度樣本,但無色彩值。雖然有可能使用像素著色器來計算z深度值,但是此為相對罕見的且在大多數環境中不發生,因為像素著色器之主要目的通常係進行影響片段色彩值的著色計算,例如,色彩值操縱、採光值操縱等。因此,在此等情形下使用習知光柵化及像素著色器調用技術僅導致浪費的計算及GPU之無效率像素著色器使用,從而降低再現管線中之計算效率。
本揭示案之實行方案認識到此情況,且可藉由在針對片段調用像素著色器之前考慮所覆蓋樣本之性質來改良再現管線中之效率。在圖3C中描繪本揭示案之例示性實行方案。
在所例示實例中,對於與圖3B中相同的一組螢幕像素,樣本覆蓋通常指定色彩片段306a、306b應自基元102a、102b產生。然而,根據本揭示案之態樣,圖3C中之灰色方框例示對於下層基元可能未調用像素著色器的片段/像素,因為即使至少一樣本落在基元內,此等樣本中無一者為色彩樣本(亦即,僅存在覆蓋的深度樣本)。在此實例中,對於基元102a而非基元102b的每一
邊界像素308a調用像素著色器至少一次。類似地,對於基元102b而非基元102a的邊界像素308b中之每一者調用像素著色器至少一次。在本揭示案之某些實行方案中,此係因為僅色彩樣本覆蓋可指定在光柵化及像素處理期間對像素著色器的調用。
對於剩餘片段(亦即,圖3C中之白色/非灰色片段),像素著色器可仍正常地經調用。對於此等片段中之每一者,此可涉及對片段之內插參數值的像素著色計算,該等內插參數值可自產生該片段的基元之頂點參數值內插至像素中心、至樣本位置,或像素之另一位置,取決於組態且潛在地取決於像素覆蓋之性質。若像素中心落在基元外(即使樣本中之至少一者落在基元內),則內插值可事實上為外插,或形心取樣可用以確保值經內插至基元內的位置。或者,可使用一些其他形式的內插。
對於僅深度樣本在產生片段的基元內的該等灰色片段,可在光柵化階段期間應用深度值,但可對於此等片段繞過像素著色器。深度值可為自基元之頂點內插的值。來自每一基元的此等深度值可用於深度測試(且亦用於模板或其他測試)中,該深度測試可為例如早期深度測試(例如,EarlyZ),或階層式深度測試(例如,Hi-Z),且深度值可根據深度測試而經寫入至深度緩衝器或丟棄。對於色彩及深度樣本處於產生片段的基元內的片段,在光柵化階段期間的早期深度測試可移除未通過深度模板測試的樣本,有時產生僅含有深度樣本的額外片段,在此狀況下
亦可避免像素著色器調用。
應注意,本揭示案之實行方案可在例如此等早期深度測試經組配的情形下改良再現效率。一般而言,在早期深度測試經組配的情況下,每一深度樣本之深度值在光柵化期間經檢查,且此深度值經寫入至深度緩衝器或丟棄。當此為狀況時,已提供該深度樣本之所有有用工作,且任何僅深度片段可在針對像素著色器調用緊縮該等片段之前丟棄。
然而,在一些情形下,「Re-Z」或「Late-Z」深度-模板經組配。像素著色後的深度-模板測試及寫入在某些情形下用來支援像素著色器輸出,該像素著色器輸出可藉由修改深度、模板或樣本覆蓋遮罩值中任一者來改變該測試之結果。在此等狀況下,像素著色器甚至對於僅深度片段應仍經調用,以便像素著色器產生輸出深度、模板或覆蓋遮罩值。
自像素著色器輸出的著色值隨後可在像素處理階段期間應用於每一樣本。隨後可以不同方式使用樣本值,取決於系統及再現管線之組態。在一些實行方案中,多個樣本可用於空間及/或時間抗混淆。在進一步實行方案中,深度樣本值可儲存在全解析度深度緩衝器中,且色彩樣本值可儲存在部分解析度色彩緩衝器中,例如,其中解析度對應於樣本之數目,且隨後可使用在後階段圖框緩衝器/顯示緩衝器操作期間導出部分解析度色彩緩衝器的色彩值來針對全z解析度下的顯示緩衝器判定最終顯示影
像。在進一步實行方案中,可使用此等之一些組合。
因為通常希望避免修改z深度、樣本覆蓋遮罩或像素著色器中之模板值,所以可對於僅深度樣本由基元覆蓋的像素處的此等覆蓋基元避免對像素著色器計算之昂貴的調用及該等調用之相關聯著色計算。因為可存在落在圖框內的基元邊界上的許多像素,且此等邊界像素中之許多可具有落在不同可見基元上的不同樣本位置,但色彩樣本僅落在一個可見基元內,所以可藉由在調用像素著色器之前考慮樣本來在再現管線中避免許多計算。在本揭示案之一些實行方案中,淨效應可為效率方面的10%至20%改良。
應注意,存在即使像素僅具有深度樣本且無色彩樣本由基元覆蓋時亦應調用像素著色器的一些情況。例如,在一些情況下,像素著色器可經組配來實行片段之像素取消(或片段取消)(例如,基於輸出阿爾法混合因數測試)。在進一步情況下,像素著色器可經組配來輸出用於片段的Z或模板值,此意味像素著色器可需要經調用以將此Z/模板值寫入至覆蓋深度樣本。在進一步情況下,像素著色器可經組配來變更樣本遮罩。在此等情況中任一者中,呈現三個條件,像素著色器應仍經調用。然而,若此等條件不存在,則像素著色器調用及相關聯計算將為實質上無用的。
圖4描繪根據本揭示案之態樣的處理圖形之示例性方法400。方法400可實行於圖形再現管線內以在
類似於以上關於圖3C所描繪情形的情形下避免調用像素著色器。
如421處所指示,方法可涉及使用每一螢幕空間像素的複數個樣本來對基元取樣。該複數個樣本可包括一或多個色彩樣本及複數個深度樣本。在某些實行方案中,對於每一像素取得一個色彩樣本及複數個深度樣本。在其他實行方案中,該複數個樣本包括應用方法400所針對的每一像素中的複數個色彩樣本及複數個深度樣本兩者,在此狀況下像素中之每一者中的色彩樣本計數應小於深度樣本計數。在一些實行方案中,螢幕可不一致地經取樣,且不同螢幕空間像素可包括不同樣本計數及/或不同樣本位置。因此,在421處每個螢幕像素包括複數個樣本並非嚴格要求,只要在用於光柵化器的螢幕空間中所定義的像素之至少一些集合中的每一螢幕空間像素包括複數個樣本即可。在某些實行方案中,在421處所判定的樣本覆蓋可由掃描轉換器在圖形再現管線之光柵化階段中執行,以對投影至每一定義螢幕空間像素處的螢幕空間上的基元取樣。
取得樣本可導致樣本由基元覆蓋的一組像素,如在423處所指示。在圖4之例示中,用於每一給定基元的覆蓋像素423僅代表具有由基元覆蓋的至少一樣本的該等像素。在基元邊界在像素界限內交叉的情況下,樣本中之僅一些將由給定基元覆蓋為可能的,例如,如以上關於圖1至圖3所述。三角形界限與像素界限相交而不具
有由三角形覆蓋的任何樣本亦為可能的。然而,因為此通常無論如何不會導致像素著色器調用,所以忽略此情形以用於解釋之目的。
如在426處所指示,可對於由給定基元覆蓋的每一深度樣本執行早期深度測試。此可涉及例如將來自給定基元之頂點的每一樣本之內插深度與用於該等樣本坐標的當前深度值進行比較。未通過深度測試的每一深度樣本可經丟棄,如在431處所指示,而通過的該等深度樣本(例如,該等殘存深度樣本)可藉由將深度值寫入至深度緩衝器而應用於覆蓋像素之深度樣本,如在432處所指示。
若存在由基元覆蓋的通過深度測試的樣本,則方法400可仍在調用像素著色器之前判定殘存覆蓋樣本之性質,如在425處所指示。照慣例,即使使用早期深度測試,像素著色器將亦在像素之樣本中之至少一者通過深度測試的任何時候經調用。然而,在圖4中所描繪的所例示實行方案中,系統可檢查以查看經歷深度測試之後殘存的該等樣本中任一者是否為色彩樣本。若判定未留下由基元覆蓋的色彩樣本,則像素之片段可經丟棄,且像素著色器未經調用,如在433處所指示。
若在所有殘存樣本已由早期測試判定之後,存在由給定基元覆蓋的至少一殘存色彩樣本,則可針對所產生像素片段調用像素著色器,如在434處所指示。像素著色計算可根據像素著色器調用來加以執行,且隨後可將像素著色器之輸出應用於色彩樣本位置處例如色彩緩衝器
中的一或多個再現目標,如在435處所指示。可對於每一覆蓋像素執行此過程,該每一覆蓋像素具有以以上所述方式覆蓋的至少一樣本。在某些情形下,此可意味,即使在像素之深度樣本由給定基元覆蓋且通過所有深度-模板測試時,亦可對於用於給定基元的像素避免像素著色器調用及相關聯像素著色器計算。在許多三角形重疊像素界限的場景中,此可在效能及再現效率方面提供大提高。
應注意,已自以上省略模板測試及模板寫入以用於解釋之目的,但早期測試比較深度樣本處的模板值且模板值應用於因此將要寫入的樣本亦為可能的。
判定是否根據樣本覆蓋之性質來調用像素著色器的過程針對給定基元中之每一覆蓋像素加以執行,且類似地可針對場景中之每一基元之覆蓋像素加以執行。應注意,用於覆蓋像素中不同像素的操作可由處理單元(例如,GPU)平行地執行。
根據本揭示案之態樣,考慮是否對於給定覆蓋像素調用像素著色器可亦考慮除僅是否存在通過早期深度測試的任何覆蓋色彩樣本之外的其他因素。例如,存在即使不存在覆蓋色彩樣本(例如,僅深度樣本經覆蓋),可仍對於具有由給定片段覆蓋的樣本的像素之給定片段調用像素著色器的一些情形。在一些實行方案中,判定是否調用像素著色器亦可包括判定像素著色器是否經組配來取消覆蓋像素(或取消片段)。在一些實行方案中,判定是否調用像素著色器亦可包括判定像素著色器是否經組配來輸出
用於覆蓋深度樣本的Z或模板值。在一些實行方案中,判定是否調用像素著色器亦可包括判定像素著色器是否經組配來變更樣本遮罩。在此等實行方案中,可省略早期深度測試,例如,可在用於每一覆蓋樣本的像素著色器之後執行深度測試。在此等情形下,像素著色器可以習知方式加以調用。
在一些實行方案中,判定是否調用像素著色器亦可包括判定像素著色器是否經組配來取消覆蓋像素(或取消片段)。在一些實行方案中,判定是否調用像素著色器亦可包括判定像素著色器是否經組配來輸出用於覆蓋深度樣本的Z或模板值。在一些實行方案中,判定是否調用像素著色器亦可包括判定像素著色器是否經組配來變更樣本遮罩。在此等實行方案中,可省略早期深度測試,例如,可在用於每一覆蓋樣本的像素著色器之後執行深度測試。在此等情形下,像素著色器可以習知方式加以調用。
圖5描繪根據經組配來實行本揭示案之態樣的再現管線的例示性圖形處理方法500。圖5中所描繪的例示性再現管線可併入圖4之方法400,以便根據本揭示案之態樣來使對像素著色器之調用減至最低。
再現管線500可經組配來再現如描繪場景的影像的圖形,該場景可在虛擬空間(本文中有時被稱為「場景空間」)中具有較佳三維幾何形狀,但潛在地具有二維幾何形狀。貫穿再現管線,資料可自一或多個記憶體單元經讀取且寫入至一或多個記憶體單元,該一或多個記
憶體單元在圖5中大體上指示為圖形記憶體520。圖形記憶體可含有視訊記憶體及/或硬體狀態記憶體,包括在再現管線中所利用的各種緩衝器及/或圖形資源。圖形記憶體520之一或多個單獨記憶體單元可體現為一或多個視訊隨機存取記憶體單元、一或多個快取記憶體、一或多個處理器暫存器等,取決於在再現中之特定階段處的資料之性質。因此,應理解,圖形記憶體520代表在圖形再現管線中所利用的任何處理器可存取記憶體。處理單元(諸如專門GPU)可經組配來在管線中執行各種操作且因此讀取/寫入至圖形記憶體520。
管線之早期階段可包括在場景經光柵化且轉換至螢幕空間以作為適合於在像素顯示裝置上輸出的一組離散畫面元件之前於場景空間中執行的操作。貫穿管線,含於圖形記憶體520中的各種資源可在管線階段處加以利用,且至階段的輸入及輸出可在影像之最終值經判定之前暫時儲存在含於圖形記憶體中的緩衝器中。
再現管線可對輸入資料522操作,該輸入資料可包括由一組頂點定義的一或多個虛擬物件,該組頂點係在場景空間中設置且具有關於場景中之坐標定義的幾何形狀。在再現管線500中所利用的輸入資料522可包括場景幾何形狀之多邊形網格模型,該場景幾何形狀之頂點對應於根據本揭示案之態樣在再現管線中處理的基元,且初始頂點幾何形狀可在由CPU實行的應用階段期間於圖形記憶體中設置。
管線之早期階段可包括一些形式的基元處理523,其中包含基元的頂點索引經接收,或替代地包含諸如條帶的較高階結構的頂點索引經接收且變成諸如三角形的基元。
由基元處理523產生的頂點索引之群組可傳遞至在圖5中廣泛地分類為頂點處理階段524的階段,且此可包括各種計算以處理場景空間幾何形狀中之物件之頂點。因為相同頂點索引可出現在多個基元中,其有益於偵測唯一頂點索引,所以頂點處理階段524可包括唯一索引偵測525,該唯一索引偵測確保頂點有關的計算每一唯一索引僅發生一次,而不管給定唯一索引可包括在內的基元之數目。此頂點處理階段524亦可包括頂點著色計算526,該等頂點著色計算可操縱場景中之頂點之各種參數值,諸如定位值(例如,X-Y坐標及Z深度值)、色彩值、光值、紋理坐標等。較佳地,頂點著色計算526係由一或多個可規劃頂點著色器執行。頂點處理階段亦可選擇性地包括額外頂點處理計算,諸如鑲嵌及幾何形狀著色器計算528,該等鑲嵌及幾何形狀著色器計算可用以再分基元且產生場景空間中之新頂點及新幾何形狀。一旦被稱為頂點處理524的階段完成,在管線中之此階段處,場景即由各自具有一組頂點參數值546的一組頂點定義,該組頂點參數值可儲存在圖形記憶體中之頂點緩衝器中。
管線500隨後可繼續進行與將場景幾何形狀轉換成螢幕空間及一組離散畫面元件(亦即,在再現管線
期間使用的像素)相關聯的光柵化處理階段530,但是應注意,像素一詞未必意味像素對應於最終顯示緩衝器影像中之顯示像素值。虛擬空間幾何形狀可經由操作變換至螢幕空間幾何形狀,該等操作可實質上計算物件及頂點自場景空間至場景之觀察視窗(或「視埠」)的投影,該場景由藉由光柵化器取樣的複數個離散螢幕空間像素構成。在圖5中所描繪的光柵化處理階段530可包括基元組裝操作532,該等基元組裝操作可設置由場景中之每一組頂點定義的基元。每一頂點可由索引定義,且每一基元可關於此等頂點索引加以定義,該等頂點索引可儲存在圖形記憶體520中之索引緩衝器。基元應包括由三個頂點定義的至少三角形,但該三個頂點各自亦可包括點基元、線基元及其他多邊形形狀。在基元組裝階段532期間,可選擇性地剔除某些基元。例如,索引指示一定捲繞順序的該等基元可被視為向後的且可自場景剔除。
在基元經組裝之後,光柵化處理階段可包括掃描轉換操作534,該等掃描轉換操作可對每一離散像素處的基元取樣,且在樣本由基元覆蓋時,自基元產生片段以用於進一步處理。在本揭示案之實行方案中,對於螢幕空間像素中至少一些,掃描轉換534可取得每一像素內的複數個樣本。此等像素中之每一者內的該複數個樣本可包括一或多個色彩樣本及複數個深度樣本。在某些實行方案中,不同像素可不同地加以取樣。例如,一些邊緣像素可含有比中心像素較低的取樣密度,以最佳化用於頭戴式顯
示器(HMD)的再現之某些態樣。在本揭示案之一些實行方案中,掃描轉換在一些再現組態中亦可包括像素著色器前的深度測試及深度更新。在此等狀況下,可測試深度樣本,可對照深度緩衝器(及可能的模板緩衝器)中之深度值來檢查該等深度樣本之值,且當該等深度樣本通過測試時,可更新深度緩衝器中之深度樣本值549(且可能地,可基於模板測試來在模板緩衝器中更新模板值)。
在掃描轉換534期間自基元產生的片段(或「像素」)可具有參數值,該等參數值可自創建該等片段的基元之頂點的頂點參數值546內插至像素之位置。光柵化階段530可包括參數內插操作536階段以計算此等內插片段參數值548,該等內插片段參數值可用作輸入以用於在管線之較後階段處的進一步處理,且參數內插亦可包括深度值自覆蓋深度樣本的頂點深度值基元的內插,該等頂點深度值基元可能或可能不用作至像素著色器的輸入片段值,此取決於組態。
管線500可包括進一步像素處理操作,在圖5中大體上在540處指示,以進一步操縱內插參數值548,亦執行判定片段及/或內插值如何有助於用於顯示的最終像素值的進一步操作。此等像素處理任務中一些可包括像素著色計算542,該等像素著色計算可用以進一步操縱片段之內插參數值548。像素著色計算可由可規劃像素著色器執行,且可基於基元在光柵化處理階段530期間之取樣來發起像素著色器調用538。在本揭示案之實行方案中,
可根據圖4之方法400來判定像素著色器調用538,且當覆蓋樣本中無一者為色彩樣本時,可對於某些覆蓋像素並不調用像素著色器。
像素著色計算542可將值輸出至圖形記憶體520中之一或多個緩衝器,有時被稱為再現目標。在一些實行方案中,可使用多個再現目標(MRT),在此狀況下,像素著色器可能能夠輸出用於每一個每像素或每樣本輸出的多個獨立值。像素處理540可包括再現輸出操作544,該等再現輸出操作544可包括有時被稱為柵格操作(ROP)的操作。再現輸出操作544可包括深度測試、模板測試及/或其他操作,以便判定由像素著色器處理的片段值及可能地並非由像素著色器處理的內插深度值是否應寫入至色彩緩衝器及/或深度緩衝器,且再現輸出操作中之一些可在像素著色計算542之後或在像素著色計算542之前執行來作為最佳化。每樣本最終色彩值及深度值可根據再現輸出操作544判定,該等再現輸出操作可作為一或多個背部緩衝器儲存至顯示緩衝器(有時被稱為「圖框緩衝器」)。
根據某些態樣,方法500亦可包括顯示處理551,該顯示處理可處理根據以上所述階段計算至色彩/深度緩衝器中的繪圖呼叫之整個場景值,且判定顯示像素值552之最終陣列,該等顯示像素值可構成用於在顯示器上呈現的完成圖形圖框554。顯示處理551可為在許多繪圖命令流過上述階段之後發生的最終步驟,且可包括再現全螢幕多遍(例如,覆蓋整個螢幕的明顯螢幕對準多邊形,
或可直接對色彩/深度樣本緩衝器資料549起作用的計算工作。在某些實行方案中,較高解析度色彩緩衝器輸出可自在顯示處理551期間使用的較低解析度深度緩衝器解析。根據某些態樣,在此階段期間亦可能應用空間及/或時間抗混淆。完成圖框554可儲存在顯示緩衝器中,且可選擇性地掃描輸出顯示緩衝器以用於在顯示裝置上即時呈現。
應注意,管線之任何階段可實行於硬體模組、軟體模組(例如,一或多個單獨或統一著色器程式)或其一些組合中。
現轉至圖6,描繪根據本揭示案之態樣的經組配來再現圖形的計算系統600之例示性實例。系統600可經組配來根據以上所述態樣為應用程式665再現圖形。根據本揭示案之態樣,系統600可為嵌式系統、行動電話、個人電腦、平板電腦、可攜式遊戲裝置、工作站、遊戲控制台等。
系統可通常包括處理器及記憶體,該處理器及該記憶體經組配來例如藉由執行具有與圖4及/或圖5之方法相同的特徵的方法實行本揭示案之態樣。在所例示實例中,處理器包括中央處理單元(CPU)670、圖形處理單元(GPU)671及記憶體672。記憶體672可選擇性地包括CPU及GPU兩者兩存取的主記憶體單元,且主記憶體單元之部分可選擇性地包括圖形記憶體650之部分。CPU 670及GPU 671可各自包括一或多個處理器核心,例如,
單個核心、兩個核心、四個核心、八個核心或更多。CPU 670及GPU 671可經組配來使用資料匯流排676存取一或多個記憶體單元,且在一些實行方案中,系統600包括兩個或兩個以上不同匯流排可為有用的。
記憶體672可包括以積體電路形式的一或多個記憶體單元,該等積體電路提供可存取記憶體,例如,RAM、DRAM等。圖形記憶體650可暫時儲存圖形資源、圖形緩衝器及用於圖形再現管線的其他圖形資料。圖形緩衝器可包括例如用於儲存頂點參數值的一或多個頂點緩衝器及用於儲存頂點索引的一或多個索引緩衝器。圖形緩衝器亦可包括一或多個再現目標693,該一或多個再現目標可包括色彩緩衝器694及深度緩衝器696兩者,該等色彩緩衝器及深度緩衝器保存根據本揭示案之態樣計算的像素/樣本值。在某些實行方案中,色彩緩衝器694及/或深度緩衝器696可用以判定將要儲存在顯示緩衝器697中的顯示像素色彩值之最終陣列,該等顯示像素色彩值可構成意欲用於在顯示器上呈現的最終再現影像。在某些實行方案中,顯示緩衝器可包括前部緩衝器及一或多個背部緩衝器,且GPU 671可經組配來自顯示緩衝器697之前部緩衝器掃描輸出圖形圖框以用於在顯示器686上呈現。
CPU可經組配來執行CPU代碼,該CPU代碼可包括利用再現圖形的應用程式665(諸如視訊遊戲)及用於基於應用程式665之狀態將繪圖命令或繪圖呼叫發佈至由GPU 671實行的程式的對應圖形API 667。CPU代碼亦
可實行醫學模擬及其他功能。
GPU可經組配來如以上關於本揭示案之例示性實行方案所論述地操作。為支援圖形之再現,GPU可執行著色器673,該等著色器可包括頂點著色器及像素著色器。GPU亦可執行其他著色器程式,諸如,例如幾何形狀著色器、鑲嵌著色器、計算著色器等。GPU亦可包括專門硬體模組698,該等專門硬體模組可包括一或多個紋理映射單元及/或經組配來在類似於圖5中所描繪的管線的圖形管線之一或多個階段處實行操作的其他硬體模組,該等操作可為固定功能操作。在最終像素值輸出至顯示器之前,著色器673及硬體模組698可在管線中之各種階段處與記憶體650及緩衝器693中之資料介接。著色器673及/或經組配來由系統600之處理器執行來實行本文所述圖形處理技術之態樣的其他程式可作為指令儲存在非暫時性電腦可讀媒體中。GPU可包括光柵化器模組695,該光柵化器模組可選擇性地體現於GPU之硬體模組698、著色器673或其組合中。根據本揭示案之態樣,光柵化模組695可經組配來取得用於螢幕空間像素的基元之多個樣本且根據樣本之性質調用一或多個像素著色器。
系統600亦可包括熟知支援功能677,該等支援功能可例如經由匯流排676與系統之其他組件通訊。此類支援功能可包括(但不限於)輸入/輸出(I/O)元件679、電源(P/S)680、時鐘(CLK)681及快取記憶體682。設備600可選擇性地包括諸如磁碟驅動機、CD-ROM驅動機、快閃
記憶體、磁帶驅動機、藍光驅動機等的大容量儲存裝置684,以儲存程式及/或資料。裝置600亦可包括用以將再現圖形687呈現給使用者的顯示單元686及用以促進設備600與使用者之間的交互作用的使用者介面單元688。顯示單元686可呈平板顯示器、陰極射線管(CRT)螢幕、觸控螢幕、頭戴式顯示器(HMD)或可顯示本文、數字、圖形符號或影像的其他裝置的形式。顯示器686可顯示根據本文所述各種技術處理的再現圖形687。使用者介面688可一或多個周邊設備,諸如鍵盤、滑鼠、操縱桿、光筆、遊戲控制器、觸控螢幕及/或可結合圖形使用者介面(GUI)使用的其他裝置。在某些實行方案中,應用程式660之狀態及圖形之下層內容可至少部分由經由使用者介面688的使用者輸入來判定,例如,在應用程式665包括視訊遊戲的視訊遊戲實行方案中。
系統600亦可包括網路介面690以允許裝置經由網路與其他裝置通訊。網路可為例如區域網路(LAN)、廣域網路諸如網際網路、個人區域網路,諸如藍芽網路或其他類型的網路。所例示及所述組件中之各種組件可實行於硬體、軟體或韌體,或該硬體、軟體、韌體中之兩個或兩個以上之一些組合中。
圖7A至圖7D描繪取樣模式之例示性實例,以及可根據本揭示案之某些實行方案自取樣模式計算的對應顯示緩衝器。圖7A至圖7D例示在本揭示案之某些實行方案中為何使用比深度樣本較少數目的色彩樣本來對像
素取樣可為有利的某些態樣。
如圖7A中所例示,螢幕空間可由複數個像素104(例如,用於光柵化器的像素界限或像素坐標)定義,該複數個像素根據本揭示案之某些態樣可各自包括複數個樣本。根據本揭示案之某些態樣,可針對每一像素104取得複數個樣本,且每一樣本可具有在再現過程期間判定的相關聯值。如圖7A中所例示,每一螢幕空間像素104中之該複數個樣本可包括比深度樣本較少數目的色彩樣本。亦即,深度樣本計數在每一螢幕空間像素104中可比色彩樣本計數較高。在再現期間,可根據本文中之某些原理來判定針對來自基元之光柵化及對應片段之像素著色的單獨樣本所計算的值,且僅所例示色彩樣本可用以在再現期間著色色彩值,而深度樣本中之一些可僅用於深度。
圖7B為描繪可使用圖7A中所描繪的取樣過程計算的高解析度深度緩衝器711的示意圖。圖7C描繪可使用圖7A中所描繪的相同取樣過程計算的色彩緩衝器713。如可在諸圖中看出的,在本揭示案之實行方案中,在像素處理期間所再現成的色彩緩衝器713可具有比所再現成的深度緩衝器711較低的解析度。圖7D描繪可使用得自部分解析度色彩緩衝器713的色彩值自全解析度深度緩衝器711重新建構的最終顯示緩衝器715。
廣泛而言,深度緩衝器711中之值可在再現過程期間用以判定在全空間精度的情況下應將色彩緩衝器713中之哪些色彩值應用於全顯示緩衝器715中之哪些像
素,而不針對全顯示解析度715中之每一顯示像素再現唯一色彩值。較佳地,全顯示解析度具有用於4k解析度(例如,3840 x 2160)的顯示像素密度,以使得再現顯示影像適合於通常被稱為超高清晰度顯示器的顯示器。然而,本揭示案之態樣適用於藉由利用部分解析度色彩緩衝器來改良用於任何顯示緩衝器解析度的再現效率,該部分解析度色彩緩衝器具有比顯示緩衝器中之顯示像素之數目較少數目的再現色彩樣本或色彩像素值。藉由實例而非限制的方式,全顯示解析度可為標準高清晰度(例如,約2k水平解析度),且圖形可藉由利用比全HD解析度較低的解析度色彩緩衝器來在具有改良效率的標準HD解析度中加以再現。
應注意,與計算色彩樣本之值相關聯的記憶體頻寬要求及計算負擔可通常比用於深度的該等記憶體頻寬要求及計算負擔較高。例如,常見的是,現代再現技術經由多個再現目標(MRT)輸出比每像素深度資料更多的每像素色彩資料(例如色彩資料之160-位元總數相較於32-位元深度),此舉在給定色彩緩衝器解析度與可比較深度緩衝器解析度下於再現管線期間將更大負擔放置在記憶體資源上。此外,因為像素著色器通常必須針對色彩樣本經調用,以使得著色計算及相關聯參數值可經計算且應用於落在像素之界限內的每一色彩樣本,所以像素著色器負擔可藉由利用較少色彩樣本及相應較低解析度色彩緩衝器(如圖7C中所例示),隨後因此將該等色彩樣本應用於含有最
終圖框影像的全解析度顯示緩衝器來顯著降低。通常,深度值在像素處理期間並未由像素著色器修改,所以著色器負擔可在利用圖7A中所描繪的取樣方案的某些情形下藉由避免像素著色器調用來降低,除非色彩樣本落在用於給定基元的螢幕空間像素界限內。
為了例示本揭示案之某些態樣,圖8A描繪一組螢幕空間像素104之實例,該組螢幕空間像素用以使用類似於圖7A中所描繪的實例的跨螢幕空間像素的取樣模式來光柵化一對基元817a及817b。在圖8A中所描繪的實例中,基元217a為背景三角形,該背景三角形由前景三角形217b部分遮蓋以例示全解析度深度緩衝器可如何用以僅使用部分解析度色彩緩衝器來準確地重新建構用於全解析度顯示緩衝器的色彩值(例如,如圖7A至圖7D中所例示)的某些態樣。在此簡化實例中,假定三角形817a及817b並未由場景中之其他基元進一步遮蓋。
如圖8A中所例示,螢幕空間像素104a之一基於深度樣本覆蓋而由基元817a及817b中兩者覆蓋。「覆蓋」意味,當基元之界限投影至螢幕空間時,樣本落在基元之界限內。然而,僅一個色彩樣本使用於此螢幕空間像素104a中(左上角中之色彩及深度樣本),且在此實例中,螢幕空間像素104a之色彩樣本僅由三角形817a覆蓋。因為此色彩樣本並未另外經遮蓋,所以基於此樣本之深度,此樣本將採用針對色彩緩衝器中之基元817a計算的色彩值。類似地,對於所例示實例中之螢幕空間像素
104b,取得由三角形817b覆蓋的一個色彩樣本(左上角)。因為此色彩樣本並未另外經遮蓋,所以基於此樣本之深度,此樣本將採用針對色彩緩衝器(例如,類似於圖7C中所例示的該色彩緩衝器的色彩緩衝器)中之基元817b計算的色彩值。同樣地,用於此等相同色彩樣本之螢幕空間坐標的深度樣本將採用自該等深度樣本之個別基元計算的深度值。
如圖8A中所例示,針對光柵化器像素104a取得比色彩樣本更大數目的深度樣本。在所例示實例中,背景三角形817a在光柵化器像素104a之右上角中的深度樣本處由三角形817b遮蓋。此意味,此樣本將採用針對三角形817b計算的深度緩衝器中之值,因為由三角形817a覆蓋的深度樣本將未通過深度測試且經丟棄。由於此,值可與計算色彩樣本所針對的左上深度樣本之值顯著不同(亦即,較低深度/更接近於螢幕)。亦應注意,此深度樣本將採用可與由三角形817b覆蓋的色彩樣本之深度值類似或相同的值。
圖8B更詳細地例示此資訊可如何用以有效地重新建構高解析度顯示緩衝器。圖8B描繪上覆在相同樣本上的樣本基元817a及817b,但現在將意欲用於在顯示器上呈現的重新建構顯示緩衝器描繪為上覆該等樣本。在此實例中,顯示緩衝器具有與由一陣列深度樣本構成的深度緩衝器之全解析度等效的解析度。對於對應於三角形817a中由三角形817b遮蓋的該部分的顯示緩衝器像素
819,合乎需要的是,此顯示像素自色彩樣本得出該顯示像素之色彩值,該色彩樣本自前景三角形817b而非所遮蓋三角形817a取得。在此實例中,此意味,顯示像素819可自821處的色彩樣本得出該顯示像素之色彩值,即使此樣本比其他色彩樣本在螢幕空間中顯著更遠(亦即,在X-Y螢幕坐標中垂直/水平更遠)。事實上,該顯示像素可自螢幕空間中之完全不同位置處的片段或四倍片段計算。然而,可基於深度資訊來判定導出顯示像素之值的適當色彩樣本821。因為在819處且在三角形817b內的深度不同於周圍區域,所以此指示用於此等顯示像素中之每一者的色彩應得自具有不同深度的區域內,例如,在此實例中的色彩樣本821,即使在此實例中來自三角形817a的色彩樣本在螢幕空間中更接近且緊鄰於像素。
為了進一步例示本揭示案之某些態樣,圖8C至圖8D描繪用於自圖8A中所描繪的基元計算全解析度顯示緩衝器值及部分解析度色彩緩衝器值的簡化過程流之示意圖。圖8C描繪用於基元817a的例示性過程,而圖8B描繪用於基元817b的例示性過程。圖8C至圖8D中之示例性過程流可為資料可如何流過圖形管線(諸如根據圖5之再現管線)的簡化視覺化。
如圖8C中所例示,基元817a係使用螢幕空間像素104a(或光柵化像素)中之複數個樣本加以取樣。此單個像素未必對應於最終顯示影像之單個像素,但當重新建構全解析度圖形圖框時,該單個像素之定義界限可事實
上包圍多個顯示影像像素,例如,在此實例中四個。如在a)處所例示,基元經光柵化,且針對三角形判定樣本覆蓋。在此實例中,三個樣本由三角形覆蓋,像素中之唯一色彩樣本及三個深度樣本。如在圖8C之b)處所例示,針對用於對應參數的樣本值中之每一者計算值,亦即,色彩參數及/或影響色彩的其他參數可由用於覆蓋色彩樣本的像素著色器操縱來判定用於此樣本的一組色彩值,而可針對三個深度樣本中之每一者計算深度值,且此等值可為或或並非為由像素著色器輸出的值。值可使用自基元之頂點內插的參數來計算。如圖8C中所例示,因為光柵化器像素之右下部中之樣本並未由基元覆蓋,所以無深度值將應用於來自此特定三角形817a的此樣本,如圖8C中所例示。在來自片段/像素的最終樣本值經寫入至深度緩衝器中之樣本之前,值可經歷每樣本操作,該等每樣本操作可包括用於樣本中之每一者的深度測試。如圖8C中之c)處所例示,在此實例中,右上樣本未通過深度測試,且該樣本之深度值可經丟棄,因為該深度值由用於三角形817b的深度值遮蓋。應注意,雖然在圖8C中將深度測試描繪為在計算最終樣本值之後,但是該深度測試可選擇性地在計算最終樣本值之前執行,以作為最佳化來避免用於可未通過測試且經丟棄的樣本/像素的非必要計算。如圖8C之d)中所例示,所計算樣本值可經寫入至全解析度深度緩衝器及部分解析度色彩緩衝器。
如圖8D中所例示,將類似過程應用於基元
817b。如在圖8C中,使用在每一像素中具有比深度樣本較少數目的色彩樣本的取樣方案來光柵化基元817b。針對每一樣本計算色彩及深度值,且該等色彩及深度值可在其經寫入至顯示緩衝器中之色彩樣本及深度樣本之前經深度測試。在此實例中,此三角形817b由多個像素覆蓋;然而,基元僅覆蓋頂部像素中之深度樣本,且可在某些情形下對於此像素省略像素著色器計算。底部像素含有唯一覆蓋色彩樣本,且此樣本可使用像素著色器加以著色。如c)中所例示,樣本可在其儲存於色彩/深度顯示緩衝器中之前經深度測試,如圖8D中所例示。因為色彩樣本之樣本坐標處的深度值類似於由基元覆蓋的所有該等深度樣本,所以最終顯示像素色彩可有效地得自用於所有該等深度樣本坐標處的像素的色彩樣本,具有由深度樣本提供的高空間精度,該高空間精度避免需要以全解析度著色色彩值。
應注意,雖然以上為取樣方案可如何將許多樣本僅利用於深度的詳細實例,但是此多取樣方案可用於其他目的。例如,可在圖框之間實行時間抗混淆,從而重新建構在不同圖框中之深度樣本處得出的全解析度色彩。多個樣本亦可用於其他抗混淆方案。
在一些情形下,可能難以僅基於如以上所述的深度值來判定最終顯示緩衝器像素值。例如,因為在判定顯示像素如何自色彩緩衝器中之色彩樣本導出該等顯示
像素之值時使用深度之差異,所以若物件為僅自地面以下伸出少許的岩石,則岩石之Z值與周圍地面之Z值之間缺乏明顯差異可使得難以判定用於顯示像素的適當色彩值。因此,本揭示案之態樣進一步包括唯一識別符,該等唯一識別符可貫穿再現管線之各種階段加以追蹤,以便更好地區分且更精確地重新建構用於顯示像素的色彩值。
圖9A至圖9B例示用以促進重建的根據本揭示案之態樣的唯一識別符(ID)之實例。如圖9A中所例示,當資料流過再現管線時,可將唯一物件識別符(物件ID)(例如,圖9A中之OID1及OID2)指派給再現圖框中之每一物件以便更好地區分像素值。如圖9A中所例示,本揭示案之態樣亦包括可在再現過程期間指派給每一基元的唯一基元識別符(基元ID)(例如,PID1、PID2、PID3、......)。如圖9B中所例示,在某些實行方案中,亦可能跨圖框追蹤ID,包括物件ID及/或基元ID,如圖9B中所例示。
通常,基元經光柵化,且隨後片段/樣本在管線之稍後階段中經單獨處理,但無法另外得知特定像素/樣本值屬於哪一個物件或哪一個基元。因此,使用習知技術,用於任何特定圖框的最終色彩緩衝器或深度緩衝器實質上僅為一陣列值。雖然在某些情況下可僅基於深度識別一些差異,但是唯一物件ID及唯一基元ID可使得極其易於進行區分。
現轉至圖10A,描繪根據本揭示案之態樣的
唯一物件識別符在圖形處理中之使用之例示性實例。圖10A描繪可根據本揭示案之各種態樣計算的一陣列色彩及深度樣本值。如圖10A中所例示,對於顯示像素1019,該像素自1021處的色彩樣本得出該像素之色彩值為合乎需要的,因為該色彩屬於相同前景物件,且在螢幕空間坐標中事實上更接近於像素1019的其他色彩樣本屬於所遮蓋物件。然而,在無物件識別符的情況下,可能難以僅基於Z深度來判定此,因為遮蓋物件及所遮蓋物件之深度值可彼此相對接近。然而,如圖10B中所例示,此可易於判定何時將唯一物件ID指派給像素/樣本值中之每一者且儲存在記憶體中,例如,用於像素1019的OID2,如圖10B中所例示。
在某些實行方案中,逐圖框追蹤物件ID及/或基元ID可為有益的。圖10C描繪兩個圖框(圖框1及圖框2)之例示性實例,以進一步例示益處。當OID2從圖框至圖框改變定位時,OID2可不再覆蓋大多數適當色彩樣本。當針對值追蹤OID2時,變得極其容易將在物件之尖端處的先前圖框之色彩樣本值用於顯示像素1019,如圖框2中所例示。
現轉至圖11A,描繪基元ID(例如,三角形ID或對於其他基元的ID)之使用的例示性實例。在將基元ID(PID)指派給構成物件1133的單獨基元的情況下,可在再現過程期間判定關於場景中之硬邊緣的詳細知識(應注意,在圖11A之例示中並未描繪單獨基元,但該例示可被
視為由各自具有唯一PID的單獨三角形基元構成)。此外,如圖11B中所例示,追蹤單獨基元ID(例如,PID2)可提供關於場景內之流動的詳細知識。
在某些實行方案中,對於物件ID及/或基元ID具有圖框至圖框一致性為合乎需要的。因此,而非僅遞增物件ID,此將導致使用不同繪圖呼叫在不同圖框中繪製用於相同物件的不同物件ID,可例如經由與GPU協調的API規劃地選取物件ID。例如,在管線中初始資料經設置且繪圖呼叫經發佈的階段處的應用處理期間,應用規劃可經組配來經由命令緩衝器設置物件ID,此舉可在繪圖呼叫之前發生。以此方式,當相同物件在一序列圖框內重新繪製多次時,該物件經指派相同物件ID。
在一些實行方案中,將物件ID添加至基元ID,以使得物件ID及基元ID可由於該添加而一起寫出至緩衝器。
在一些實行方案中,在物件ID與基元ID之間執行邏輯或運算,以使得物件ID及基元ID可由於邏輯或而一起寫出至緩衝器。現轉至圖12,描繪根據本揭示案之態樣的經組配來再現圖形的計算系統1200之例示性實例。系統1200以與圖6之系統600極其相同的方式組配。相同元件符號在圖12中用來代表圖6及圖12兩者共用的元件。此等共用元件之論述已出於簡單起見而經省略,因為有關論述在上文已闡述。
在某些實行方案中,GPU 671包括ID追蹤器
模組1269,該ID追蹤器模組可實行為硬體模組698之一、實行為在GPU之一或多個處理器核心上運行的軟體,或其組合。ID追蹤器模組1269經組配來寫入至一或多個專用ID緩衝器1399,該一或多個專用ID緩衝器根據本揭示案之態樣儲存物件ID、基元ID或物件ID及基元ID兩者。ID追蹤器模組1269可實行於軟體中或使用專用硬體加以實行,該專用硬體諸如特定應用積體電路(ASIC)、現場可規劃閘陣列(FPGA)或系統單晶片(SoC或SOC)。
如本文所使用且如熟習此項技術者通常所理解,特定應用積體電路(ASIC)為針對特定用途定製而非意欲用於通用用途的積體電路。
如本文所使用且熟習此項技術者通常所理解,現場可規劃閘陣列(FPGA)為設計來由消費者或設計者在製造之後組配一因此「現場可規劃」的積體電路。FPGA組態通常使用類似於用於ASIC的硬體描述語言的硬體描述語言(HDL)加以指定。
如本文所使用且如熟習此項技術者通常所理解,系統單晶片(SoC或SOC)為將電腦或其他電子系統之所有組件整合至單個晶片中的積體電路(IC)。其可含有數位功能、模擬功能、混合信號功能,且經常含有射頻功能一全部在單個晶片基板上。典型應用在嵌式系統之領域中。
典型SoC包括以下硬體組件:
一或多個處理器核心(例如,微控制器、微處理器或數位信號處理器(DSP)核心。
記憶體區塊,例如,唯讀記憶體(ROM)、隨機存取記憶體(RAM)、電氣可抹除可規劃唯讀記憶體(EEPROM)及快閃記憶體。
定時源,諸如振盪器或鎖相迴路。
周邊設備,諸如計數計時器、即時計時器或開機重設產生器。
外部介面,例如,工業標準,諸如通用串列匯流排(USB)、火線、乙太網路、通用同步/異步接收器/發射器(USART)、串列周邊介面(SPI)匯流排。
類比介面,包括類比至數位轉換器(ADC)及數位至類比轉換器(DAC)。
電壓調節器及功率管理電路。
此等組件由專屬匯流排或工業標準匯流排連接。直接記憶體存取(DMA)直接在外面介面與記憶體之間路由資料,從而繞過處理器核心且藉此提高SoC之資料通量。
典型SoC包括以上所述硬體組件及可執行指令(例如,軟體或韌體)兩者,該等可執行指令控制處理器核心、周邊設備及介面。
系統1200經組配來根據本揭示案之態樣實行圖形管線。此實施可在軟體中、在硬體中或在硬體及軟體之一些組合中達成。在某些實行方案中,記憶體672例如
圖形記憶體650包括ID緩衝器1399及命令緩衝器1259,該等ID緩衝器及命令緩衝器之操作在以下圖13之論述中解釋。
為較好地瞭解本揭示案之額外態樣,在圖13中描繪圖形再現管線1300。再現管線1300可選擇性地包括在圖5中所描繪的再現管線中所描繪的態樣中任一者,且可選擇性地與圖5之再現管線相同的管線之許多態樣由以上在圖5之描述中所使用的相同元件符號來指示。此等共用元件之論述已出於簡單起見而經省略,因為有關論述在上文已闡述。參考圖12中所描繪的系統1200之元件來以下圖13之描述之態樣。
在管線1300中,藉由CPU進行的應用處理1302導致對GPU 671的繪圖呼叫1304。藉由實例而非限制的方式,應用程式665可執行涉及虛擬空間之一部分中的虛擬物件的醫學模擬。醫學模擬產生對應於時間之一或多個瞬間處的一或多個物件位置的值。應用程式665可藉由虛擬空間中之頂點之集合表示物件。為再現此等物件之圖形描繪,應用程式665將例如物件及/或頂點之虛擬空間位置的有關資訊發送至圖形API 667,此可發佈繪圖呼叫1304。在一些實行方案中,物件ID可在應用處理1302期間經由命令緩衝器1259設定。此可在在繪圖呼叫1304之前發生。
作為每一繪圖呼叫之部分,圖形API 667可提供輸入資料522,該輸入資料可包括頂點坐標及/或其他
頂點資訊。在某些實行方案中,初始資料中之額外頂點資訊包括在輸入資料522中設置的用於每一唯一物件的唯一物件ID。物件ID可經由命令緩衝器1259設置且儲存在ID緩衝器1399中。物件可由應用程式665規劃地定義,以使得當跨圖框之序列繪製相同物件多次時,物件將始終與相同物件ID相關聯。
在某些實行方案中,基元處理523產生用於每一基元的唯一基元ID。藉由實例而非限制的方式,基元ID(PID)可藉由將基元ID零指派給物件之第一基元且藉由對於物件中之每一後續基元遞增基元ID來產生。
在一些實行方案中,頂點著色計算526可用以產生基元ID,但因為此可需要完全或部分禁止唯一索引偵測525,所以在許多狀況下,可藉由在基元處理523中執行基元ID產生來達成較高效能。因此,在某些實行方案中,在基元處理階段523期間指派基元ID可為較佳的,此舉可使用GPU之專用硬體模組來實行以達成較高效能。
根據某些實行方案,實行頂點著色計算526的頂點著色器可經組配來產生物件ID。例如,在一些情形下,所列舉幾何形狀用以同時再現基本上為場景中之相同網格之多個複本的事物,例如,在所列舉繪圖呼叫中。雖然可跨實例複製一些頂點資料,但是每一實例可能具有其他區分參數。在某些實行方案中,當使用所列舉幾何形狀再現物件時,(例如,可具有類似頂點幾何形狀或網格
的不同實例),組合至所列舉繪圖呼叫中的特定實例通常隨圖框而變化。在此狀況下,頂點著色器可以使得用於每一實例的物件ID在圖框序列內一致的的方式產生用於每一實例的物件ID。此可為有用的,因為即使每一實例可得自類似網格,使用唯一物件ID將每一實例區分為唯一物件亦為較佳的。
在一些實行方案中,鑲嵌著色器計算1329可有助於基元ID之產生。再分場景幾何形狀的鑲嵌計算1329可提供在自兩個或兩個以上基元之高階組合(有時被稱為修補塊)產生基元ID的過程中所使用的資訊。例如,鑲嵌著色器1329可例如藉由遞增用於修補塊輸入之每個實例的基元識別符PID來產生用於每一新修補塊實例的一或多個基元ID。或者,基元處理523可執行此操作,或可遞增用於每一修補塊輸入的基元ID。
在其他實行方案中,產生除最初由應用程式665設置的該等場景幾何形狀之外的新場景幾何形狀的幾何形狀著色計算1331亦可產生在產生基元ID中有用的資訊。在進一步實行方案中,由幾何形狀著色器接收的用於每一基元的基元ID可遞增由輸入基元所屬的物件支援的輸出基元之最大量的幾何放大,且與幾何形狀著色器或基元處理523相關聯的頂點著色計算526可隨後遞增此值。在進一步實行方案中,與幾何形狀著色器相關聯的頂點著色計算526可僅負責產生基元ID。
在某些實行方案中,像素著色器可經組配來
在像素著色器計算542期間自ID緩衝器1399存取基元ID及/或物件ID。ID追蹤器模組1269可在圖框內且逐圖框追蹤用於物件及基元的ID。可參考圖14來理解此類實行方案之一般流程,圖14例示根據本揭示案之態樣的圖形處理方法1400。方法可由系統1200實行於硬體中或實行於軟體中或實行於硬體及軟體之一些組合中。
方法1400始於用於將要顯示在顯示裝置686上的圖框的幾何形狀1402之設置。幾何形狀設置通常涉及應用處理1302中設置虛擬空間中表示為例如多邊形網格的物件的該等部分,該多邊形網格具有用以定義影像中之基元的頂點。幾何形狀設置亦可判定虛擬空間中之哪些物件(物件之部分)為將再現為圖框的檢視範圍之部分。唯一物件ID經指派給每一物件,該每一物件為圖框之部分。在一些實行方案中,在繪圖呼叫之前指派物件ID,如在1404處所指示。在此類實行方案中,物件ID之指派可實行為由應用程式665執行的應用處理1302之部分。在其他實行方案中,作為繪圖呼叫之部分或之後指派物件ID,如在1411、1413及1415處所指示。
繪圖呼叫經發佈,如在1406處所指示。圖形處理可以最習知方式繼續進行貫穿基元處理1408、頂點著色器計算1410、鑲嵌著色器計算1412、幾何形狀著色器計算1414、光柵化/參數內插1416、像素著色器前的Z操作1418、像素著色器計算1420及像素著色器後的Z操作1422。在一些實行方案中,可作為基元處理1408之部
分而產生基元ID,例如藉由將基元ID零指派給每一物件中之第一基元且對於每一後續基元遞增基元ID。在鑲嵌式物件之處理的狀況下,基元處理1408可以將基元ID零指派給每一物件中之第一修補塊且對於每一後續修補塊遞增基元ID開始。在其他實行方案中,在管線中較後指派基元ID,如在1411、1413及1415處所指示。
例如,在某些實行方案中,頂點著色器計算1410可產生物件ID及基元ID,如在1411中。具體而言,在涉及所列舉幾何形狀的狀況下(其中基元經重複繪製為物件之部分或其繪製多次,但在自圖框至圖框的不同位置處),具有用於物件的圖框之間的一致性為合乎需要的,該等物件藉由給予此等物件一ID而反復重新繪製。頂點著色器1410(其通常為在顯影劑之控制下的軟體)藉由參考儲存在記憶體中的物件ID表且使用實例ID作為索引來輸出用於此等所列舉物件中之每一者的物件ID。
在一些實行方案中,頂點著色器可自物件ID及基元識別符回溯,以判定用於所列舉物件的例項識別符。
在替代性實行方案中,可作為鑲嵌計算1412之部分來產生基元ID及物件ID,如在1413處所指示。具體而言,鑲嵌計算1412可藉由遞增用於每個修補塊輸入的基元ID來產生用於基元的基元ID。
在其他實行方案中,可作為幾何形狀著色器計算1414之部分來產生基元ID及物件ID,如在1415處
所指示。具體而言,由幾何形狀著色器接收的用於每一輸入基元的基元ID可遞增由輸入基元所屬的物件支援的輸出基元之最大量的幾何放大,且與幾何形狀著色器或基元處理523相關聯的頂點著色計算526可隨後遞增此值。在進一步實行方案中,與幾何形狀著色器相關聯的頂點著色計算526可僅負責產生基元ID。在進一步實行方案中,與幾何形狀著色器相關聯的頂點著色計算526可僅負責產生基元ID。
在頂點著色器計算1410、鑲嵌著色器計算1412及幾何形狀著色器計算1414之後,光柵化/參數內插1416判定含在基元內的螢幕空間區域。在一些實行方案中,像素著色器前的Z操作1418將基元ID及/或物件ID與寫入至Z緩衝器中的Z值一一對應地寫入至ID緩衝器1399。
像素著色器計算1420可讀取基元ID及/或物件ID。此等可以各種方式加以使用,例如,若基元ID貫穿圖框同調,則與Z緩衝器相關聯的ID緩衝器可與如由像素著色器接收的基元ID相比,以在自著色時減少混淆。或者,基元ID可由像素著色器用來存取每基元資料表。
在一些實行方案中,像素著色器後的Z操作1422將基元ID及/或物件ID與寫入至Z緩衝器中的Z值一一對應地寫入至ID緩衝器1399。ROP及圖框緩衝操作1424將由像素著色器計算1420創建的色彩值及其他值寫
入至MRT。
隨後,使用Z緩衝器值、色彩值及ID緩衝器1399中之值來執行空間/時間分析1426,以便產生用於顯示的高解析度圖框緩衝器(例如,顯示緩衝器)。根據一些態樣,分析1426可在圖13中之顯示處理551期間使用物件ID及或基元ID加以執行,且Z緩衝器值及色彩值可對應於圖13中之色彩樣本值及深度樣本值549,同時用於顯示的高解析度圖框緩衝器可對應於圖13中之最終顯示像素值552。基元ID及/或物件ID允許哪些樣本由哪些物件覆蓋之追蹤,在圖框內因此可能具有較低解析度色彩緩衝器且藉由分析樣本之Z值及ID來將色彩指派給無色彩的樣本。自圖框至圖框的一致性允許將來自先前圖框的色彩值用於無色彩已經計算的當前圖框樣本。
本揭示案之額外態樣包括使用處理器來再現圖形之方法,該方法包含:設置虛擬空間中之場景中之複數個物件,每一該物件係由一組頂點定義,將唯一物件識別符指派給物件中之每一者;發佈一或多個繪圖呼叫以繪製物件;操縱該等頂點之參數值以產生輸出頂點參數值;自頂點設置複數個基元,每一該基元係由頂點中之一或多者之集合定義,且每一該基元屬於物件中之一或多
者;針對複數個像素光柵化基元中之每一者;將每一該像素處的深度寫入至Z緩衝器,該Z緩衝器具有第一解析度;將物件識別符中之一或多者寫入至至少一ID緩衝器,使得Z緩衝器中之每一像素與ID緩衝器中之物件識別符相關聯;處理用於光柵化基元中之每一者的像素以判定色彩緩衝器中之一組色彩值,該色彩緩衝器具有第二解析度,該第二解析度小於第一解析度;以及使用色彩緩衝器中之色彩值及ID緩衝器中之識別符來以Z緩衝器之解析度判定用於輸出圖框的一組顯示像素。
在前述方法之一些實行方案中,輸出圖框儲存在記憶體中或顯示在顯示裝置上。
另一額外態樣為電腦可讀媒體,該電腦可讀媒體中體現有電腦可執行指令,該等電腦可執行指令在被執行時實行前述方法。
又一額外態樣為可自通訊網路下載且/或儲存在電腦可讀媒體及/或微處理器可執行媒體上的電腦程式產品,其特徵在於,該電腦程式產品包含用於實行前述方法的程式碼指令。
另一態樣為電磁信號或其他信號,該電磁信號或其他信號攜載用於進行前述方法的電腦可讀指令。
雖然以上為本發明之較佳實施例之完整描述,但是有可能使用各種替選方案、修改及等效物。因此,本發明之範疇不應參考以上描述來判定,而是應參考隨附申請專利範圍以及申請專利範圍之等效物之完整範疇來判定。本文所述的任何特徵(無論是否較佳)皆可與本所述的任何其他特徵(無論是否較佳)組合。在以下申請專利範圍中,不定冠詞「一」係指接在該冠詞後面的項目中之一或多者之數量,除非另有明確說明。隨附申請專利範圍不應解釋為包括構件加功能限制,除非在給定請求項中使用用語「用於......之構件」明確地敘述此限制。
Claims (93)
- 一種使用一處理器來再現圖形之方法,該方法包含:將一唯一物件識別符指派給虛擬空間中之一場景中之複數個物件中的每一物件,每一該物件係由一組頂點定義;發佈一或多個繪圖呼叫以繪製該等物件;操縱該等頂點之參數值以產生輸出頂點參數值;自該等頂點設置複數個基元,每一該基元屬於該等物件中之一或多者;針對複數個像素光柵化該等基元中之每一者;將該等物件識別符中之一或多者寫入至至少一ID緩衝器,使得每一像素與該ID緩衝器中之一物件識別符相關聯;處理用於該等光柵化基元中之每一者的該等像素以判定一組色彩值;以及使用該等色彩值及該ID緩衝器中之該等識別符來判定用於一輸出圖框的一組顯示像素。
- 如申請專利範圍第1項之方法,其中該判定該組顯示像素包括使用該ID緩衝器中之該一或多個物件識別符來應用空間及/或時間抗混淆。
- 如申請專利範圍第1項之方法,其中該ID緩衝器為專門用以儲存識別符的一專用ID緩衝器。
- 如申請專利範圍第1項之方法,其中該ID緩衝器 為共用緩衝器。
- 如申請專利範圍第1項之方法,其中該ID緩衝器為複數個專用ID緩衝器。
- 如申請專利範圍第1項之方法,其中該指派該唯一物件識別符包括添加一物件識別符及一基元識別符。
- 如申請專利範圍第1項之方法,其中該指派該唯一物件識別符包括在一物件識別符與一基元識別符之間執行邏輯或(logical OR)。
- 如申請專利範圍第1項之方法,其進一步包含:將一唯一基元識別符指派給該等基元中之每一者,及將該基元識別符寫入至該ID緩衝器。
- 如申請專利範圍第8項之方法,其中該判定該組顯示像素包括使用該ID緩衝器中之該等物件識別符及該等基元識別符來應用空間及/或時間抗混淆。
- 如申請專利範圍第8項之方法,其中該至少一ID緩衝器包括專門用以儲存物件識別符的一專用物件ID緩衝器及專門用以儲存基元識別符的一專用基元ID緩衝器。
- 如申請專利範圍第8項之方法,其中該至少一ID緩衝器為專門用以儲存物件識別符及基元識別符的一專用ID緩衝器。
- 如申請專利範圍第1項之方法,其中該操縱該等頂點之該等參數值包括使用一頂點著色器來操縱該等參數值,及產生一基元ID以供最終寫入至該ID緩衝器。
- 如申請專利範圍第1項之方法,其中該指派該唯一物件識別符包括使用一頂點著色器來為一所列舉物件指派一物件識別符。
- 如申請專利範圍第1項之方法,其中該指派該唯一物件識別符包括使用一頂點著色器藉由自一物件識別符及一基元識別符回溯以判定用於一所列舉物件的一例項識別符來為該所列舉物件指派一物件識別符。
- 如申請專利範圍第8項之方法,其中該操縱該等頂點之參數值包含藉由一幾何形狀著色器進行幾何形狀著色器計算,其中該指派該唯一基元識別符包含:在該等幾何形狀著色器計算之前,產生一基元ID,該基元ID遞增該等幾何形狀著色器計算之一最大量的幾何放大;使用該幾何形狀著色器接收該基元ID;以及隨著由該幾何形狀著色器在該等幾何形狀著色器計算期間產生的每一新輸出基元而遞增該基元ID。
- 如申請專利範圍第8項之方法,其中該操縱該等頂點之參數值包含藉由一幾何形狀著色器進行幾何形狀著色器計算,其中該指派該唯一基元識別符包含:在該等幾何形狀著色器計算期間使用該幾何形狀著色器產生一基元ID。
- 如申請專利範圍第8項之方法,其中該將該唯一基元識別符指派給該等基元中之每一者包含,在該操縱該等頂點之參數值之前: 進行基元處理操作以產生一基元ID,及每當該等基元處理操作輸出一修補塊時遞增該基元ID。
- 如申請專利範圍第8項之方法,其中該操縱該等頂點之參數值包含使用一鑲嵌單元來進行鑲嵌計算,其中該指派該唯一基元識別符包含:在該等鑲嵌計算之前,產生一基元ID;使用該鑲嵌單元接收該基元ID;以及隨著由該鑲嵌單元在該等鑲嵌計算期間產生的每一輸出基元而遞增該基元ID。
- 如申請專利範圍第1項之方法,其進一步包含進行自一或多個輸入基元產生一或多個輸出基元的幾何形狀著色。
- 如申請專利範圍第1項之方法,其進一步包含進行自一或多個輸入基元產生一或多個輸出基元的幾何形狀著色,其中該進行幾何形狀著色包括產生用於由該幾何形狀著色產生的一或多個基元的一基元識別符。
- 如申請專利範圍第1項之方法,其進一步包含進行自一或多個輸入基元產生一或多個輸出基元的幾何形狀著色,其中該進行幾何形狀著色包括藉由使用於每一輸入基元的一基元識別符遞增由該等輸入基元所關聯的一物件支援的輸出基元之一最大量的幾何放大,來產生用於由該幾何形狀著色產生的一或多個基元的一基元識別符。
- 如申請專利範圍第1項之方法, 其中該處理用於該等光柵化基元中之每一者的該等像素包括使用一像素著色器來操縱像素參數值,其中該使用該像素著色器來操縱該等像素參數值包括使用該像素著色器來讀取該等基元識別符中之一或多者。
- 如申請專利範圍第1項之方法,其進一步包含追蹤該複數個物件識別符至該輸出圖框之後的至少一後續圖框,使得物件識別符自圖框至圖框一致地指派給物件。
- 如申請專利範圍第1項之方法,其中該發佈該繪圖呼叫包括將該唯一物件識別符指派給該等物件中之每一者,及將該物件識別符寫入至一ID緩衝器,因此存在複數個物件識別符。
- 如申請專利範圍第1項之方法,其中該將一唯一物件識別符指派給該等物件中之每一者包括將相同物件識別符指派給相同物件在相同圖框中或在兩個或兩個以上不同圖框中之兩個或兩個以上例項(instance)。
- 如申請專利範圍第1項之方法,其中該判定該組顯示像素包括使用該一或多個物件識別符來持續追蹤哪些基元或像素屬於哪些物件。
- 如申請專利範圍第1項之方法,其中該判定該組顯示像素包括藉由對於先前圖框中之相同物件中之相同像素重複一像素值,來使用該等物件識別符中之一或多者為當前圖框中之像素提供像素值。
- 如申請專利範圍第1項之方法,其中該判定該組顯示像素包括在該相同物件在一給定圖框中重新繪製多次 的情況下利用一或多個物件識別符。
- 如申請專利範圍第1項之方法,其進一步包含使用物件識別符來持續追蹤物件自圖框至圖框之流動。
- 一種系統,其包含:一處理器,及一記憶體,其耦接至該處理器,其中該處理器經組配來進行一再現圖形之方法,該方法包含:將一唯一物件識別符指派給複數個物件中之每一物件,每一該物件係由一組頂點定義;發佈一或多個繪圖呼叫以繪製該等物件;操縱該等頂點之參數值以產生輸出頂點參數值;自該等頂點設置複數個基元,每一該基元係由該等頂點中之一或多者之一集合定義,且每一該基元屬於該等物件中之一或多者;針對複數個像素光柵化該等基元中之每一者;將該等物件識別符中之一或多者寫入至至少一ID緩衝器,使得每一像素與該ID緩衝器中之一物件識別符相關聯;處理用於該等光柵化基元中之每一者的該等像素以判定一組色彩值;以及使用該等色彩值及該ID緩衝器中之該等識別符來以判定用於一輸出圖框的一組顯示像素。
- 如申請專利範圍第30項之系統, 其中該處理器包括一中央處理單元(CPU)及一圖形處理單元(GPU)。
- 如申請專利範圍第30項之系統,其進一步包含一顯示裝置,其中該方法進一步包含將該等圖形呈現在該顯示裝置上。
- 如申請專利範圍第30項之系統,其中該判定該組顯示像素包括使用該ID緩衝器中之該一或多個物件識別符來應用空間及/或時間抗混淆。
- 如申請專利範圍第30項之系統,其中該ID緩衝器為專門用以儲存識別符的一專用ID緩衝器。
- 如申請專利範圍第30項之系統,其中該ID緩衝器為共用緩衝器。
- 如申請專利範圍第30項之系統,其中該ID緩衝器為複數個專用ID緩衝器。
- 如申請專利範圍第30項之系統,其中該指派該唯一物件識別符包括添加一物件識別符及一基元識別符。
- 如申請專利範圍第30項之系統,其中該指派該唯一物件識別符包括在一物件識別符與一基元識別符之間執行邏輯或(logical OR)。
- 如申請專利範圍第30項之系統,其中該方法進一步包含:將一唯一基元識別符指派給該等基元中之每一者,及將該基元識別符寫入至該ID緩衝器。
- 如申請專利範圍第39項之系統,其中該判定該組顯示像素包括使用該ID緩衝器中之該等物件識別符及該等基元識別符來應用空間及/或時間抗混淆。
- 如申請專利範圍第30項之系統,其中該至少一ID緩衝器包括專門用以儲存物件識別符的一專用物件ID緩衝器及專門用以儲存基元識別符的一專用基元ID緩衝器。
- 如申請專利範圍第30項之系統,其中該至少一ID緩衝器為專門用以儲存物件識別符及基元識別符的一專用ID緩衝器。
- 如申請專利範圍第30項之系統,其中該操縱該等頂點之該等參數值包括使用一頂點著色器來操縱該等參數值,及產生一基元ID以供最終寫入至該ID緩衝器。
- 如申請專利範圍第30項之系統,其中該指派該唯一物件識別符包括使用一頂點著色器來為一所列舉物件指派一物件識別符。
- 如申請專利範圍第30項之系統,其中該指派該唯一物件識別符包括使用一頂點著色器藉由自一物件識別符及一基元識別符回溯以判定用於一所列舉物件的一例項識別符來為該所列舉物件指派一物件識別符。
- 如申請專利範圍第39項之系統,其中該操縱該等頂點之參數值包含藉由一幾何形狀著色器進行幾何形狀著色器計算,其中該指派該唯一基元識別符包含: 在該等幾何形狀著色器計算之前,產生一基元ID,該基元ID遞增該等幾何形狀著色器計算之一最大量的幾何放大;使用該幾何形狀著色器接收該基元ID;以及隨著由該幾何形狀著色器在該等幾何形狀著色器計算期間產生的每一新輸出基元而遞增該基元ID。
- 如申請專利範圍第39項之系統,其中該操縱該等頂點之參數值包含藉由一幾何形狀著色器進行幾何形狀著色器計算,其中該指派該唯一基元識別符包含:在該等幾何形狀著色器計算期間使用該幾何形狀著色器產生一基元ID。
- 如申請專利範圍第39項之系統,其中該將該唯一基元識別符指派給該等基元中之每一者包含,在該操縱該等頂點之參數值之前:進行基元處理操作以產生一基元ID,及每當該等基元處理操作輸出一修補塊時遞增該基元ID。
- 如申請專利範圍第39項之系統,其中該操縱該等頂點之參數值包含使用一鑲嵌單元來進行鑲嵌計算,其中該指派該唯一基元識別符包含:在該等鑲嵌計算之前,產生一基元ID;使用該鑲嵌單元接收該基元ID;以及隨著由該鑲嵌單元在該等鑲嵌計算期間產生的每一輸出基元而遞增該基元ID。
- 如申請專利範圍第30項之系統,其中該方法進一步包含進行自一或多個輸入基元產生一或多個輸出基元的幾何形狀著色。
- 如申請專利範圍第30項之系統,其中該方法進一步包含進行自一或多個輸入基元產生一或多個輸出基元的幾何形狀著色,其中該進行幾何形狀著色包括產生用於由該幾何形狀著色產生的一或多個基元的一基元識別符。
- 如申請專利範圍第30項之系統,其中該方法進一步包含進行自一或多個輸入基元產生一或多個輸出基元的幾何形狀著色,其中該進行幾何形狀著色包括藉由使用於每一輸入基元的一基元識別符遞增由該等輸入基元所關聯的一物件支援的輸出基元之一最大量的幾何放大,來產生用於由該幾何形狀著色產生的一或多個基元的一基元識別符。
- 如申請專利範圍第30項之系統,其中該處理用於該等光柵化基元中之每一者的該等像素包括使用一像素著色器來操縱像素參數值,其中該使用該像素著色器來操縱該等像素參數值包括使用該像素著色器來讀取該等基元識別符中之一或多者。
- 如申請專利範圍第30項之系統,其進一步包含追蹤該複數個物件識別符至該輸出圖框之後的至少一後續圖框,使得物件識別符自圖框至圖框一致地指派給物件。
- 如申請專利範圍第30項之系統,其中該發佈該繪圖呼叫包括將該唯一物件識別符指派給該等物件中之每 一者,及將該物件識別符寫入至一ID緩衝器,因此存在複數個物件識別符。
- 如申請專利範圍第30項之系統,其中該將一唯一物件識別符指派給該等物件中之每一者包括將相同物件識別符指派給相同物件在相同圖框中或兩個或兩個以上不同圖框中之兩個或兩個以上例項(instance)。
- 如申請專利範圍第30項之系統,其中該判定該組顯示像素包括使用該一或多個物件識別符來持續追蹤哪些基元或像素屬於哪些物件。
- 如申請專利範圍第30項之系統,其中該判定該組顯示像素包括藉由對於先前圖框中之相同物件中之相同像素重複一像素值,來使用該等物件識別符中之一或多者為當前圖框中之像素提供像素值。
- 如申請專利範圍第30項之系統,其中該判定該組顯示像素包括在該相同物件在一給定圖框中重新繪製多次的情況下利用一或多個物件識別符。
- 如申請專利範圍第30項之系統,其中該方法進一步包含使用物件識別符來持續追蹤物件自圖框至圖框之流動。
- 一種圖形處理單元(GPU),其包含:一ID模組,其經組配來:接收對應於虛擬空間中之一場景中之複數個物件的資訊,每一該物件係由一組頂點定義;針對該複數個物件中之每一該物件接收一命令緩衝器 中之一物件識別符;以及將該物件識別符寫入至一ID緩衝器;且其中該GPU進一步經組配來:操縱該等頂點之參數值以產生輸出頂點參數值;自該等頂點設置複數個基元,每一該基元屬於該等物件中之一或多者;針對複數個像素光柵化該等基元中之每一者;將該等物件識別符中之一或多者寫入至至少一ID緩衝器,使得每一像素與該ID緩衝器中之一物件識別符相關聯;處理用於該等光柵化基元中之每一者的該等像素以判定用於每一該像素的一色彩值;以及使用該等色彩值及該ID緩衝器中之該等識別符來判定用於一輸出圖框的一組顯示像素。
- 如申請專利範圍第61項之GPU,其中該ID模組為一硬體模組。
- 如申請專利範圍第61項之GPU,其中該判定該組顯示像素包括使用該ID緩衝器中之該一或多個物件識別符來應用空間及/或時間抗混淆。
- 如申請專利範圍第61項之GPU,其中該ID緩衝器為專門用以儲存識別符的一專用ID緩衝器。
- 如申請專利範圍第61項之GPU,其中該ID緩衝器為共用緩衝器。
- 如申請專利範圍第61項之GPU,其中該ID緩衝 器為複數個專用ID緩衝器。
- 如申請專利範圍第61項之GPU,其中該指派該唯一物件識別符包括添加一物件識別符及一基元識別符。
- 如申請專利範圍第61項之GPU,其中該指派該唯一物件識別符包括在一物件識別符與一基元識別符之間執行邏輯或(logical OR)。
- 如申請專利範圍第61項之GPU,其中該GPU進一步經組配來將一唯一基元識別符指派給該等基元中之每一者,且將該基元識別符寫入至該ID緩衝器。
- 如申請專利範圍第69項之GPU,其中該判定該組顯示像素包括使用該ID緩衝器中之該等物件識別符及該等基元識別符來應用空間及/或時間抗混淆。
- 如申請專利範圍第61項之GPU,其中該至少一ID緩衝器包括專門用以儲存物件識別符的一專用物件ID緩衝器及專門用以儲存基元識別符的一專用基元ID緩衝器。
- 如申請專利範圍第61項之GPU,其中該至少一ID緩衝器為專門用以儲存物件識別符及基元識別符的一專用ID緩衝器。
- 如申請專利範圍第61項之GPU,其中該操縱該等頂點之該等參數值包括使用一頂點著色器來操縱該等參數值,及產生一基元ID以供最終寫入至該ID緩衝器。
- 如申請專利範圍第61項之GPU,其中該指派該唯一物件識別符包括使用一頂點著色器為一所列舉物件指 派一物件識別符。
- 如申請專利範圍第61項之GPU,其中該指派該唯一物件識別符包括使用一頂點著色器藉由自一物件識別符及一基元識別符回溯以判定用於一所列舉物件的一例項識別符來為該所列舉物件指派一物件識別符。
- 如申請專利範圍第69項之GPU,其中該操縱該等頂點之參數值包含藉由一幾何形狀著色器進行幾何形狀著色器計算,其中該指派該唯一基元識別符包含:在該等幾何形狀著色器計算之前,產生一基元ID,該基元ID遞增該等幾何形狀著色器計算之一最大量的幾何放大;使用該幾何形狀著色器接收該基元ID;以及隨著由該幾何形狀著色器在該等幾何形狀著色器計算期間產生的每一新輸出基元而遞增該基元ID。
- 如申請專利範圍第69項之GPU,其中該操縱該等頂點之參數值包含藉由一幾何形狀著色器進行幾何形狀著色器計算,其中該指派該唯一基元識別符包含:在該等幾何形狀著色器計算期間使用該幾何形狀著色器產生一基元ID。
- 如申請專利範圍第69項之GPU,其中該將該唯一基元識別符指派給該等基元中之每一者包含,在該操縱該等頂點之參數值之前:進行基元處理操作以產生一基元ID,及每當該等基元處理操作輸出一修補塊時遞增該基元 ID。
- 如申請專利範圍第69項之GPU,其中該操縱該等頂點之參數值包含使用一鑲嵌單元來進行鑲嵌計算,其中該指派該唯一基元識別符包含:在該等鑲嵌計算之前,產生一基元ID;使用該鑲嵌單元接收該基元ID;以及隨著由該鑲嵌單元在該等鑲嵌計算期間產生的每一輸出基元而遞增該基元ID。
- 如申請專利範圍第61項之GPU,其中該GPU進一步經組配來進行自一或多個輸入基元產生一或多個輸出基元的幾何形狀著色。
- 如申請專利範圍第61項之GPU,其中該GPU進一步經組配來進行自一或多個輸入基元產生一或多個輸出基元的幾何形狀著色,其中進行幾何形狀著色包括產生用於由該幾何形狀著色產生的一或多個基元的一基元識別符。
- 如申請專利範圍第61項之GPU,其中該GPU進一步經組配來進行自一或多個輸入基元產生一或多個輸出基元的幾何形狀著色,其中進行幾何形狀著色包括藉由使用於每一輸入基元的一基元識別符遞增由該等輸入基元所關聯的一物件支援的輸出基元之一最大量的幾何放大,來產生用於由該幾何形狀著色產生的一或多個基元的一基元識別符。
- 如申請專利範圍第69項之GPU, 其中該處理用於該等光柵化基元中之每一者的該等像素包括使用一像素著色器來操縱像素參數值,其中該使用該像素著色器來操縱該等像素參數值包括使用該像素著色器來讀取該等基元識別符中之一或多者。
- 如申請專利範圍第61項之GPU,其中該GPU進一步經組配來追蹤將該複數個物件識別符至該輸出圖框之後的至少一後續圖框,使得物件識別符自圖框至圖框一致地指派給物件。
- 如申請專利範圍第61項之GPU,其中該發佈該繪圖呼叫包括將該唯一物件識別符指派給該等物件中之每一者,及將該物件識別符寫入至一ID緩衝器,因此存在複數個物件識別符。
- 如申請專利範圍第61項之GPU,其中該將一唯一物件識別符指派給該等物件中之每一者包括將相同物件識別符指派給相同物件在相同圖框中或兩個或兩個以上不同圖框中之兩個或兩個以上例項(instance)。
- 如申請專利範圍第61項之GPU,其中該判定該組顯示像素包括使用該一或多個物件識別符來持續追蹤哪些基元或像素屬於哪些物件。
- 如申請專利範圍第61項之GPU,其中該判定該組顯示像素包括藉由對於先前圖框中之相同物件中之相同像素重複一像素值,來使用該等物件識別符中之一或多者為當前圖框中之像素提供像素值。
- 如申請專利範圍第61項之GPU,其中該判定該 組顯示像素包括在該相同物件在一給定圖框中重新繪製多次的情況下利用一或多個物件識別符。
- 如申請專利範圍第61項之GPU,其中該GPU進一步經組配來使用物件識別符來持續追蹤物件自圖框至圖框之流動。
- 一種非暫時性電腦可讀媒體,該非暫時性電腦可讀媒體中體現有處理器可執行指令,其中一處理器對該等指令之執行使該處理器實行如申請專利範圍第1項之使用一處理器來再現圖形之方法。
- 一種使用一處理器來再現一或多個圖形圖框之方法,該一或多個圖形圖框描繪虛擬空間中之一場景中之複數個物件且每一該物件係由一組頂點定義,該方法包含:a)將一唯一物件識別符指派給該等物件中之每一者;b)對於每一該圖框,操縱虛擬空間中之該等物件中之每一者之頂點,每一該物件包括一或多個基元,該等基元自該等頂點被設置,且由該等頂點中之一或多者之一集合定義;c)對於每一該圖框,將該等物件之該等基元自該虛擬空間轉換至螢幕空間,其中該螢幕空間包含複數個深度樣本及複數個色彩樣本,其中有比色彩樣本更多的深度樣本用於複數個像素之每一像素;d)對於每一該圖框,判定螢幕空間中之該等色彩樣本中之每一者之一最終色彩值及螢幕空間中之該等深度樣 本中之每一者之一最終深度值,其中該等最終深度值儲存在一深度緩衝器中,且該等最終色彩值儲存在一色彩緩衝器中;e)對於每一該圖框,將該等物件識別符中之至少一者儲存在一ID緩衝器中,其中該深度緩衝器中之該等最終深度樣本中之每一者與該ID緩衝器中之該等物件識別符中之一者相關聯;f)對於每一該圖框,使用該色彩緩衝器中之該等色彩值及該ID緩衝器中之該等物件識別符來判定一組最終顯示像素。
- 一種非暫時性電腦可讀取媒體,具有體現於其中的處理器可執行指令,其中由處理器執行該些指令使得該處理器實現如申請專利範圍第92項所述之使用一處理器來再現圖形的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/246,067 US9710957B2 (en) | 2014-04-05 | 2014-04-05 | Graphics processing enhancement by tracking object and/or primitive identifiers |
US14/246,067 | 2014-04-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201737207A true TW201737207A (zh) | 2017-10-16 |
TWI618030B TWI618030B (zh) | 2018-03-11 |
Family
ID=54210224
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104108774A TWI584223B (zh) | 2014-04-05 | 2015-03-19 | 藉由追蹤物件及/或基元識別符的圖形處理增強之方法及系統,圖形處理單元及非暫時性電腦可讀媒體 |
TW106106185A TWI618030B (zh) | 2014-04-05 | 2015-03-19 | 藉由追蹤物件及/或基元識別符的圖形處理增強之方法及系統,圖形處理單元及非暫時性電腦可讀媒體 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104108774A TWI584223B (zh) | 2014-04-05 | 2015-03-19 | 藉由追蹤物件及/或基元識別符的圖形處理增強之方法及系統,圖形處理單元及非暫時性電腦可讀媒體 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9710957B2 (zh) |
EP (1) | EP3129978B1 (zh) |
JP (1) | JP6374982B2 (zh) |
KR (2) | KR102046616B1 (zh) |
TW (2) | TWI584223B (zh) |
WO (1) | WO2015153164A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI827916B (zh) * | 2020-05-21 | 2024-01-01 | 南韓商三星電子股份有限公司 | 用於處理螢幕空間的方塊的方法 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9633458B2 (en) * | 2012-01-23 | 2017-04-25 | Nvidia Corporation | Method and system for reducing a polygon bounding box |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
US10438312B2 (en) | 2014-04-05 | 2019-10-08 | Sony Interactive Entertainment LLC | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters |
US11302054B2 (en) | 2014-04-05 | 2022-04-12 | Sony Interactive Entertainment Europe Limited | Varying effective resolution by screen location by changing active color sample count within multiple render targets |
US10783696B2 (en) | 2014-04-05 | 2020-09-22 | Sony Interactive Entertainment LLC | Gradient adjustment for texture mapping to non-orthonormal grid |
US9734624B2 (en) * | 2014-04-30 | 2017-08-15 | Lucasfilm Entertainment Company Ltd. | Deep image data compression |
US9665975B2 (en) * | 2014-08-22 | 2017-05-30 | Qualcomm Incorporated | Shader program execution techniques for use in graphics processing |
US10410398B2 (en) * | 2015-02-20 | 2019-09-10 | Qualcomm Incorporated | Systems and methods for reducing memory bandwidth using low quality tiles |
US11403099B2 (en) | 2015-07-27 | 2022-08-02 | Sony Interactive Entertainment LLC | Backward compatibility by restriction of hardware resources |
US9754237B2 (en) * | 2015-12-18 | 2017-09-05 | Ricoh Co., Ltd. | Index image quality metric |
US10275239B2 (en) | 2016-03-30 | 2019-04-30 | Sony Interactive Entertainment Inc. | Deriving application-specific operating parameters for backwards compatiblity |
US10303488B2 (en) | 2016-03-30 | 2019-05-28 | Sony Interactive Entertainment Inc. | Real-time adjustment of application-specific operating parameters for backwards compatibility |
US10915333B2 (en) | 2016-03-30 | 2021-02-09 | Sony Interactive Entertainment Inc. | Deriving application-specific operating parameters for backwards compatiblity |
US10460513B2 (en) | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
CN108450060B (zh) * | 2016-12-22 | 2020-12-15 | 华为技术有限公司 | 基于wi-fi接入点的定位方法、设备 |
US10650566B2 (en) * | 2017-02-15 | 2020-05-12 | Microsoft Technology Licensing, Llc | Multiple shader processes in graphics processing |
US10685473B2 (en) * | 2017-05-31 | 2020-06-16 | Vmware, Inc. | Emulation of geometry shaders and stream output using compute shaders |
US20190236758A1 (en) * | 2018-01-29 | 2019-08-01 | Intel Corporation | Apparatus and method for temporally stable conservative morphological anti-aliasing |
US10713756B2 (en) * | 2018-05-01 | 2020-07-14 | Nvidia Corporation | HW-assisted upscaling and multi-sampling using a high resolution depth buffer |
US11012694B2 (en) | 2018-05-01 | 2021-05-18 | Nvidia Corporation | Dynamically shifting video rendering tasks between a server and a client |
US10942564B2 (en) * | 2018-05-17 | 2021-03-09 | Sony Interactive Entertainment Inc. | Dynamic graphics rendering based on predicted saccade landing point |
US11262839B2 (en) * | 2018-05-17 | 2022-03-01 | Sony Interactive Entertainment Inc. | Eye tracking with prediction and late update to GPU for fast foveated rendering in an HMD environment |
WO2020163702A1 (en) * | 2019-02-07 | 2020-08-13 | Visu, Inc. | Shader for reducing myopiagenic effect of graphics rendered for electronic display |
CN113298918B (zh) * | 2020-02-24 | 2022-12-27 | 广东博智林机器人有限公司 | 一种重叠区域的异色显示方法及装置 |
TWI791261B (zh) * | 2020-08-14 | 2023-02-01 | 宏達國際電子股份有限公司 | 在移動中提供虛擬環境的方法與系統以及非暫態電腦可讀取儲存媒體 |
US11216916B1 (en) * | 2020-10-09 | 2022-01-04 | Nvidia Corporation | History clamping for denoising dynamic ray-traced scenes using temporal accumulation |
CN116563083A (zh) * | 2022-01-29 | 2023-08-08 | 华为技术有限公司 | 渲染图像的方法和相关装置 |
US20230298250A1 (en) * | 2022-03-16 | 2023-09-21 | Meta Platforms Technologies, Llc | Stereoscopic features in virtual reality |
US20230334728A1 (en) * | 2022-04-15 | 2023-10-19 | Meta Platforms Technologies, Llc | Destination Update for Blending Modes in a Graphics Pipeline |
US11882295B2 (en) | 2022-04-15 | 2024-01-23 | Meta Platforms Technologies, Llc | Low-power high throughput hardware decoder with random block access |
Family Cites Families (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4513317A (en) | 1982-09-28 | 1985-04-23 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Retinally stabilized differential resolution television display |
US5224208A (en) | 1990-03-16 | 1993-06-29 | Hewlett-Packard Company | Gradient calculation for texture mapping |
US5130794A (en) | 1990-03-29 | 1992-07-14 | Ritchey Kurtis J | Panoramic display system |
US5422653A (en) | 1993-01-07 | 1995-06-06 | Maguire, Jr.; Francis J. | Passive virtual reality |
US5602391A (en) | 1995-02-23 | 1997-02-11 | Hughes Electronics | Quincunx sampling grid for staring array |
JP3635359B2 (ja) * | 1995-11-09 | 2005-04-06 | 株式会社ルネサステクノロジ | 透視投影計算装置および透視投影計算方法 |
US5777913A (en) | 1995-12-27 | 1998-07-07 | Ericsson Inc. | Resolution enhancement of fixed point digital filters |
USH1812H (en) | 1997-10-24 | 1999-11-02 | Sun Microsystems, Inc. | Method for encoding bounding boxes of drawing primitives to be rendered for multi-resolution supersampled frame buffers |
EP1055199B1 (en) | 1998-02-17 | 2002-05-22 | Sun Microsystems, Inc. | Estimating graphics system performance for polygons |
US6496187B1 (en) | 1998-02-17 | 2002-12-17 | Sun Microsystems, Inc. | Graphics system configured to perform parallel sample to pixel calculation |
AU2868199A (en) | 1998-02-17 | 1999-08-30 | Sun Microsystems, Inc. | Graphics system with variable resolution super-sampling |
US6469700B1 (en) | 1998-06-24 | 2002-10-22 | Micron Technology, Inc. | Per pixel MIP mapping and trilinear filtering using scanline gradients for selecting appropriate texture maps |
WO2000011603A2 (en) | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Graphics processor with pipeline state storage and retrieval |
US6771264B1 (en) * | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
JP2000155850A (ja) | 1998-11-20 | 2000-06-06 | Sony Corp | テクスチャ・マッピング装置及びこれを具備したレンダリング装置、並びに情報処理装置 |
US6417861B1 (en) | 1999-02-17 | 2002-07-09 | Sun Microsystems, Inc. | Graphics system with programmable sample positions |
US6781606B2 (en) | 1999-05-20 | 2004-08-24 | Hewlett-Packard Development Company, L.P. | System and method for displaying images using foveal video |
US6639597B1 (en) * | 2000-02-28 | 2003-10-28 | Mitsubishi Electric Research Laboratories Inc | Visibility splatting and image reconstruction for surface elements |
US6633297B2 (en) * | 2000-08-18 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | System and method for producing an antialiased image using a merge buffer |
US6567099B1 (en) * | 2000-11-15 | 2003-05-20 | Sony Corporation | Method and system for dynamically allocating a frame buffer for efficient anti-aliasing |
JP2002260003A (ja) | 2001-03-02 | 2002-09-13 | Hitachi Ltd | 映像表示装置 |
US6906723B2 (en) | 2001-03-29 | 2005-06-14 | International Business Machines Corporation | Generating partials for perspective corrected texture coordinates in a four pixel texture pipeline |
US6731434B1 (en) | 2001-05-23 | 2004-05-04 | University Of Central Florida | Compact lens assembly for the teleportal augmented reality system |
US7555157B2 (en) | 2001-09-07 | 2009-06-30 | Geoff Davidson | System and method for transforming graphical images |
US7155698B1 (en) | 2001-09-11 | 2006-12-26 | The Regents Of The University Of California | Method of locating areas in an image such as a photo mask layout that are sensitive to residual processing effects |
US6738069B2 (en) | 2001-12-31 | 2004-05-18 | Intel Corporation | Efficient graphics state management for zone rendering |
US6906714B2 (en) | 2002-06-21 | 2005-06-14 | Intel Corporation | Accelerated visualization of surface light fields |
US6891548B2 (en) | 2002-08-23 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | System and method for calculating a texture-mapping gradient |
TWI238975B (en) | 2003-02-20 | 2005-09-01 | Via Tech Inc | Method of performing cubic mapping with texturing |
US7619626B2 (en) | 2003-03-01 | 2009-11-17 | The Boeing Company | Mapping images from one or more sources into an image for display |
US7336277B1 (en) | 2003-04-17 | 2008-02-26 | Nvidia Corporation | Per-pixel output luminosity compensation |
JP3966832B2 (ja) | 2003-04-28 | 2007-08-29 | 株式会社東芝 | 描画処理装置、及び、描画処理方法 |
US7495638B2 (en) | 2003-05-13 | 2009-02-24 | Research Triangle Institute | Visual display with increased field of view |
EP1496475B1 (en) | 2003-07-07 | 2013-06-26 | STMicroelectronics Srl | A geometric processing stage for a pipelined graphic engine, corresponding method and computer program product therefor |
US6967663B1 (en) * | 2003-09-08 | 2005-11-22 | Nvidia Corporation | Antialiasing using hybrid supersampling-multisampling |
US8085273B2 (en) | 2003-11-19 | 2011-12-27 | Lucid Information Technology, Ltd | Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control |
US8144156B1 (en) | 2003-12-31 | 2012-03-27 | Zii Labs Inc. Ltd. | Sequencer with async SIMD array |
US8090383B1 (en) * | 2004-02-17 | 2012-01-03 | Emigh Aaron T | Method and system for charging for a service based on time spent at a facility |
CN1930587B (zh) | 2004-03-15 | 2011-05-25 | 皇家飞利浦电子股份有限公司 | 图像可视化 |
US7554538B2 (en) | 2004-04-02 | 2009-06-30 | Nvidia Corporation | Video processing, such as for hidden surface reduction or removal |
US7426724B2 (en) | 2004-07-02 | 2008-09-16 | Nvidia Corporation | Optimized chaining of vertex and fragment programs |
US7425966B2 (en) | 2004-10-07 | 2008-09-16 | Nvidia Corporation | Pixel center position displacement |
US7339594B1 (en) | 2005-03-01 | 2008-03-04 | Nvidia Corporation | Optimized anisotropic texture sampling |
JP4660254B2 (ja) | 2005-04-08 | 2011-03-30 | 株式会社東芝 | 描画方法及び描画装置 |
US7289119B2 (en) | 2005-05-10 | 2007-10-30 | Sony Computer Entertainment Inc. | Statistical rendering acceleration |
US7511717B1 (en) | 2005-07-15 | 2009-03-31 | Nvidia Corporation | Antialiasing using hybrid supersampling-multisampling |
US20070018988A1 (en) | 2005-07-20 | 2007-01-25 | Michael Guthe | Method and applications for rasterization of non-simple polygons and curved boundary representations |
JP2007152861A (ja) * | 2005-12-08 | 2007-06-21 | Olympus Corp | 画像記録装置が備えるインク検出装置、インク検出方法、及びプログラム |
US8300059B2 (en) | 2006-02-03 | 2012-10-30 | Ati Technologies Ulc | Method and apparatus for selecting a mip map level based on a min-axis value for texture mapping |
US8207975B1 (en) | 2006-05-08 | 2012-06-26 | Nvidia Corporation | Graphics rendering pipeline that supports early-Z and late-Z virtual machines |
US7907792B2 (en) | 2006-06-16 | 2011-03-15 | Hewlett-Packard Development Company, L.P. | Blend maps for rendering an image frame |
US8406562B2 (en) | 2006-08-11 | 2013-03-26 | Geo Semiconductor Inc. | System and method for automated calibration and correction of display geometry and color |
EP2078229A2 (en) | 2006-11-02 | 2009-07-15 | Sensics, Inc. | Systems and methods for a head-mounted display |
US8232991B1 (en) | 2006-11-03 | 2012-07-31 | Nvidia Corporation | Z-test result reconciliation with multiple partitions |
US8233004B1 (en) | 2006-11-06 | 2012-07-31 | Nvidia Corporation | Color-compression using automatic reduction of multi-sampled pixels |
JP5063990B2 (ja) * | 2006-11-15 | 2012-10-31 | 任天堂株式会社 | ゲームプログラムおよびゲーム装置 |
US7876332B1 (en) | 2006-12-20 | 2011-01-25 | Nvidia Corporation | Shader that conditionally updates a framebuffer in a computer graphics system |
JP5268271B2 (ja) | 2007-03-23 | 2013-08-21 | 株式会社東芝 | 画像表示装置および画像表示方法 |
US20090033659A1 (en) | 2007-07-31 | 2009-02-05 | Lake Adam T | Real-time luminosity dependent subdivision |
US8044956B1 (en) | 2007-08-03 | 2011-10-25 | Nvidia Corporation | Coverage adaptive multisampling |
US8441497B1 (en) | 2007-08-07 | 2013-05-14 | Nvidia Corporation | Interpolation of vertex attributes in a graphics processor |
US7916155B1 (en) | 2007-11-02 | 2011-03-29 | Nvidia Corporation | Complementary anti-aliasing sample patterns |
JP5050786B2 (ja) | 2007-11-05 | 2012-10-17 | 富士通セミコンダクター株式会社 | 描画処理装置、描画処理方法および描画処理プログラム |
US8922565B2 (en) | 2007-11-30 | 2014-12-30 | Qualcomm Incorporated | System and method for using a secondary processor in a graphics system |
US8643644B2 (en) | 2008-03-20 | 2014-02-04 | Qualcomm Incorporated | Multi-stage tessellation for graphics rendering |
GB0810311D0 (en) * | 2008-06-05 | 2008-07-09 | Advanced Risc Mach Ltd | Graphics processing systems |
TWI425440B (zh) * | 2008-07-03 | 2014-02-01 | Nvidia Corp | 複合多重樣本/超樣本抗頻疊 |
US8605087B2 (en) * | 2008-07-03 | 2013-12-10 | Nvidia Corporation | Hybrid multisample/supersample antialiasing |
US8428326B2 (en) * | 2008-10-23 | 2013-04-23 | Immersion Corporation | Systems and methods for ultrasound simulation using depth peeling |
GB0819570D0 (en) | 2008-10-24 | 2008-12-03 | Advanced Risc Mach Ltd | Methods of and apparatus for processing computer graphics |
US8780131B2 (en) | 2008-12-19 | 2014-07-15 | Xerox Corporation | Systems and methods for text-based personalization of images |
US20100214294A1 (en) | 2009-02-20 | 2010-08-26 | Microsoft Corporation | Method for tessellation on graphics hardware |
US8330767B2 (en) | 2009-03-24 | 2012-12-11 | Advanced Micro Devices, Inc. | Method and apparatus for angular invariant texture level of detail generation |
US9697641B2 (en) | 2009-10-15 | 2017-07-04 | Nvidia Corporation | Alpha-to-coverage using virtual samples |
US8638342B2 (en) | 2009-10-20 | 2014-01-28 | Apple Inc. | System and method for demosaicing image data using weighted gradients |
US8803902B2 (en) | 2009-12-03 | 2014-08-12 | Intel Corporation | Computing level of detail for anisotropic filtering |
JP5786110B2 (ja) | 2009-12-11 | 2015-09-30 | ライカ バイオシステムズ イメージング インコーポレイテッドAperio Technologies, Inc. | デジタル病理画像分析における信号対雑音比の改善 |
US8606009B2 (en) | 2010-02-04 | 2013-12-10 | Microsoft Corporation | High dynamic range image generation and rendering |
US8619085B2 (en) | 2010-03-08 | 2013-12-31 | Broadcom Corporation | Method and system for compressing tile lists used for 3D rendering |
CN105812827B (zh) | 2010-07-21 | 2019-04-16 | 杜比实验室特许公司 | 用于多层帧兼容视频传输的解码方法 |
WO2012037157A2 (en) | 2010-09-13 | 2012-03-22 | Alt Software (Us) Llc | System and method for displaying data having spatial coordinates |
KR101719485B1 (ko) | 2010-09-20 | 2017-03-27 | 삼성전자주식회사 | 그래픽 처리 유닛에서의 사전 픽셀 제거를 위한 장치 및 방법 |
US8593475B2 (en) | 2010-10-13 | 2013-11-26 | Qualcomm Incorporated | Systems and methods for dynamic procedural texture generation management |
US9122053B2 (en) | 2010-10-15 | 2015-09-01 | Microsoft Technology Licensing, Llc | Realistic occlusion for a head mounted augmented reality display |
US8982136B2 (en) | 2011-05-16 | 2015-03-17 | Qualcomm Incorporated | Rendering mode selection in graphics processing units |
JP5885398B2 (ja) * | 2011-05-20 | 2016-03-15 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
JP2013025406A (ja) * | 2011-07-15 | 2013-02-04 | Panasonic Corp | 画像処理装置、画像処理方法および画像表示装置 |
US9019280B2 (en) | 2011-07-22 | 2015-04-28 | Qualcomm Incorporated | Area-based rasterization techniques for a graphics processing system |
KR101926570B1 (ko) | 2011-09-14 | 2018-12-10 | 삼성전자주식회사 | 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치 |
US10089774B2 (en) | 2011-11-16 | 2018-10-02 | Qualcomm Incorporated | Tessellation in tile-based rendering |
CN105974587B (zh) | 2011-11-24 | 2018-09-28 | 松下知识产权经营株式会社 | 头戴式显示器装置 |
GB2497302B (en) | 2011-12-05 | 2017-04-12 | Advanced Risc Mach Ltd | Methods of and apparatus for processing computer graphics |
US10535185B2 (en) | 2012-04-04 | 2020-01-14 | Qualcomm Incorporated | Patched shading in graphics processing |
US8581929B1 (en) | 2012-06-05 | 2013-11-12 | Francis J. Maguire, Jr. | Display of light field image data using a spatial light modulator at a focal length corresponding to a selected focus depth |
US9495781B2 (en) | 2012-06-21 | 2016-11-15 | Nvidia Corporation | Early sample evaluation during coarse rasterization |
US9424685B2 (en) | 2012-07-31 | 2016-08-23 | Imagination Technologies Limited | Unified rasterization and ray tracing rendering environments |
US9142005B2 (en) | 2012-08-20 | 2015-09-22 | Nvidia Corporation | Efficient placement of texture barrier instructions |
US10976986B2 (en) | 2013-09-24 | 2021-04-13 | Blackberry Limited | System and method for forwarding an application user interface |
-
2014
- 2014-04-05 US US14/246,067 patent/US9710957B2/en active Active
-
2015
- 2015-03-19 TW TW104108774A patent/TWI584223B/zh active
- 2015-03-19 TW TW106106185A patent/TWI618030B/zh active
- 2015-03-23 KR KR1020167031094A patent/KR102046616B1/ko active IP Right Grant
- 2015-03-23 KR KR1020197033588A patent/KR102242626B1/ko active IP Right Grant
- 2015-03-23 JP JP2016560652A patent/JP6374982B2/ja active Active
- 2015-03-23 WO PCT/US2015/021956 patent/WO2015153164A1/en active Application Filing
- 2015-03-23 EP EP15773477.3A patent/EP3129978B1/en active Active
-
2017
- 2017-07-18 US US15/653,422 patent/US10510183B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI827916B (zh) * | 2020-05-21 | 2024-01-01 | 南韓商三星電子股份有限公司 | 用於處理螢幕空間的方塊的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180130251A1 (en) | 2018-05-10 |
EP3129978A4 (en) | 2017-09-27 |
KR20170015884A (ko) | 2017-02-10 |
KR20190131131A (ko) | 2019-11-25 |
WO2015153164A1 (en) | 2015-10-08 |
EP3129978A1 (en) | 2017-02-15 |
EP3129978B1 (en) | 2020-05-20 |
TWI584223B (zh) | 2017-05-21 |
JP6374982B2 (ja) | 2018-08-15 |
KR102242626B1 (ko) | 2021-04-21 |
US20150287239A1 (en) | 2015-10-08 |
JP2017516200A (ja) | 2017-06-15 |
KR102046616B1 (ko) | 2019-11-19 |
TW201539375A (zh) | 2015-10-16 |
US9710957B2 (en) | 2017-07-18 |
US10510183B2 (en) | 2019-12-17 |
TWI618030B (zh) | 2018-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI584223B (zh) | 藉由追蹤物件及/或基元識別符的圖形處理增強之方法及系統,圖形處理單元及非暫時性電腦可讀媒體 | |
TWI634517B (zh) | 用於高解析度顯示緩衝器之有效構造之方法 | |
TWI592902B (zh) | 來自片段著色器程式之樣本遮罩的控制 | |
TWI570665B (zh) | 電腦圖形系統及圖形處理方法 | |
JP2021108154A (ja) | 複数のレンダーターゲット内でアクティブカラーサンプルカウントを変更することによりスクリーンの位置によって有効解像度を変動させること | |
US7876332B1 (en) | Shader that conditionally updates a framebuffer in a computer graphics system | |
US8547395B1 (en) | Writing coverage information to a framebuffer in a computer graphics system | |
US7817165B1 (en) | Selecting real sample locations for ownership of virtual sample locations in a computer graphics system | |
US9530241B2 (en) | Clipping of graphics primitives | |
US8004522B1 (en) | Using coverage information in computer graphics | |
KR20170016301A (ko) | 그래픽 처리 | |
US20210350606A9 (en) | Method for efficient construction of high resolution display buffers |