TWI636423B - 用於高解析度顯示緩衝器之有效構造之方法 - Google Patents
用於高解析度顯示緩衝器之有效構造之方法 Download PDFInfo
- Publication number
- TWI636423B TWI636423B TW106131046A TW106131046A TWI636423B TW I636423 B TWI636423 B TW I636423B TW 106131046 A TW106131046 A TW 106131046A TW 106131046 A TW106131046 A TW 106131046A TW I636423 B TWI636423 B TW I636423B
- Authority
- TW
- Taiwan
- Prior art keywords
- samples
- pixel
- color
- depth
- primitive
- 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/005—General purpose rendering architectures
-
- 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/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- 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
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本發明揭示可使對像素著色器之調用減至最低以便改良再現管線中之效率的圖形處理系統及方法。在本揭示案之實行方案中,像素內之複數個樣本可由基元覆蓋。該複數個樣本可包括一或多個色彩樣本及複數個深度樣本。在調用像素著色器來對該像素進行著色計算之前可考慮由該基元覆蓋的該等樣本之性質。在本揭示案之實行方案中,若至少一樣本由基元覆蓋,但該等樣本全都不是色彩樣本,則可避免對像素著色器之調用。
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‧‧‧方法
421‧‧‧步驟
423‧‧‧步驟
425‧‧‧步驟
426‧‧‧步驟
431‧‧‧步驟
432‧‧‧步驟
433‧‧‧步驟
434‧‧‧步驟
435‧‧‧步驟
500‧‧‧管線
520‧‧‧圖形記憶體
522‧‧‧輸入資料
524‧‧‧頂點處理
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‧‧‧色彩樣本
藉由結合隨附圖式考慮以下詳細描述,可容易地理解本揭示案之教示,在圖式中:圖1A至圖1B為描繪根據第一習知混淆方法之圖形再現過程的示意圖。
圖2A至圖2B為描繪根據第二習知抗混淆方法之圖形再現過程的示意圖。
圖3A至圖3C為描繪根據本揭示案之態樣之圖形再現過程的示意圖。
圖4為描繪根據本揭示案之態樣之再現圖形之方法的流程圖。
圖5為描繪根據本揭示案之態樣之圖形再現管線的流程圖。
圖6為描繪根據本揭示案之態樣之圖形再現系統的示意圖。
圖7A至圖7D為根據本揭示案之態樣之光柵化過程及顯示緩衝器的示意圖。
圖8A至圖8D為根據本揭示案之態樣之圖形處理的示意圖。
儘管以下詳細描述含有許多特定細節以用於例示之目的,但是一般技術者將瞭解,對以下細節之許多變化及變更在本發明之範疇內。因此,以下所述本發明之示範性實施例係在對所請求發明沒有任何一般性損失的情況下且對所請求發明不強加限制的情況下闡述。
本揭示案之態樣描述可使對像素著色器之調用減至最低以便改良再現管線中之效率圖形處理系統及方法。在本揭示案之實行方案中,可在基元中取得複數個樣本。樣本可包括深度樣本及色彩樣本兩者,其中在每一像素中深度樣本計數大於色彩樣本計數。當樣本中之至少一 者被覆蓋時,在調用像素著色器來進行著色計算之前可考慮由基元覆蓋的樣本之性質。若至少一樣本被基元覆蓋,但該等樣本全都不是色彩樣本,則可在某些情形下避免對像素著色器之調用。
在習知再現管線中,將調用像素著色器,而不考慮由基元覆蓋的樣本之類型。因此,將進行片段著色計算,且由像素著色器針對片段計算出的色彩值將僅應用於由產生該片段之基元所覆蓋之該等色彩樣本。若在使一些樣本僅用於色彩的習知光柵化期間使用取樣方案,則即使由基元覆蓋的樣本僅為深度樣本仍將調用像素著色器,且計算出的色彩值將被丟棄,因為在像素中將不存在色彩樣本來應用該等計算出的色彩值。
為更好地瞭解本揭示案之某些態樣,在圖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或模板值。在一些實行方案中,判定是否調用像素著色器亦可包括判定像素著色器是否經組配來變更樣本遮罩。在此等實行方案中,可省略早期深度測試,例如,可在用於每一覆蓋樣本的像素著色器之後執行深度測試。在此等情形下,像素著色器可以習知方式加以調用。
圖5描繪根據經組配來實行本揭示案之態樣的再現管線的例示性圖形處理方法500。圖5中所描繪的例示性再現管線可併入圖4之方法400,以便根據本揭示案之態樣來使對像素著色器之調用減至最低。
再現管線500可經組配來再現如描繪場景的影像的圖形,該場景可在虛擬空間(本文中有時被稱為 「場景空間」)中具有較佳三維幾何形狀,但潛在地具有二維幾何形狀。貫穿再現管線,資料可自一或多個記憶體單元經讀取且寫入至一或多個記憶體單元,該一或多個記憶體單元在圖5中大體上指示為圖形記憶體520。圖形記憶體可含有視訊記憶體及/或硬體狀態記憶體,包括在再現管線中所利用的各種緩衝器及/或圖形資源。圖形記憶體520之一或多個單獨記憶體單元可體現為一或多個視訊隨機存取記憶體單元、一或多個快取記憶體、一或多個處理器暫存器等,取決於在再現中之特定階段處的資料之性質。因此,應理解,圖形記憶體520代表在圖形再現管線中所利用的任何處理器可存取記憶體。處理單元(諸如專門GPU)可經組配來在管線中執行各種操作且因此讀取/寫入至圖形記憶體520。
管線之早期階段可包括在場景經光柵化且轉換至螢幕空間以作為適合於在像素顯示裝置上輸出的一組離散畫面元件之前於場景空間中執行的操作。貫穿管線,含於圖形記憶體520中的各種資源可在管線階段處加以利用,且至階段的輸入及輸出可在影像之最終值經判定之前暫時儲存在含於圖形記憶體中的緩衝器中。
再現管線可對輸入資料522操作,該輸入資料可包括由一組頂點定義的一或多個虛擬物件,該組頂點係在場景空間中設置且具有關於場景中之坐標定義的幾何形狀。在再現管線500中所利用的輸入資料522可包括場景幾何形狀之多邊形網格模型,該場景幾何形狀之頂點對 應於根據本揭示案之態樣在再現管線中處理的基元,且初始頂點幾何形狀可在由CPU實行的應用階段期間於圖形記憶體中設置。管線之早期階段可包括在圖5中廣泛地分類為頂點處理階段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、電源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×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中所例示。因為色彩樣本之樣本坐標處的深度值類似於由基元覆蓋的所有該等深度樣本,所以最終顯示像素色彩可有效地得自用於所有該等深度樣本坐標處的像素的色彩樣本,具有由深度樣本提供的高空間精度,該高空間精度避免需要以全解析度著色色彩值。
應注意,雖然以上為取樣方案可如何將許多樣本僅利用於深度的詳細實例,但是此多取樣方案可用於其他目的。例如,可在圖框之間實行時間抗混淆,從而重新建構在不同圖框中之深度樣本處得出的全解析度色彩。多個樣本亦可用於其他抗混淆方案。
本揭示案之額外態樣包括再現圖形之方法,該方法包含:判定在第一像素處的第一基元之樣本覆蓋,其中該第一像素包括複數個樣本,其中該複數個樣本包括一或多個色彩樣本及複數個深度樣本,其中在該判定該樣本覆蓋中判定該第一像素之該複數個樣本包括由該第一基元覆蓋的一或多個覆蓋樣本;判定覆蓋樣本是否包括第一像素之色彩樣本中之至少一者;若該判定判定覆蓋樣本包括色彩樣本中之至少一 者,則對於用於第一基元的第一像素調用像素著色器;以及若該判定判定覆蓋樣本不包括色彩樣本中之至少一者,則並不對於用於第一基元的第一像素調用像素著色器。
另一額外態樣為電腦可讀媒體,該電腦可讀媒體中體現有電腦可執行指令,該等電腦可執行指令在被執行時實行前述方法。
又一態樣為電磁信號或其他信號,該電磁信號或其他信號攜載用於進行前述方法的電腦可讀指令。
另一額外態樣為可自通訊網路下載且/或儲存在電腦可讀媒體及/或微處理器可執行媒體上的電腦程式產品,其特徵在於,該電腦程式產品包含用於實行前述方法的程式碼指令。
雖然以上為本發明之較佳實施例之完整描述,但是有可能使用各種替選方案、修改及等效物。因此,本發明之範疇不應參考以上描述來判定,而是應參考隨附申請專利範圍以及申請專利範圍之等效物之完整範疇來判定。本文所述的任何特徵(無論是否較佳)皆可與本所述的任何其他特徵(無論是否較佳)組合。在以下申請專利範圍中,不定冠詞「一」係指接在該冠詞後面的項目中之一或多者之數量,除非另有明確說明。隨附申請專利範圍不應解釋為包括構件加功能限制,除非在給定請求項中使用用語「用於......之構件」明確地敘述此限制。
Claims (18)
- 一種使用處理單元來再現圖形之方法,該方法包含:當一或多個覆蓋樣本包括一或多個色彩樣本中之至少一者時,對於用於第一基元的第一像素調用像素著色器,其中該第一像素包括複數個樣本,其中該複數個樣本包括該一或多個色彩樣本及複數個深度樣本,其中該第一像素之該複數個樣本包括由該第一基元覆蓋的該一或多個覆蓋樣本;以及當該一或多個覆蓋樣本不包括該一或多個色彩樣本中之至少一者但包括該複數個深度樣本中之至少一個深度樣本時,對於用於該第一基元的該第一像素不調用該像素著色器;針對與色彩樣本相關聯但不與深度樣本相關聯的顯示像素,透過在與該深度樣本相同的深度值處指定色彩樣本的色彩值來得到用於該第一基元的色彩值。
- 如申請專利範圍第1項之方法,其中該第一像素之該一或多個色彩樣本為複數個色彩樣本,且該第一像素之色彩樣本計數小於該第一像素之深度樣本計數。
- 如申請專利範圍第1項之方法,其進一步包含:對於該等覆蓋樣本中之至少一者執行早期深度測試,以判定該等覆蓋樣本是否經深度遮蓋。
- 如申請專利範圍第1項之方法,其進一步包含,在該調用像素著色器之後: 對於針對該第一像素自該第一基元產生的至少一片段執行像素著色器計算。
- 如申請專利範圍第1項之方法,其進一步包含,在該調用像素著色器之後:對於針對該第一像素自該第一基元產生的至少一片段執行像素著色器計算,及在該執行像素著色器計算之後,將在該等像素著色器計算中所計算的至少一片段之至少一色彩值應用於由該第一基元覆蓋的該第一像素之至少一色彩樣本。
- 如申請專利範圍第1項之方法,其中當複數個該等色彩樣本由該基元覆蓋時,該方法進一步包含,在該調用像素著色器之後:分別對於針對由該基元覆蓋的該複數個色彩樣本中之每一者產生的一或多個單個樣本片段執行像素著色器計算,及在該執行像素著色器計算之後,將在該等像素著色器計算中所計算的該等單個樣本片段中之每一者之個別色彩值分別應用於由該第一基元覆蓋的該等色彩樣本中之每一者。
- 如申請專利範圍第1項之方法,其中當複數個該等色彩樣本由該基元覆蓋時,該方法進一步包含,在該調用像素著色器之後:對於針對由該基元覆蓋的該複數個色彩樣本中之每一者產生的一個片段執行像素著色器計算,及 在該執行像素著色器計算之後,將在該等像素著色器計算中所計算的該片段之色彩值應用於由該第一基元覆蓋的該等色彩樣本中之每一者。
- 如申請專利範圍第1項之方法,其中該第一基元為三角形。
- 一種系統,包含:處理器,及記憶體,其耦接至該處理器,其中該處理器經組配來執行再現圖形之方法,該方法包含:當一或多個覆蓋樣本包括一或多個色彩樣本中之至少一者時,對於用於第一基元的第一像素調用像素著色器,其中該第一像素包括複數個樣本,其中該複數個樣本包括該一或多個色彩樣本及複數個深度樣本,其中該第一像素之該複數個樣本包括由該第一基元覆蓋的該一或多個覆蓋樣本;以及當該一或多個覆蓋樣本不包括該一或多個色彩樣本中之至少一者但包括該複數個深度樣本中之至少一個深度樣本時,對於用於該第一基元的該第一像素不調用該像素著色器;針對與色彩樣本相關聯但不與深度樣本相關聯的顯示像素,透過在與該深度樣本相同的深度值處指定色彩樣本的色彩值來得到用於該第一基元的色彩值。
- 如申請專利範圍第9項之系統, 其中該處理器包括中央處理單元(CPU)及圖形處理單元(GPU)。
- 如申請專利範圍第9項之系統,其進一步包含顯示裝置,其中該方法進一步包含將該等圖形呈現在該顯示裝置上。
- 如申請專利範圍第9項之系統,其中該方法進一步包含:對於該等覆蓋樣本中之至少一者執行早期深度測試,以判定該等覆蓋樣本是否經深度遮蓋。
- 如申請專利範圍第9項之系統,其中該第一像素之該一或多個色彩樣本為複數個色彩樣本,且該第一像素之色彩樣本計數小於該第一像素之深度樣本計數。
- 一種圖形處理單元(GPU),包含:記憶體模組;以及以硬體及/或軟體實現的光柵化模組,其經組配來:當由第一基元覆蓋的一或多個覆蓋樣本包括一或多個色彩樣本中之至少一者時,對於用於該第一基元的第一像素調用像素著色器,其中該第一像素包括複數個樣本,其中該複數個樣本包括該一或多個色彩樣本及複數個深度樣本,其中該第一像素之該複數個樣本包括該一或多個覆蓋樣本;以及當該一或多個覆蓋樣本不包括該一或多個色彩樣本中之至少一者但包括該複數個深度樣本中之至少一個深度樣 本時,對於用於該第一基元的該第一像素不調用該像素著色器;針對與色彩樣本相關聯但不與深度樣本相關聯的顯示像素,透過在與該深度樣本相同的深度值處指定色彩樣本的色彩值來得到用於該第一基元的色彩值。
- 如申請專利範圍第14項之GPU,其中該光柵化模組以硬體實現。
- 如申請專利範圍第14項之GPU,其中該光柵化模組進一步經組配來:對於該等覆蓋樣本中之至少一者執行早期深度測試,以判定該等覆蓋樣本中之該至少一者中之每一者是否經深度遮蓋。
- 一種暫時性電腦可讀媒體,該非暫時性電腦可讀媒體中體現有處理器可執行指令,其中該等指令藉由處理器之執行引起該處理器實行再現圖形之方法,該方法包含:當由第一基元覆蓋的一或多個覆蓋樣本包括一或多個色彩樣本中之至少一者時,對於用於該第一基元的第一像素調用像素著色器,其中該第一像素包括複數個樣本,其中該複數個樣本包括該一或多個色彩樣本及複數個深度樣本,其中該第一像素之該複數個樣本包括該一或多個覆蓋樣本;以及當該一或多個覆蓋樣本不包括該一或多個色彩樣本中之至少一者但包括該複數個深度樣本中之至少一個深度樣 本時,對於用於該第一基元的該第一像素不調用該像素著色器;針對與色彩樣本相關聯但不與深度樣本相關聯的顯示像素,透過在與該深度樣本相同的深度值處指定色彩樣本的色彩值來得到用於該第一基元的色彩值。
- 如申請專利範圍第17項之非暫時性電腦可讀媒體,其中該方法進一步包含:對於該等覆蓋樣本中之至少一者執行早期深度測試,以判定該等覆蓋樣本中之該至少一者中之每一者是否經深度遮蓋。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/246,064 US9865074B2 (en) | 2014-04-05 | 2014-04-05 | Method for efficient construction of high resolution display buffers |
US14/246,064 | 2014-04-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201816724A TW201816724A (zh) | 2018-05-01 |
TWI636423B true TWI636423B (zh) | 2018-09-21 |
Family
ID=54210221
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106131046A TWI636423B (zh) | 2014-04-05 | 2015-03-19 | 用於高解析度顯示緩衝器之有效構造之方法 |
TW104108773A TWI634517B (zh) | 2014-04-05 | 2015-03-19 | 用於高解析度顯示緩衝器之有效構造之方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104108773A TWI634517B (zh) | 2014-04-05 | 2015-03-19 | 用於高解析度顯示緩衝器之有效構造之方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9865074B2 (zh) |
EP (2) | EP3129977B1 (zh) |
JP (1) | JP6342513B2 (zh) |
KR (1) | KR101952633B1 (zh) |
TW (2) | TWI636423B (zh) |
WO (1) | WO2015153162A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
EP3872767A1 (en) | 2014-04-05 | 2021-09-01 | Sony Interactive Entertainment LLC | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters |
US10783696B2 (en) | 2014-04-05 | 2020-09-22 | Sony Interactive Entertainment LLC | Gradient adjustment for texture mapping to non-orthonormal grid |
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 |
GB2537137B (en) * | 2015-04-08 | 2021-02-17 | Advanced Risc Mach Ltd | Graphics processing systems |
US11403099B2 (en) | 2015-07-27 | 2022-08-02 | Sony Interactive Entertainment LLC | Backward compatibility by restriction of hardware resources |
US10915333B2 (en) | 2016-03-30 | 2021-02-09 | Sony Interactive Entertainment Inc. | Deriving application-specific operating parameters for backwards compatiblity |
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 |
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
US10943389B2 (en) * | 2016-12-09 | 2021-03-09 | Advanced Micro Devices, Inc. | Removing or identifying overlapping fragments after z-culling |
GB2560306B (en) * | 2017-03-01 | 2020-07-08 | Sony Interactive Entertainment Inc | Image processing |
US10134115B2 (en) * | 2017-04-17 | 2018-11-20 | Intel Corporation | Progressive multisample anti-aliasing |
US10417810B2 (en) * | 2017-05-31 | 2019-09-17 | Verizon Patent And Licensing Inc. | Methods and systems for rendering virtual reality content based on two-dimensional (“2D”) captured imagery of a three-dimensional (“3D”) scene |
US10504281B2 (en) * | 2017-06-30 | 2019-12-10 | Microsoft Technology Licensing, Llc | Tracking pixel lineage in variable rate shading |
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 |
CN111192351B (zh) * | 2018-11-14 | 2023-06-02 | 芯原微电子(上海)股份有限公司 | 边缘抗锯齿的图形处理方法、系统、存储介质及装置 |
US11010954B2 (en) * | 2018-12-11 | 2021-05-18 | Samsung Electronics Co., Ltd. | Efficient redundant coverage discard mechanism to reduce pixel shader work in a tile-based graphics rendering pipeline |
CN111988554B (zh) * | 2019-05-22 | 2022-05-27 | 瑞芯微电子股份有限公司 | 一种显示设备多分区数据的采样方法及终端 |
US11798218B2 (en) | 2020-08-03 | 2023-10-24 | Samsung Electronics Co., Ltd. | Methods and apparatus for pixel packing |
US11748933B2 (en) | 2020-08-03 | 2023-09-05 | Samsung Electronics Co., Ltd. | Method for performing shader occupancy for small primitives |
US11216916B1 (en) * | 2020-10-09 | 2022-01-04 | Nvidia Corporation | History clamping for denoising dynamic ray-traced scenes using temporal accumulation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7511717B1 (en) * | 2005-07-15 | 2009-03-31 | Nvidia Corporation | Antialiasing using hybrid supersampling-multisampling |
Family Cites Families (102)
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 |
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 |
WO1999041706A1 (en) | 1998-02-17 | 1999-08-19 | Sun Microsystems, Inc. | Graphics system with variable resolution super-sampling |
US6496187B1 (en) | 1998-02-17 | 2002-12-17 | Sun Microsystems, Inc. | Graphics system configured to perform parallel sample to pixel calculation |
DE69901542T2 (de) | 1998-02-17 | 2002-12-05 | Sun Microsystems, Inc. | Verfahren und vorrichtung zur abschätzung der leistung eines grafischen systems von polygonen |
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 |
US6552723B1 (en) | 1998-08-20 | 2003-04-22 | Apple Computer, Inc. | System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline |
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 |
US6731298B1 (en) | 2000-10-02 | 2004-05-04 | Nvidia Corporation | System, method and article of manufacture for z-texture mapping |
JP2002260003A (ja) | 2001-03-02 | 2002-09-13 | Hitachi Ltd | 映像表示装置 |
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 |
US7081893B2 (en) | 2001-10-10 | 2006-07-25 | Sony Computer Entertainment America Inc. | System and method for point pushing to render polygons in environments with changing levels of detail |
US7046245B2 (en) | 2001-10-10 | 2006-05-16 | Sony Computer Entertainment America Inc. | System and method for environment mapping |
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 |
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 |
US7817829B2 (en) | 2004-03-15 | 2010-10-19 | Koninklijke Philips Electronics N.V. | Image visualization |
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 |
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 |
US20070018988A1 (en) | 2005-07-20 | 2007-01-25 | Michael Guthe | Method and applications for rasterization of non-simple polygons and curved boundary representations |
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 |
US8149242B2 (en) | 2006-11-10 | 2012-04-03 | Sony Computer Entertainment Inc. | Graphics processing apparatus, graphics library module and graphics processing method |
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 |
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 |
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 |
EP2510494B1 (en) | 2009-12-11 | 2021-12-22 | Leica Biosystems Imaging, Inc. | Improved signal to noise ratio in digital pathology image analysis |
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 |
CN105847781B (zh) | 2010-07-21 | 2018-03-20 | 杜比实验室特许公司 | 用于多层帧兼容视频传输的解码方法 |
US20130300740A1 (en) | 2010-09-13 | 2013-11-14 | 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 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
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 |
US10559123B2 (en) | 2012-04-04 | 2020-02-11 | 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 |
US10102603B2 (en) | 2013-06-10 | 2018-10-16 | Sony Interactive Entertainment Inc. | Scheme for compressing vertex shader output parameters |
US10096079B2 (en) | 2013-06-10 | 2018-10-09 | Sony Interactive Entertainment Inc. | Fragment shaders perform vertex shader computations |
US10176621B2 (en) | 2013-06-10 | 2019-01-08 | Sony Interactive Entertainment Inc. | Using compute shaders as front end for vertex shaders |
US10134102B2 (en) | 2013-06-10 | 2018-11-20 | Sony Interactive Entertainment Inc. | Graphics processing hardware for using compute shaders as front end for vertex shaders |
US10976986B2 (en) | 2013-09-24 | 2021-04-13 | Blackberry Limited | System and method for forwarding an application user interface |
US9652882B2 (en) | 2014-04-05 | 2017-05-16 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location |
EP3872767A1 (en) | 2014-04-05 | 2021-09-01 | Sony Interactive Entertainment LLC | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters |
US9836816B2 (en) | 2014-04-05 | 2017-12-05 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport |
US9495790B2 (en) | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping to non-orthonormal grid |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
US9760113B2 (en) | 2015-02-20 | 2017-09-12 | Sony Interactive Entertainment America Llc | Backward compatibility through use of spoof clock and fine grain frequency control |
US10235219B2 (en) | 2015-07-27 | 2019-03-19 | Sony Interactive Entertainment America Llc | Backward compatibility by algorithm matching, disabling features, or throttling performance |
US11403099B2 (en) | 2015-07-27 | 2022-08-02 | Sony Interactive Entertainment LLC | Backward compatibility by restriction of hardware resources |
US9892024B2 (en) | 2015-11-02 | 2018-02-13 | Sony Interactive Entertainment America Llc | Backward compatibility testing of software in a mode that disrupts timing |
-
2014
- 2014-04-05 US US14/246,064 patent/US9865074B2/en active Active
-
2015
- 2015-03-19 TW TW106131046A patent/TWI636423B/zh active
- 2015-03-19 TW TW104108773A patent/TWI634517B/zh active
- 2015-03-23 EP EP15773048.2A patent/EP3129977B1/en active Active
- 2015-03-23 EP EP20162759.3A patent/EP3693929B1/en active Active
- 2015-03-23 WO PCT/US2015/021951 patent/WO2015153162A1/en active Application Filing
- 2015-03-23 JP JP2016560646A patent/JP6342513B2/ja active Active
- 2015-03-23 KR KR1020167027633A patent/KR101952633B1/ko active IP Right Grant
-
2017
- 2017-12-07 US US15/835,341 patent/US10438396B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7511717B1 (en) * | 2005-07-15 | 2009-03-31 | Nvidia Corporation | Antialiasing using hybrid supersampling-multisampling |
Non-Patent Citations (2)
Title |
---|
「關於Early-Z Culling」網路文章、CSDN網站、日期:2008年12月7日、網址:http://blog.csdn.net/cywater2000/article/details/3465300 * |
「關於Early-Z Culling」網路文章、CSDN網站、日期:2008年12月7日、網址:http://blog.csdn.net/cywater2000/article/details/3465300。 |
Also Published As
Publication number | Publication date |
---|---|
WO2015153162A1 (en) | 2015-10-08 |
JP6342513B2 (ja) | 2018-06-13 |
EP3693929A1 (en) | 2020-08-12 |
EP3129977A4 (en) | 2017-11-15 |
US10438396B2 (en) | 2019-10-08 |
TW201539374A (zh) | 2015-10-16 |
TW201816724A (zh) | 2018-05-01 |
US9865074B2 (en) | 2018-01-09 |
JP2017517056A (ja) | 2017-06-22 |
KR20170016318A (ko) | 2017-02-13 |
US20180101977A1 (en) | 2018-04-12 |
EP3129977B1 (en) | 2020-07-29 |
EP3129977A1 (en) | 2017-02-15 |
TWI634517B (zh) | 2018-09-01 |
US20150287231A1 (en) | 2015-10-08 |
KR101952633B1 (ko) | 2019-02-27 |
EP3693929B1 (en) | 2024-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI636423B (zh) | 用於高解析度顯示緩衝器之有效構造之方法 | |
TWI618030B (zh) | 藉由追蹤物件及/或基元識別符的圖形處理增強之方法及系統,圖形處理單元及非暫時性電腦可讀媒體 | |
JP6392370B2 (ja) | 様々なレンダリング及びラスタライゼーション・パラメータ下でビューポートを変化させるための、オブジェクトの効率的再レンダリング方法 | |
TWI602148B (zh) | 用於紋理映射至非正交網格的梯度調整 | |
TWI570665B (zh) | 電腦圖形系統及圖形處理方法 | |
US7742060B2 (en) | Sampling methods suited for graphics hardware acceleration | |
US20120280973A1 (en) | Texturing in graphics hardware | |
KR20190100194A (ko) | 타일식 아키텍처들에서의 포비티드 렌더링 | |
JP2017517025A (ja) | 複数のレンダーターゲット内でアクティブカラーサンプルカウントを変更することによりスクリーンの位置によって有効解像度を変動させること | |
US7817165B1 (en) | Selecting real sample locations for ownership of virtual sample locations in a computer graphics system | |
US8004522B1 (en) | Using coverage information in computer graphics | |
US20210104088A1 (en) | Method for efficient construction of high resolution display buffers |