TW201447812A - 有共用邊緣的先印後蓋路徑描繪 - Google Patents
有共用邊緣的先印後蓋路徑描繪 Download PDFInfo
- Publication number
- TW201447812A TW201447812A TW102148282A TW102148282A TW201447812A TW 201447812 A TW201447812 A TW 201447812A TW 102148282 A TW102148282 A TW 102148282A TW 102148282 A TW102148282 A TW 102148282A TW 201447812 A TW201447812 A TW 201447812A
- Authority
- TW
- Taiwan
- Prior art keywords
- edge
- unit
- sample
- path
- graphics
- Prior art date
Links
- 238000009877 rendering Methods 0.000 title abstract description 18
- 230000015654 memory Effects 0.000 claims abstract description 114
- 238000000034 method Methods 0.000 claims abstract description 60
- 238000012545 processing Methods 0.000 claims description 288
- 238000005070 sampling Methods 0.000 claims description 90
- 239000000872 buffer Substances 0.000 claims description 47
- 230000000873 masking effect Effects 0.000 claims description 28
- 238000010420 art technique Methods 0.000 abstract description 3
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 239000000523 sample Substances 0.000 description 123
- 238000010586 diagram Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 13
- 239000000463 material Substances 0.000 description 12
- 239000012634 fragment Substances 0.000 description 11
- 238000003860 storage Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 238000002156 mixing Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 239000011449 brick Substances 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000004049 embossing Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000037452 priming Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000010453 quartz Substances 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- 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
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/04—Context-preserving transformations, e.g. by using an importance map
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本發明的一實施例包括用於格柵化包括在路徑之間被共用之邊緣的描繪基元的技術。一格柵化單元會針對每一個邊緣來選擇且套用來自多個取樣規則中的一取樣規則。倘若該邊緣被共用的話,那麼,該選定的取樣規則會讓和單一顏色取樣相關聯的每一群遮蓋取樣被視為完全在該邊緣內側或完全在該邊緣外側。結果,在每個像素的遮蓋取樣數超過每個像素的顏色取樣數時所造成的合併瑕疵可以減少。在先前技術中,減少此些合併瑕疵通常涉及將每個像素的顏色取樣數提高至等於每個像素的遮蓋取樣數。優點係,已揭示技術可利用降低顏色取樣與遮蓋取樣比的演算法來達成描繪,從而減少記憶體消耗與記憶體頻寬使用,其並不會導致和共用邊緣相關聯的合併瑕疵。
Description
本發明大體上和圖形處理有關,且更明確地說,和有共用邊緣的先印後蓋路徑描繪有關。
路徑描繪係一種解析度相依的2維描繪型式,經常稱為「向量圖形」,其係數種重要描繪標準的基礎。此些標準包括Postscript、Java 2D、蘋果的Quartz 2D、OpenVG、PDF、TrueType字型、OpenType字型、Postscript字型、HTML 5 Canvas、Scalable Vector Graphics(SVG)網頁格式、微軟的Silverlight及用於互動式網頁體驗的Adobe Flash、微軟的XML規格(XPS,”XML specification”)、Office檔案格式(包括PowerPoint)中的圖形、Adobe Illustrator插圖、以及更多。
在路徑描繪中,一應用軟體通常會指定一景象作為可以不變顏色來塗色的一連串解析度不相依外形(稱為路徑)、線性或徑向梯度、或是影像。許多圖形處理單元(GPU,”Graphics processing unit”)支援經由二次作業的描繪處理來描繪此些路徑,稱為「先印後蓋」。首先,在路徑模印作業中,圖形處理單元會產生一模印緩衝器來表示哪些取樣(也就是,每一個像素內的位置)被該路徑遮蓋。其次,在路徑遮蓋作業中,圖形處理單元會產生該路徑的遮蓋幾何並且致能模印測試以遮蔽該遮蓋幾何。一般來說,圖形處理單元會以特定種類的保守包圍幾何來施行該遮蓋幾何,例如,包圍盒(也就是,兩個三角形)、凸殼、或是雷同的構造。因為模印測試在路徑遮蓋作業中被致能,所以,圖形處理單元會棄置未被該路徑遮蓋的任何斷片並將殘存的斷片寫至顏色緩衝器作為已處理的圖形資料。
於先印後蓋路徑描繪的某些方式中,圖形處理單元會為每個
像素保留N個遮蓋取樣以及為每個像素保留M個顏色取樣,其中,N大於M。在運算中,圖形處理單元會以每個像素N個遮蓋取樣來判斷該路徑的遮蓋範圍。接著,在路徑遮蓋作業期間,在圖形處理單元實施摻合及顏色寫入運算之前,圖形處理單元會縮減遮蓋取樣的數量至顏色取樣的數量。值得一提的係,在此縮減運算期間,圖形處理單元可以選擇和單一顏色取樣相關聯的一群N/M個遮蓋取樣並且以被遮蓋的該些N/M個遮蓋取樣的比例為基礎來產生該顏色取樣的不透明值。此描繪方式的其中一項限制為縮減多個遮蓋取樣所組成的群至單一顏色取樣可能在不同路徑共用的邊緣處產生合併瑕疵。明確地說,縮減運算會合併遮蓋的布林概念和不透明的分數值。
舉例來說,假設有4個遮蓋取樣對應於每一個顏色取樣(N=4且M=1),背景顏色為藍色,且圖形處理單元被配置成用以描繪一陰陽符號-先描繪陰部分。進一步言之,假設該符號的陰部分為黃色,該符號的陽部分為綠色,以及陰陽部分共用該兩個部分之間邊界處的邊緣。最後,假設和一特殊顏色取樣相關聯的遮蓋取樣中的兩個取樣被該符號的黃色陰部分遮蓋,以及和該特殊顏色取樣相關聯的遮蓋取樣中的兩個取樣被該符號的綠色陽部分遮蓋。在描繪該符號的陰部分時,圖形處理單元會指派一中間淡藍色給該特殊顏色取樣-和該符號的陰部分相關聯的黃色中的50%摻合和該背景相關聯的藍色中的50%。而後,在描繪該符號的陽部分時,圖形處理單元會指派一不同的淡藍色給該特殊顏色取樣-和該符號的陽部分相關聯的綠色中的50%摻合和該中間淡藍色中的50%。此背景顏色溢流會減損被顯示影像的品質。明確地說,一部分藍色背景色可在該陰陽符號的陰陽部分之間的邊界處被看見(倘若該陰陽符號的陰陽部分之間有間隙的話)。
於減少和不同路徑之間共用邊緣相關聯的合併瑕疵的其中一種方式中,顏色取樣的數量會提高以匹配遮蓋取樣的數量。於此些施行方式中,遮蓋係針對每一個顏色取樣分開保留為一布林值並且不會和不透明合併。結果,描繪包括在不同路徑之間被共用之邊緣的景象便不會產生肇因於此些共用邊緣的合併瑕疵。然而,提高顏色取樣的數量會提高記憶
體消耗以及被該顏色緩衝器使用的記憶體頻寬。因為圖形處理單元的區域記憶體容量以及相關聯的記憶體頻寬兩者皆為有限,所以,記憶體消耗或記憶體頻寬使用的任何提高通常並不樂見。
據此,需要一種用於描繪在不同路徑之間被共用之邊緣的更有效方式。
本發明的一實施例提出一種用以格柵化圖形基元的方法。該方法包括:判斷和一圖形基元之第一邊緣相關聯的格柵化狀態;以該格柵化狀態為基礎從多個取樣規則中選擇一第一取樣規則;以該第一取樣規則為基礎判斷一第一遮蓋取樣是否被視為在該第一邊緣內側;以及以該第一遮蓋取樣是否被視為在該第一邊緣內側為基礎判斷該第一遮蓋取樣是否被視為被該圖形基元遮蓋。
已揭方式的其中一項優點係,處理單元可以實施節省記憶體的路徑描繪運算,不會產生可能和在不同路徑之間被共用之邊緣相關聯的合併瑕疵。因為該格柵化單元將和一特殊顏色取樣相關聯的每一群遮蓋取樣視為完全在每一個共用邊緣內側或外側,所以,每個像素的遮蓋取樣數量可已超過顏色取樣數量,不會在被顯示影像中導致背景溢流。結果,該處理單元不會招致和先前技術相關聯的高記憶體消耗及記憶體頻寬,其中,顏色取樣數量會提高以匹配遮蓋取樣數量。
100‧‧‧電腦系統
102‧‧‧中央處理單元
103‧‧‧裝置驅動器
104‧‧‧系統記憶體
105‧‧‧記憶體橋
106‧‧‧通訊路徑
107‧‧‧輸入/輸出橋
108‧‧‧輸入裝置
110‧‧‧顯示裝置
112‧‧‧平行處理子系統
113‧‧‧通訊路徑
114‧‧‧系統碟
116‧‧‧切換器
118‧‧‧網路轉接器
120‧‧‧外接卡
121‧‧‧外接卡
125‧‧‧應用軟體
202‧‧‧平行處理單元
204‧‧‧平行處理記憶體
205‧‧‧輸入/輸出單元
206‧‧‧主介面
207‧‧‧任務/工作單元
208(0)‧‧‧一般處理叢
208(1)‧‧‧一般處理叢
208(C-1)‧‧‧一般處理叢
210‧‧‧縱橫交叉單元
212‧‧‧前端
214‧‧‧記憶體介面
215(0)‧‧‧分割單元
215(1)‧‧‧分割單元
215(D-1)‧‧‧分割單元
220(0)‧‧‧動態隨機存取記憶體
220(1)‧‧‧動態隨機存取記憶體
220(D-1)‧‧‧動態隨機存取記憶體
230‧‧‧處理叢陣列
350‧‧‧圖形處理管路
352‧‧‧世界空間管路
354‧‧‧螢幕空間管路
355‧‧‧基元分配器
360‧‧‧頂點屬性擷取單元
365‧‧‧頂點、棋盤化、幾何處理單元
370‧‧‧觀視埠縮放、揀選、以及剪輯單元
375‧‧‧拼磚單元
380‧‧‧建立單元
385‧‧‧格柵化單元
390‧‧‧像素描影單元
395‧‧‧格柵運算單元
403‧‧‧路徑幾何
405‧‧‧遮蓋幾何
445‧‧‧模印資料
455‧‧‧已描繪的路徑
455‧‧‧單獨取樣邊緣規則
465‧‧‧主要取樣邊緣規則
475‧‧‧任何取樣邊緣規則
485‧‧‧路徑模印作業
495‧‧‧路徑遮蓋作業
500‧‧‧三角扇
510‧‧‧共用邊緣
520‧‧‧非共用邊緣
530‧‧‧內部邊緣
610‧‧‧取樣群
615‧‧‧次要取樣
617‧‧‧主要取樣
705-0‧‧‧三角形
705-1‧‧‧三角形
715-0‧‧‧頂點
715-1‧‧‧頂點
715-2‧‧‧頂點
715-3‧‧‧頂點
720‧‧‧順時鐘順序
750‧‧‧索引緩衝器登錄項
752‧‧‧邊緣旗標
754‧‧‧頂點索引
760‧‧‧索引緩衝器
800‧‧‧方法
802-822‧‧‧步驟
900‧‧‧方法
902-916‧‧‧步驟
為能夠詳細理解上面述及的本發明特點,本文已參考實施例更詳盡說明在上面扼要概述過之本發明,其一部分圖解在附圖中。然而,應該注意的係,附圖僅圖解本發明的典型實施例,且所以,不被視為限制本發明的範疇,因為本發明承認其它等效實施例。
第一圖為被配置成用以施行本發明之一或更多項觀點的電腦系統的方塊圖;第二圖為根據本發明一實施例包括在第一圖之平行處理子系統中的平行處理單元的方塊圖;第三圖為根據本發明一實施例可被施行在第二圖之平行處
理單元內的圖形處理管路的概念圖;第四圖為根據本發明一實施例第二圖之平行處理單元可被配置成以施行的路徑模印作業與路徑遮蓋作業的概念圖;第五圖為根據本發明一實施例第三圖之圖形處理管路可被配置成以描繪的三角扇的概念圖;第六圖為根據本發明一實施例第三圖之格柵化單元可被配置成以施行的一取樣群及多個取樣邊緣規則的概念圖;第七圖為根據本發明一實施例的索引緩衝器的概念圖;第八A至八B圖為根據本發明一實施例用於格柵化三角形的方法步驟的流程圖;以及第九圖為根據本發明一實施例用於描繪路徑的方法步驟的流程圖。
在下面的說明中將提出許多明確細節,以便更透澈理解本發明。然而,熟習本技術的人士便明白,即使沒有此些明確細節中的一或更多者仍可實行本發明。
第一圖為被配置成用以施行本發明之一或更多項觀點的電腦系統100的方塊圖。如圖示,電腦系統100包括,但是並不受限於,一中央處理單元(CPU,”Central processing unit”)102以及一系統記憶體104,它們透過一記憶體橋105與一通訊路徑113被耦合至一平行處理子系統112。記憶體橋105進一步透過一通訊路徑106被耦合至I/O(輸入/輸出)橋107,而且輸入/輸出橋107接著會被耦合至一切換器116。
在運算中,輸入/輸出橋107被配置成用以從輸入裝置108(例如,鍵盤或滑鼠)處接收使用者輸入資訊並且透過通訊路徑106和記憶體橋105將該輸入轉送至中央處理單元102以進行處理。切換器116被配置成用以提供輸入/輸出橋107和電腦系統100的其它器件(例如,網路轉接器118以及各種外接卡120與121)之間的連接。
圖中亦顯示,輸入/輸出橋107被耦合至系統碟114,其可被配置成用以儲存讓中央處理單元102及平行處理子系統112使用的內容與應用軟體與資料。一般來說,系統碟114會非揮發儲存應用程式與資料並且可以包括固定式或抽取式硬碟機;快閃記憶體裝置;小型光碟唯讀記憶體(CD-ROM,”Compact disc read only memory);數位多功能光碟唯讀記憶體(DVD-ROM,”Digital versatile disc-ROM”);藍光;高畫質數位多功能光碟(HD-DVD,”High definition DVD”);或是其它磁性、光學、或固態儲存裝置。最後,圖中並未顯示;不過,其它器件亦可被連接至輸入/輸出橋107,例如,通用序列匯流排或其它埠連接、小型光碟機、數位多功能光碟機、底片記錄裝置、以及類似物。
於各種實施例中,記憶體橋105可以為北橋晶片,輸入/輸出橋107可以為南橋晶片。此外,通訊路徑106與113以及電腦系統100內的其它通訊路徑可以利用任何技術合宜的協定來施行,包括,但是並不受限於,加速圖形埠(AGP,”Accelerated graphics port”)、HyperTransport、或是本技術中已知的任何其它匯流排或點對點通訊協定。
於某些實施例中,平行處理子系統112包含一圖形子系統,其傳遞像素至一顯示裝置110,顯示裝置110可為任何習知陰極射線管、液晶顯示器、發光二極體顯示、或是類似物。於此實施例中,平行處理子系統112併入已最佳化用於圖形與視訊處理的電路系統,舉例來說,包括視訊輸出電路系統。如下面在第二圖中更詳細說明,此電路系統可併入在平行處理子系統112內所包括的一或更多個平行處理單元(PPU,”Parallel processing unit”)中。於其它實施例中,平行處理子系統112併入已最佳化用於一般用途及/或計算處理的電路系統。再次地,此電路系統可併入在平行處理子系統112內所包括之被配置成用以實施此一般用途及/或計算運算的一或更多個平行處理單元中。又,於其它實施例中,平行處理子系統112內所包括的一或更多個平行處理單元可以被配置成用以實施圖形處理、一般用途處理、以及計算處理運算。系統記憶體104包括至少一裝置驅動器103,其被配置成用以管理平行處理子系統112內一或更多個平行處理單元的處理運算。系統記憶體104還包括一應用軟體125,其在中央處理單元
102上執行並且可以發出控制該些平行處理單元之運算的命令。
於各種實施例中,平行處理子系統112可以和第一圖的一或更多個其它元件整合形成單一系統。舉例來說,平行處理子系統112可以和中央處理單元102以及其它連接電路整合在單一晶片上而形成晶片上系統(SoC,”System-on-Chip”)。
應該明白的係,本文中所示的系統為解釋性並且可以變更和修正。連接拓樸(包含連接橋的數量和排列、中央處理單元102的數量、以及平行處理子系統112的數量)可如同所希望的一般修正。舉例來說,於某些實施例中,系統記憶體104直接被連接至中央處理單元102,並非經由記憶體橋105,而其它裝置則透過記憶體橋105和中央處理單元102來與系統記憶體104通訊。於其它替代拓樸中,平行處理子系統112可以被連接至輸入/輸出橋107或是直接被連接至中央處理單元102,而非被連接至記憶體橋105。又,於其它實施例中,輸入/輸出橋107和記憶體橋105可被整合在單一晶片之中,而非一或更多個離散裝置。最後,於特定實施例中可能並不存在第一圖中所示的一或更多個器件。舉例來說,切換器116會被省略,而網路轉接器118和外接卡120、121則直接連接至輸入/輸出橋107。
第二圖為根據本發明一實施例之第一圖的平行處理子系統112中所包括的平行處理單元202的方塊圖形。第二圖中雖然僅顯示一個平行處理單元202;不過,如上所示,平行處理子系統112可以包括任何數量的平行處理單元202。如圖示,平行處理單元202被耦合至一區域平行處理(PP,”Parallel processing”)記憶體204。平行處理單元202和平行處理記憶體204可以利用一或更多個積體電路裝置來施行,例如,可程式處理器、特定應用積體電路(ASIC,”Application specific integrated circuit”)、或是記憶體裝置、或是任何其它技術上可行的方式。
於某些實施例中,平行處理單元202包含一圖形處理單元(GPU),其可被配置成用以施行一圖形處理管路,用於以中央處理單元102及/或系統記憶體104所供應的圖形資料為基礎實施和產生像素資料有關的各項運算。當處理圖形資料時,區域平行處理記憶體204會被當作圖形記憶體,儲存一或更多個習知訊框緩衝器以及在必要時儲存一或更多個其它
描繪目標。除此之外,區域平行處理記憶體204還可用於儲存及更新像素資料並且傳遞最終像素資料或顯示訊框給顯示裝置110顯示。於某些實施例中,平行處理單元202還可被配置成用於一般用途處理及計算運算。
在運算中,中央處理單元102為電腦系統100的主處理器,用以控制及協調其它系統器件的運算。明確地說,中央處理單元102發出控制平行處理單元202之運算的命令。於某些實施例中,中央處理單元102將用於平行處理單元202的一命令串寫至一資料結構(第一圖或第二圖中並未清楚顯示),該資料結構可能位於系統記憶體104、平行處理記憶體204、或是中央處理單元102和平行處理單元202兩者可存取的另一儲存位置中。一指向該資料結構的指標會被寫至一推移緩衝器,用以起始處理該資料結構中的命令串。平行處理單元202會從該推移緩衝器處讀取命令串並且接著以中央處理單元102之運算為基準不同步地執行多個命令。於多個推移緩衝器被產生的實施例中,每一個推移緩衝器的執行優先權可由一應用程式透過裝置驅動器103來指定,以便控制不同推移緩衝器的排程。
圖中還顯示,平行處理單元202包括一I/O(輸入/輸出)單元205,其透過通訊路徑113與記憶體橋105來與電腦系統100的其餘部分通訊。輸入/輸出單元205會產生用於在通訊路徑113上傳送的封包(或其它訊號)並且也會從通訊路徑113處接收所有外來封包(或其它訊號),將該些外來封包導引至平行處理單元202的適當器件。舉例來說,和處理任務有關的命令可被導引至一主介面206,而和記憶體運算有關的命令(舉例來說,從平行處理記憶體204處讀取或寫至平行處理記憶體204)則可被導引至記憶體縱橫交叉單元210。主介面206會讀取每一個推移緩衝器並且將儲存在推移緩衝器中的命令串傳送至一前端212。
如上面配合第一圖所提,平行處理單元202與電腦系統100之其餘部分的連接可以改變。於某些實施例中,平行處理子系統112(其包括至少一平行處理單元202)被施行為一可插入電腦系統100的擴充槽之中的外接卡。於其它實施例中,平行處理單元202會與一匯流排橋(例如,記憶體橋105或輸入/輸出橋107)整合在單一晶片上。又,於其它實施例中,平行處理單元202中的一部分或全部元件可以連同中央處理單元102被併
入在單一積體電路或晶片上系統(SoC)中。
在運算中,前端212傳送接收自主介面206的處理任務給任務/工作單元207內的工作分配單元(未顯示)。該工作分配單元接收指向被編碼為任務元資料(TMD,”Task metadata”)並且儲存在記憶體中之處理任務的指標。指向任務元資料的指標被併入於儲存成推移緩衝器的命令串中並且被前端單元212自主介面206接收。可被編碼為任務元資料的處理任務包括和要被處理的資料相關聯的索引以及定義該資料如何被處理的狀態參數與命令。舉例來說,該些狀態參數與命令會定義要在該資料上執行的程式。任務/工作單元207從前端212處接收任務並且在起始該些任務元資料中每一者所指定的處理任務前確保一般處理叢208被配置成有效狀態。其可針對被用來排程處理任務之執行的每一個任務元資料指定一優先權。處理任務亦可被處理叢陣列230接收。視情況,任務元資料可以包括一控制該任務元資料是否被加至一處理任務清單(或者指向該些處理任務的指標的清單)之頭部或尾部的參數,從而對執行優先權提供另一層控制。
平行處理單元202有利地施行一以一處理叢陣列230為基礎的高度平行處理架構,處理叢陣列230包括一組C個一般處理叢(GPC,”General processing cluster”)208,其中,C>1。每一個一般處理叢208皆能夠同時執行大量(舉例來說,數百個或數千個)的緒線,其中,每一條緒線為一程式的實例。於各種應用中,不同的一般處理叢208可被指派用於處理不同類型的程式或用於實施不同類型的計算。一般處理叢208之指派可相依於因每一種類型的程式或計算所產生的工作量而改變。
記憶體介面214包括一組D個分割單元215,其中,D>1。每一個分割單元215被耦合至存在於平行處理記憶體204內的一或更多個動態隨機存取記憶體(DRAM,”Dynamic access memory”)220。於其中一實施例中,分割單元215的數量等於動態隨機存取記憶體220的數量,且每一個分割單元215被耦合至一不同的動態隨機存取記憶體220。於其它實施例中,分割單元215的數量可以不等於動態隨機存取記憶體220的數量。熟習本技術的人士便會明白,動態隨機存取記憶體220可以其它技術合宜的儲存裝置來取代。在運算中,各種描繪目標(例如,紋理圖或訊框緩衝器)
可被儲存在多個動態隨機存取記憶體220,從而允許分割單元215平行寫入每一個描繪目標中的多個部分,以便有效使用平行處理記憶體204的可用頻寬。
一給定一般處理叢208可以處理要被寫至平行處理記憶體204內任何動態隨機存取記憶體220的資料。縱橫交叉單元210被配置成用以將每一個一般處理叢208的輸出繞送至任何分割單元215的輸入或繞送至另一一般處理叢208,以便進一步處理。一般處理叢208透過縱橫交叉單元210來與記憶體介面214通訊,用以讀取自或寫入至各種外部動態隨機存取記憶體220。於一實施例中,除了透過記憶體介面214連接至平行處理記憶體204之外,縱橫交叉單元210還有一連接線通往輸入/輸出單元205,從而讓在該些不同的一般處理叢208內的處理核和系統記憶體104或非平行處理單元202區域性的其它記憶體通訊。於第二圖的實施例中,縱橫交叉單元210直接連接輸入/輸出單元205。於各種實施例中,縱橫交叉單元210可以使用虛擬通道來分離一般處理叢208和分割單元215之間的流量串。
再次地,一般處理叢208會被程式化用以執行和各式各樣應用有關的處理任務,包括,但是並不受限於,線性與非線性資料轉換、視訊及/或音頻資料之過濾、模擬運算(舉例來說,套用物理學定律來決定物體的位置、速度、以及其它屬性)、影像描繪運算(舉例來說,棋盤化描影程式、頂點描影程式、幾何描影程式、及/或像素/斷片描影程式)、一般計算運算等。在運算中,平行處理單元202被配置成用以將資料從系統記憶體104及/或區域平行處理記憶體204處傳輸至一或更多個晶片上記憶體單元、處理該資料,並且將結果資料寫回至系統記憶體104及/或平行處理記憶體204。該結果資料接著會於該處讓其它系統器件(包括中央處理單元102、平行處理子系統112內的另一平行處理單元202、或是電腦系統100內的另一平行處理子系統112)存取。
如上面提及,任何數量的平行處理單元202可以被併入在一平行處理子系統112中。舉例來說,多個平行處理單元202可以被提供在單一外接卡上,或者,多個外接卡可以被連接至通訊路徑113,或者,平行
處理單元202中的一或更多者可以被整合至一橋晶片之中。一多平行處理單元系統中的平行處理單元202可以和彼此完全相同或不同。舉例來說,不同的平行處理單元202可以有不同數量的處理核及/或不同數量的平行處理記憶體204。在有多個平行處理單元202存在的施行方式中,該些平行處理單元可以平行運算,以高於和單一平行處理單元202一起運算之可能總處理量的總處理量來處理資料。併入一或更多個平行處理單元202的系統可以被施行在各式各樣配置和外形因子中,包括,但是並不受限於,桌上型電腦、膝上型電腦、手持式個人電腦或是其它手持式裝置、伺服器、工作站、遊戲機、嵌入式系統、以及類似物。
第三圖為根據本發明一實施例可被施行在第二圖之平行處理單元202內的圖形處理管路350的概念圖。如圖示,圖形處理管路350包括,但是並不受限於:一基元分配器(PD,”Primitive distributor”)355;一頂點屬性擷取單元(VAF)360;一頂點、棋盤化、幾何處理單元(VTG)365;一觀視埠縮放、揀選、以及剪輯單元(VPC)370;一拼磚單元375;一建立單元(建立)380;一格柵化(格柵)單元385;一斷片處理單元,亦稱為像素描影單元(PS)390;以及一格柵運算單元(ROP)395。
基元分配器355會從前端212處收集和高階表面、圖形基元、以及類似物相關聯的頂點資料,並且傳送該頂點資料至頂點屬性擷取單元360。
頂點屬性擷取單元360會從共用的記憶體處取得和每一個外來頂點相關聯的頂點屬性並且將該頂點資料連同該些相關聯的頂點屬性一起儲存在共用的記憶體之中。
頂點、棋盤化、幾何處理單元365係一可程式化執行單元,其被配置成用以執行頂點描影程式、棋盤化程式、以及幾何程式。此些程式會處理接收自頂點屬性擷取單元360的頂點資料與頂點屬性並且產生圖形基元用以在圖形處理管路350內進一步處理。圖中雖然並未清楚顯示;但是於某些實施例中,頂點、棋盤化、幾何處理單元365可以包括下面中
的一或更多者:頂點處理單元、棋盤化初始處理單元、任務產生單元、任務分配器、拓樸產生單元、棋盤化處理單元、以及幾何處理單元。
頂點處理單元係一可程式化執行單元,其被配置成用以執行頂點描影程式,照明與轉換頂點描影程式所指定的頂點資料。舉例來說,該頂點處理單元可以被程式化用以將頂點資料從一基於物體的座標代表(物體空間)轉換成一交替式座標系統,例如,世界空間或正規化裝置座標(NDC,”Normalized device coordinate”)空間。該頂點處理單元可以讀取被頂點屬性擷取單元儲存在共用記憶體中的頂點資料與頂點屬性並且可以處理該頂點資料與該些頂點屬性。該頂點處理單元會將已處理的頂點儲存在共用記憶體中。
棋盤化初始處理單元係一可程式化執行單元,其被配置成用以執行棋盤化初始描影程式。該棋盤化初始處理單元會處理頂點處理單元所產生的頂點並且產生稱為補片的圖形基元。該棋盤化初始處理單元還會產生各種補片屬性。該棋盤化初始處理單元接著會儲存該補片資料與該些補片屬性在共用記憶體中。於某些實施例中,該棋盤化初始描影程式可被稱為皮殼描影器或棋盤化控制描影器。
任務產生單元會從共用記憶體處取得頂點與補片的資料及屬性。該任務產生單元會產生用於處理該些頂點與補片的任務,以便讓該圖形處理管路350中的後級進行處理。
任務分配器會重新分配該任務產生單元所產生的任務。在一圖形處理管路350與另一圖形處理管路350之間由頂點描影程式與棋盤化初始程式的各種實例產生的任務可以明顯不同。該任務分配器會重新分配此些任務,使得每一條圖形處理管路350在後面管路級期間有近似相同的工作量。
拓樸產生單元會取得任務分配器所分配的任務。該拓樸產生單元會為該些頂點(包括和補片相關聯的頂點)編索引並且計算棋盤化頂點的(U,V)座標以及連接該些已棋盤化頂點的索引用以形成圖形基元。該拓樸產生單元接著會將已編索引的頂點儲存在共用記憶體中。
棋盤化處理單元係一可程式化執行單元,其被配置成用以執
行棋盤化描影程式。該棋盤化處理單元會從共用記憶體處讀取輸入資料並將輸出資料寫至共用記憶體。共用記憶體中的輸出資料會被傳至下一個描影級(幾何處理單元),作為輸入資料。於某些實施例中,該棋盤化描影程式可被稱為域描影器或棋盤化估算描影器。
幾何處理單元係一可程式化執行單元,其被配置成用以執行幾何描影程式,從而轉換圖形基元。多個頂點會被聚集用以建構用於處理的圖形基元,其中,圖形基元包括三角形、線段、點、以及類似物。舉例來說,該棋盤化處理單元可以被程式化用以將該些圖形基元細分成一或更多個新圖形基元並且計算被用來格柵化該些新圖形基元的參數,例如,平面方程式係數。
該幾何處理單元會傳送用以指定新圖形基元的參數與頂點至觀視埠縮放、揀選、以及剪輯單元370。該幾何處理單元可以讀取被儲存在共用記憶體中的資料,用於處理幾何資料。觀視埠縮放、揀選、以及剪輯單元370會實施剪輯、揀選、以及觀視埠轉換,用以判斷哪些圖形基元可能在最終已描繪影像終看見以及哪些圖形基元可能看不見。觀視埠縮放、揀選、以及剪輯單元370接著會傳送已處理的圖形基元給拼磚單元375。
拼磚單元375係一圖形基元排序引擎,其存在於一世界空間管路352與一螢幕空間管路354之間,如本文中的進一步說明。圖形基元會先在世界空間管路352中被處理並且接著被傳送至拼磚單元375。螢幕空間被分成多個快取拼磚,其中,每一個快取拼磚皆和螢幕空間的一部分相關聯。拼磚單元375會為每一個圖形基元辨識出和該圖形基元相交的快取拼磚集,本文中稱為「拼磚處理」。在拼磚特定數量的圖形基元之後,拼磚單元375會以一快取拼磚為基礎來處理該些圖形基元,其中,和一特殊快取拼磚相關聯的圖形基元會被傳送至建立單元380。拼磚單元375會以每次一個快取拼磚的方式傳送圖形基元給建立單元380。和多個快取拼磚相交的圖形基元通常會在世界空間管路352中被處理一次,但是接著會多次被傳送至螢幕空間管路354。
此項技術會在螢幕空間管路354中的處理期間改良快取記憶體局部性,其中,和一第一快取拼磚相關聯的多個記憶體運算會存取L2
快取或任何其它技術上可行快取記憶體的一區域,其可以在該第一快取拼磚的螢幕空間處理期間保持常駐。一旦和該第一快取拼磚相關聯的圖形基元被螢幕空間管路354處理之後,L2快取中和該第一快取拼磚相關聯的部分便可以被沖刷且該拼磚單元可以傳送和一第二快取拼磚相關聯的圖形基元。和一第二快取拼磚相關聯的多個記憶體運算接著可以存取L2快取中可以在該第二快取拼磚的螢幕空間處理期間保持常駐的區域。據此,送往L2快取及送往描繪目標的整體記憶體流量可以減少。於某些實施例中,不論和該圖形基元相交的螢幕空間中的快取拼磚的數量為何,世界空間計算都會針對一給定圖形基元被實施一次。
建立單元380會透過拼磚單元375從觀視埠縮放、揀選、以及剪輯單元370處接收頂點資料並且計算和圖形基元相關聯的參數,包括,但是並不受限於,該圖形基元的每一個頂點處的顏色數值、表面法線向量、以及透明性數值。該建立單元380接著會傳送已處理的圖形基元給格柵化單元385。
格柵化單元385會掃描轉換該些新的圖形基元並且傳送斷片與遮蓋資料給像素描影單元390。據此,格柵化單元385可以被配置成用以實施z揀選與其它基於z的最佳化。
像素描影單元390係一可程式化執行單元,其被配置成用以執行斷片描影程式,用以轉換如斷片描影程式之指定般接收自格柵化單元385的斷片。斷片描影程式可以在像素位準的粒度來描影斷片,其中,此些描影程式可被稱為像素描影程式。或者,斷片描影程式可以在取樣位準的粒度來描影斷片,其中,每一個像素包括多個取樣以及每一個取樣代表一像素的一部分。或者,斷片描影程式可以任何其它技術上可行的粒度來描影斷片,其相依於已程式化的取樣率。
於各種實施例中,斷片處理單元460可以被程式化用以實施諸如透視修正、紋理映射、描影、摻合、以及類似的運算,用以產生會被傳送至格柵運算單元395的已描影斷片。像素描影單元390可以讀取被儲存在共用記憶體中的資料。
格柵運算單元395係一會實施格柵運算(例如,模印、z測
試、摻合、以及類似運算)並且透過記憶體介面214傳送像素資料成為要儲存在圖形記憶體中之經處理圖形資料的處理單元,其中,圖形記憶體通常被建構為一或更多個描繪目標。經處理的圖形資料可以被儲存在圖形記憶體、平行處理記憶體204、或是系統記憶體104中,用以顯示在顯示裝置110上或是讓中央處理單元102或平行處理子系統112作進一步處理。於某些實施例中,格柵運算單元395被配置成用以壓縮被寫至記憶體的z或顏色資料以及解壓縮讀取自記憶體的z或顏色資料。於各種實施例中,格柵運算單元395可以位在記憶體介面214中、位在一般處理叢208中、位在一般處理叢208外面的處理叢陣列230中、或是位在平行處理單元202內的離散單元(未顯示)中。
圖形處理管路350可以由平行處理單元202內的任何一或更多個處理元件來施行。舉例來說,第二圖一般處理叢208內的其中一個串流多重處理器(未顯示)會被配置成用以實施頂點、棋盤化、幾何處理單元365及像素描影單元390中一或更多者的功能。基元分配器355、頂點屬性擷取單元360、觀視埠縮放、揀選、以及剪輯單元370、拼磚單元375、建立單元380、格柵化單元385、以及格柵運算單元395的功能亦可以由一特殊一般處理叢208內的處理元件配合一對應的分割單元215來實施。或者,圖形處理管路350可以利用用於上列功能中一或更多者的專屬固定功能處理元件來施行。於各種實施例中,平行處理單元202可以被配置成用以施行一或更多個圖形處理管路350。
於某些實施例中,圖形處理管路350可以被分成一世界空間管路352與一螢幕空間管路354。世界空間管路352在三維空間中處理圖形物體,其中,每一個圖形物體相對於其它圖形物體及相對於一三維座標系統的位置為已知。螢幕空間管路354會處理已從該三維座標系統處投射至一二維平面表面(其代表顯示裝置110的表面)上的圖形物體。舉例來說,世界空間管路352會包括圖形處理管路350中從基元分配器355至觀視埠縮放、揀選、以及剪輯單元370的管路級。螢幕空間管路354會包括圖形處理管路350中從建立單元380至格柵運算單元395的管路級。拼磚單元375在世界空間管路352的最後級(也就是,觀視埠縮放、揀選、以及剪輯單元
370)後面。拼磚單元375會在螢幕空間管路354的第一級(也就是,建立單元380)前面。
於某些實施例中,世界空間管路352可以進一步分成一阿爾法階段管路與一貝他階段管路。舉例來說,阿爾法階段管路會包括圖形處理管路350中從基元分配器355至任務產生單元的管路級。貝他階段管路會包括圖形處理管路350中從拓墣產生單元至觀視埠縮放、揀選、以及剪輯單元370的管路級。圖形處理管路350會在阿爾法階段管路中的處理期間實施第一運算集並且在貝他階段管路中的處理期間實施第二運算集。如本文中的用法,一運算集被定義為由單一緒線、一緒線群、或是一起動作的多重緒線群所執行的一或更多個指令。
於具有多條圖形處理管路350的系統中,和一圖形物體集相關聯的頂點資料及頂點屬性可被分割,使得每一條圖形處理管路350在阿爾法階段中有近似相同數額的工作量。阿爾法階段處理可以顯著地擴增頂點資料及頂點屬性的數量,俾使得由任務產生單元所產生的頂點資料及頂點屬性明顯大於由基元分配器355及頂點屬性擷取單元360所處理的頂點資料及頂點屬性。進一步言之,即使於該兩條圖形處理管路350於阿爾法階段管路開始處處理相同數量屬性的情況中,和一圖形處理管路350相關聯的任務產生單元可以產生的頂點資料及頂點屬性的數量仍遠大於和另一圖形處理管路350相關聯的任務產生單元。於此些情況中,任務分配器會重新分配由阿爾法階段管路所產生的屬性,俾使得每一條圖形處理管路350於貝他階段管路開始處有近似相同的工作量。
請注意,如本文中的用法,共用記憶體之引用可以包括任何一或更多個技術上可行的記憶體,其包括,但是並不受限於,一或更多個串流微處理器共用的區域記憶體,或是可透過記憶體介面214存取的記憶體(例如,快取記憶體、平行處理記憶體204、或是系統記憶體104)。也請注意,如本文中的用法,快取記憶體之參考可以包括任何一或更多個技術上可行的記憶體,其包括,但是並不受限於,L1快取、L1.5快取、以及L2快取。
第一圖的應用軟體125可以配置圖形處理管路350成以中央處理單元102及/或系統記憶體104所供應的圖形資料為基礎來實施關於產生像素資料的各種運算。明確地說,應用軟體125可以配置圖形處理管路350成實施關於路徑描繪的運算。如本文中前面概述,路徑描繪為數種重要描繪標準的基礎,例如,HTML 5 Canvas以及SVG。在運算中,平行處理單元202施行先印後蓋路徑描繪,每個像素有N個遮蓋取樣且每個像素有M個顏色取樣,其中,N大於M。一般來說,應用軟體125定義一路徑並且配置平行處理單元202成以兩個連續描繪作業來實施先印後蓋路徑描繪-路徑模印作業與路徑遮蓋作業。
第四圖為根據本發明一實施例第二圖之平行處理單元202可被配置成以施行的路徑模印作業485與路徑遮蓋作業495的概念圖。如本文中前面已揭示,平行處理單元202被配置成用以實施先印後蓋路徑描繪。首先,平行處理單元202會實施路徑模印作業485,從而產生來自模印作業445的模印資料。接著,平行處理單元202會起始路徑遮蓋作業495,從而產生一已描繪的路徑455。
在運算中,第一圖的應用軟體125會指定一路徑並且起始路徑模印作業485。當接收路徑規格時,平行處理單元202會產生一代表該路徑的路徑幾何403。如圖示,觀視埠縮放、揀選、以及剪輯單元370、格柵化單元385、像素描影單元390、以及格柵運算單元395會處理該路徑幾何403,將來自模印作業445的模印資料描繪至一模印緩衝器。於替代實施例中,該平行處理單元可以利用任何組合的任何可用處理單元以任何技術上可行的方式處理該路徑幾何。模印緩衝器中的數值表示哪些遮蓋取樣被該路徑遮蓋。如本文中前面已揭示,平行處理單元202為每個像素保留N個遮蓋取樣以及為每個像素保留M個顏色取樣,其中,N大於M。在路徑模印作業485期間,該些遮蓋取樣會被更新,但是顏色取樣沒有被更新。
在產生來自模印作業445的模印資料之後,平行處理單元202會產生一保守遮蓋該路徑的遮蓋幾何405。如圖示,觀視埠縮放、揀選、以及剪輯單元370、格柵化單元385、像素描影單元390、以及格柵運算單
元395會處理該遮蓋幾何405,描影該些被遮蓋的像素並且產生已描繪的路徑455。於替代實施例中,該平行處理單元可以利用任何組合的任何可用處理單元以任何技術上可行的方式處理該遮蓋幾何。於此處理期間,平行處理單元202會縮減遮蓋取樣的數量至顏色取樣的數量。於某些施行方式中,平行處理單元202會為每一個顏色取樣辨識和該顏色取樣相關聯的一群N/M個遮蓋取樣並且以被遮蓋的該些N/M個遮蓋取樣的比例為基礎來產生該顏色取樣的不透明值。舉例來說,倘若每個像素的遮蓋取樣的數量為16且每個像素的顏色取樣的數量為4的話,那麼,平行處理單元202便會將由4個遮蓋取樣組成的群和每一個顏色取樣產生關聯,且可能的不透明值為0、0.25、0.5、0.75、以及1.0。值得一提的係,平行處理單元202使用模印緩衝器中所包括的來自模印作業445的模印資料棄置未被該路徑遮蓋的任何斷片與遮蓋取樣。平行處理單元202接著會將殘存的斷片寫至顏色緩衝器作為已描繪的路徑455。
如本文中前面已揭示,典型的先前技術平行處理單元可能判斷一顏色取樣在一共用邊緣處僅部分被一圖形基元遮蓋。結果,此些平行處理單元會在該共用邊緣處造成合併瑕疵。相反地,平行處理單元202雖然判斷每一個顏色取樣在每一個共用邊緣處被一圖形基元完全遮蓋或沒有被遮蓋;然而,平行處理單元202亦可判斷一特殊顏色取樣在一未被共用邊緣處僅部分被一圖形基元遮蓋。結果,本文中已揭示的技術會致能平行處理單元202利用多於顏色取樣的遮蓋取樣來有效描繪路徑,同時確保已描繪的路徑不包括和共用邊緣相關聯的合併瑕疵。
第五圖為根據本發明一實施例第三圖之圖形處理管路350可被配置成以描繪的三角扇500的概念圖。如本文中前面已揭示,平行處理單元202被配置成用以描繪路徑幾何403與遮蓋幾何405作為先印後蓋路徑描繪的一部分。三角扇500可以被併入在路徑幾何403與遮蓋幾何405的任一者或兩者中。
如圖示,三角扇500為共用一單一頂點的多個連接三角形的集合。亦如圖示,三角扇500包括共用邊緣510、非共用邊緣520、以及內
部邊緣530。明確地說,共用邊緣510中的每一者亦被併入在另一路徑(未顯示)中。舉例來說,共用邊緣510中的每一者亦可以被併入一不同的圖形基元中。相反地,非共用邊緣520以及內部邊緣530則沒有被併入在任何其它路徑中。該些共用邊緣510可以任何技術上可行方式來辨識。舉例來說,第一圖的應用軟體125可以明確地辨識該些共用邊緣510作為路徑規格的一部分。此外,第一圖的裝置驅動器103還可以指定共用邊緣510作為處理該路徑規格的一部分。
如圖示,內部邊緣530為三角扇500內部的邊緣。該些內部邊緣530中的每一者會在被併入於該三角扇500中的相連三角扇之間被共用。該些內部邊緣530可以任何技術上可行方式來辨識。舉例來說,該些內部邊緣530可以三角扇500的規格為基礎來辨識。
於其中一實施例中,在路徑模印作業485期間,平行處理單元202以不同於以非共用邊緣520及內部邊緣530為基準的遮蓋範圍的方式判斷以共用邊緣510為基準的遮蓋範圍。而後,在路徑遮蓋作業495期間,平行處理單元202以不同於以共用邊緣510及非共用邊緣520為基準的遮蓋範圍的方式判斷以內部邊緣530為基準的遮蓋範圍。於替代實施例中,該平行處理單元可被配置成用以辨識任何數量的其它邊緣特徵,且而後,以此些邊緣特徵為基礎來修正描繪過程。舉例來說,於某些替代實施例中,在路徑遮蓋作業期間,平行處理單元在判斷遮蓋範圍時不會區分共用邊緣、非共用邊緣、以及內部邊緣。
熟習本技術的人士便會明瞭,三角扇500為圖形處理管路350可被配置成用以描繪的一特殊圖形基元的範例。其它圖形基元(例如,三角帶)亦可以包括共用邊緣510、非共用邊緣520、以及內部邊緣530。此些圖形基元會由平行處理單元202以雷同的方式來處理。
第六圖為根據本發明一實施例,第三圖之格柵化單元385可被配置成以施行的一取樣群610及多個取樣邊緣規則的概念圖。如本文中前面已揭示,平行處理單元202支援每個像素N個遮蓋取樣以及每個像素M個顏色取樣,其中,N大於M。如圖示,平行處理單元202會為每一個顏色取樣辨識由和該顏色取樣相關聯的N/M個遮蓋取樣組成的取樣群
610。進一步言之,平行處理單元202會指定該取樣群610中所包括的其中一個遮蓋取樣作為主要取樣617,並且指定該取樣群610中所包括的其餘遮蓋取樣作為次要取樣615。
如圖示,第六圖將取樣群610繪成虛線方形,將主要取樣617繪有粗虛線框,並且將次要取樣615繪有細虛線框。進一步言之,第六圖將被遮蓋的取樣繪成有填滿並且將未被遮蓋的取樣繪成沒有填滿。同樣如圖示,該些取樣群610中的每一者皆包括一個單一主要取樣617以及三個次要取樣615。電腦系統100可以判斷該些遮蓋取樣的位置並且以任何技術上可行方式來指定該主要遮蓋取樣617。舉例來說,裝置驅動器103可以判斷該些遮蓋取樣的位置並且指定每一個取樣群610中所包括的第一遮蓋取樣為主要遮蓋取樣617。然而,針對每一個取樣群610,電腦系統100會在多條路徑中以決定性且一貫性的方式來選擇對應的主要取樣617。於替代實施例中,該取樣群可以包括任何數量(包括零)的次要取樣。
優點係,於其中一實施例中,格柵化單元385被配置成以和每一個邊緣相關聯的特徵為基礎在不同的取樣邊緣規則之間作選擇。請注意,取樣邊緣規則在本文中亦稱為「取樣規則」,它們係可套用於一遮蓋取樣用以判斷該遮蓋取樣是否被視為在一邊緣內側的格柵化規則。針對每一邊緣,格柵化單元385會套用該選定的取樣邊緣規則至該邊緣,用以判斷該取樣群610中所包括的遮蓋取樣的遮蓋範圍。該些取樣邊緣規則包括,但是並不受限於,單獨取樣邊緣規則455、主要取樣邊緣規則465、以及任何取樣邊緣規則475。如在習知的格柵化運算中,格柵化單元385藉由判斷和一特殊基元之每一個邊緣有關的遮蓋結果的相交或結合來判斷和該基元有關的取樣群610的遮蓋範圍。
在套用單獨取樣邊緣規則455中,格柵化單元385會獨立於該取樣群610中所包括之其它遮蓋取樣來判斷該取樣群610中所包括的每一個遮蓋取樣的遮蓋範圍。明確地說,該格柵化單元385以主要取樣617相對於邊緣的位置為基礎來判斷主要取樣617的遮蓋範圍。同樣地,格柵化單元385會針對每一個次要取樣615,以次要取樣615相對於邊緣的位置為基礎來判斷該次要取樣615的遮蓋範圍。
如圖示,格柵化單元385套用單獨取樣邊緣規則455至位於一三角形的其中一個邊緣上的兩個取樣群610。在左手邊的取樣群610中,格柵化單元385判斷其中一個次要取樣615的位置在該三角形的邊緣內側且因而被遮蓋。在右手邊的取樣群610中,格柵化單元385判斷主要取樣617以及三個次要取樣615中的其中兩個的位置位在該三角形的邊緣內側且因而被遮蓋。
在套用主要取樣邊緣規則465中,格柵化單元385會以主要取樣617相對於該邊緣的位置為基礎來判斷該取樣群610中所包括的所有遮蓋取樣的遮蓋範圍。結果,格柵化單元385判斷該取樣群610中所包括的所有遮蓋取樣皆被遮蓋或者該取樣群610中所包括的所有遮蓋取樣沒有被遮蓋。優點係,依此方式判斷遮蓋範圍會確保在和該取樣群610相關聯的顏色取樣中遮蓋範圍不會從(N/M)個遮蓋取樣縮減至單一個顏色取樣期間和不透明性合併。
如圖示,格柵化單元385套用主要取樣邊緣規則465至位於一三角形的其中一個邊緣上的兩個取樣群610。在左手邊的取樣群610中,格柵化單元385判斷主要取樣617的位置在該三角形的邊緣外側且因而該主要取樣617及所有次要取樣615皆沒有被遮蓋。在右手邊的取樣群610中,格柵化單元385判斷主要取樣617的位置位在該三角形的邊緣內側且因而該主要取樣617及所有次要取樣615皆被遮蓋。
在套用任何取樣邊緣規則475中,倘若格柵化單元385判斷該主要取樣617或是任何次要取樣615的位置相對於該邊緣在基元內側的話,那麼,格柵化單元385會判斷所有遮蓋取樣皆被遮蓋。依此方式判斷遮蓋範圍會確保在和該取樣群610相關聯的顏色取樣中遮蓋範圍不會從(N/M)個遮蓋取樣縮減至單一個顏色取樣期間和不透明性合併。值得一提的係,任何取樣邊緣規則475的保守性大於單獨取樣邊緣規則455及主要取樣邊緣規則465。
如圖示,格柵化單元385套用任何取樣邊緣規則475至位於一三角形的其中一個邊緣上的兩個取樣群610。在左手邊的取樣群610中,
格柵化單元385判斷該四個遮蓋取樣中其中一個的位置在該三角形的邊緣內側且因而該主要取樣617及所有次要取樣615皆被遮蓋。在右手邊的取樣群610中,格柵化單元385判斷該四個遮蓋取樣中其中三個的位置在該三角形的邊緣內側且因而該主要取樣617及所有次要取樣615皆被遮蓋。
再次地,格柵化單元385可被配置成以一基元的邊緣的特徵為基礎套用不同的取樣邊緣規則至該邊緣。進一步言之,格柵化單元385可被配置成以平行處理單元202究竟正在執行路徑模印作業485或路徑遮蓋作業495為基礎來選擇不同的邊緣規則。配合第六圖所述的範例雖然圖解以單一邊緣為基準的遮蓋範圍;不過,格柵化單元385仍可藉由判斷和一特殊基元之每一個邊緣有關的遮蓋結果的相交來判斷和該基元有關的取樣群610的遮蓋範圍。
於其中一實施例中,在路徑模印作業485期間,格柵化單元385套用單獨取樣邊緣規則455至非共用邊緣520及內部邊緣530。相反地,格柵化單元385套用主要取樣邊緣規則465至共用邊緣510。因為格柵化單元385以共用邊緣510為基準判斷每一個取樣群610完全被遮蓋或完全沒有被遮蓋,所以,先前技術中和共用邊緣相關聯的合併瑕疵可以減少。
在路徑遮蓋作業495期間,格柵化單元385套用任何取樣邊緣規則475至非共用邊緣520及共用邊緣510,以及套用主要取樣邊緣規則465至內部邊緣530。再次地,因為格柵化單元385以共用邊緣510為基準判斷每一個取樣群610完全被遮蓋或完全沒有被遮蓋,所以,先前技術中和共用邊緣相關聯的合併瑕疵可以減少。進一步言之,藉由套用主要取樣邊緣規則465至內部邊緣530,格柵化單元385可在路徑遮蓋作業495期間避免雙格柵化。
於本發明的某些實施例中,電腦系統100可以配置平行處理單元202成以每條路徑為基礎有效地套用主要取樣邊緣規則465。明確地說,倘若電腦系統100判斷一路徑中所包括的任何邊緣為共用邊緣510的話,那麼,電腦系統100便會配置平行處理單元202成以主要取樣617的位置為基礎來判斷整個取樣群610的遮蓋範圍。
於其中一實施例中,倘若第一圖的裝置驅動器103判斷一路
徑包括共用邊緣510的話,那麼,裝置驅動器103會在格柵化該路徑時共置每一個取樣群610中所包括的遮蓋取樣的位置。更明確地說,在格柵化單元385格柵化和此路徑相關聯的一基元之前,裝置驅動器103會重新程式化所有次要取樣615的位置以便匹配相關聯的主要取樣617的位置。結果,格柵化單元385會針對每一個取樣群610將單一位置和所有遮蓋取樣產生關聯。在格柵化單元385格柵化該基元之後,裝置驅動器103會恢復該些次要取樣615的位置至原來指派的位置。熟習本技術的人士便會明瞭,當平行處理單元202處理全部包括共用邊緣510的一基元序列時,涉及共置與恢復次要取樣615之位置的運算可以減少。
於另一實施例中,倘若電腦系統100判斷一路徑包括共用邊緣510的話,電腦系統100可以配置像素描影單元390成用以透過一取樣遮罩將單一輸出遮蓋範圍指派至該取樣群610中所包括的所有取樣。在運算中,像素描影單元390會選擇主要取樣617的輸出遮蓋範圍,指派該選定的遮蓋範圍至每一個相關聯的次要取樣615,以及寫入對應的取樣遮罩。
第七圖為根據本發明一實施例的索引緩衝器760的概念圖。如本技術中所熟知,索引緩衝器760可以用來減少用於將圖形基元儲存為有索引幾何描繪之一部分的記憶體。
在運算中,一圖形基元可以由索引緩衝器760中所包括的一索引緩衝器登錄項750序列來代表。如圖示,每一個索引緩衝器登錄項750皆包括一邊緣旗標752與一頂點索引754。一般來說,每一個索引緩衝器登錄項750總共包括N個位元,最有意義的M個位元儲存邊緣旗標752而剩餘的(N-M)個位元儲存頂點緩衝器索引754。如同習知的有索引幾何描繪,頂點索引754係包括每一頂點資料的頂點緩衝器(未顯示)之中的一種索引。然而,在先前技術方式中,每一個索引緩衝器登錄項中所包括的全部N個位元通常會被分派用於儲存該頂點索引。優點係,透過再利用每一個索引緩衝器登錄項750的最有意義位元來代表邊緣旗標752,除了儲存透過頂點索引754來存取的每一頂點資料以外,每一個索引緩衝器登錄項750還可以儲存每一邊緣資料。相反地,習知技術則通常在每一個邊緣中複製頂點資料。
舉例來說,如圖示,三角形705-0可以由三個頂點715-0、715-1、以及715-2以順時鐘順序720來定義。同樣如圖示,三角形705-1可以由三個頂點715-3、715-0、以及715-2以順時鐘順序720來定義。進一步言之,連接頂點715-0與頂點715-2的邊緣在多條路徑之間被共用。如圖示,索引緩衝器760利用8位元的索引緩衝器登錄項750來代表三角形705-0與705-1,其中,最有意義位元儲存邊緣旗標752且剩餘的7個位元儲存頂點索引754。明確地說,數值「1」的邊緣旗標752表示源自該對應頂點索引754的圖形基元邊緣係共用邊緣510中的其中一者。
為進一步最佳化記憶體用法,邊緣旗標752的語意可以相依於描繪作業而改變。於範例索引緩衝器760中,平行處理單元202被配置成用以施行路徑模印作業485,而一已啟動的邊緣旗標752則表示一特殊共用邊緣510的原始頂點715。相反地,倘若平行處理單元202被配置成用以施行路徑遮蓋作業495的話,那麼,一已啟動的邊緣旗標752則表示一特殊內部邊緣530的原始頂點715。
於替代實施例中,可以保留任何數量的位元給邊緣旗標,且邊緣旗標可以代表和邊緣相關聯的任何資料。於某些實施例中,該格柵化單元可以被配置成以該邊緣旗標為基礎在兩個取樣邊緣規則之間作選擇。於其它實施例中,該邊緣旗標可以代表該邊緣的數個不同特徵,例如,共用相對於非共用以及內部相對於外部。熟習本技術的人士便瞭解,本發明的實施例包括試圖以索引緩衝器中所包括的位元在格柵化運算期間指導選擇取樣邊緣規則的任何技術。
第八A至八B圖為根據本發明一實施例用於格柵化三角形的方法步驟的流程圖。該些方法步驟雖然參考第一至七圖的系統來說明;不過,熟習本技術的人士便瞭解,被配置成以任何順序施行該些方法步驟的任何系統皆落在本發明的範疇內。
如圖示,方法800始於步驟802,其中,格柵化單元385接收一輸入三角形作為路徑模印作業485的一部分。在步驟804處,格柵化單元385選擇一由多個遮蓋取樣組成的特殊取樣群610,並且初始化一相關聯的主要遮蓋值以及相關聯的次要遮蓋值為數值「1」。該主要遮蓋值以及
每一個次要遮蓋值代表該相關聯的遮蓋取樣是否視為被該輸入三角形遮蓋。如本文中前面已揭示,平行處理單元202為每個像素保留N個遮蓋取樣以及為每個像素保留M個顏色取樣,其中,N大於M。每一個取樣群610皆和一特殊顏色取樣相關聯。進一步言之,該取樣群610中的(N/M)個遮蓋取樣中的其中一個為主要取樣617且剩餘的遮蓋取樣為次要取樣615。電腦系統100可以以任何技術上可行方式來選擇該主要取樣617。然而,對每一個顏色取樣來說,該電腦系統會在多條路徑中以決定性且一貫性的方式來選擇對應的主要取樣617。值得一提的係,次要遮蓋值的數量等於次要取樣615的數量。
在步驟806處,格柵化單元385選擇該輸入三角形中所包括的一第一邊緣。在步驟808處,格柵化單元385相對於該選定邊緣估算該主要取樣617。倘若格柵化單元385相對於該選定邊緣判斷該主要取樣617的位置在該輸入三角形內側的話,那麼,格柵化單元385便設定一主要邊緣遮蓋值為「1」。相反地,倘若格柵化單元385相對於該選定邊緣判斷該主要取樣617的位置在該輸入三角形外側的話,那麼,格柵化單元385便設定該主要邊緣遮蓋值為「0」。一般來說,該主要邊緣遮蓋值代表該主要取樣617是否被視為在該輸入三角形的該選定邊緣內側。在步驟810處,倘若格柵化單元385判斷該選定邊緣並非共用邊緣510中其中一者的話,那麼,方法800會前往步驟812。格柵化單元385可以任何技術上可行方式判斷該選定邊緣是否為共用邊緣510中其中一者。舉例來說,於某些實施例中,格柵化單元385可以在邊緣旗標752上實施讀取運算,用以判斷該邊緣旗標752是否被啟動。在步驟812處,格柵化單元385套用單獨取樣邊緣規則455至該選定邊緣。在運算中,格柵化單元385會針對每一個次要取樣615以該次要取樣615相對於該選定邊緣的位置是否在該輸入三角形內側為基礎來設定對應次要邊緣遮蓋值。一般來說,次要邊緣遮蓋值代表該次要取樣615是否被視為在該輸入三角形的該選定邊緣內側。接著,方法800會前往步驟816。
倘若格柵化單元385在步驟810處判斷該選定邊緣係該些共用邊緣510中其中一者的話,那麼,方法800會前往步驟814。在步驟814
處,格柵化單元385套用主要取樣邊緣規則465至該選定邊緣。在運算中,格柵化單元385會針對每一個次要取樣615設定對應次要邊緣遮蓋值用以匹配主要邊緣遮蓋值。優點係,藉由判斷該取樣群610完全被該輸入三角形遮蓋或完全沒有被遮蓋,格柵化單元385可為和共用邊緣510相關聯的顏色取樣施行布林概念的遮蓋。
在步驟816處,格柵化單元385在該主要邊緣遮蓋值與該主要遮蓋值之間實施邏輯性的及運算。依此方式,格柵化單元385會以任何前面每一邊緣遮蓋值來組成該選定邊緣的遮蓋範圍。在步驟818處,格柵化單元385在該次要邊緣遮蓋值與該次要遮蓋值之間實施邏輯性的及運算。在步驟820處,倘若格柵化單元385判斷該選定邊緣並非該輸入三角形中所包括的第三邊緣的話,那麼,格柵化單元385會前往步驟822。
在步驟822處,格柵化單元385會選擇該輸入三角形中所包括的下一個邊緣,且方法800會返回步驟808。格柵化單元385會循環進行步驟808至822,選擇且套用邊緣規則至每一個邊緣,直到格柵化單元385已經處理過該輸入三角形中所包括的全部三個邊緣為止。於替代實施例中,該輸入三角形可以任何輸入基元來取代,而且格柵化單元385會循環進行步驟808至822,直到格柵化單元385已經處理過該輸入基元中所包括的全部邊緣為止。在步驟820處,倘若該選定邊緣係該輸入三角形中所包括的第三邊緣的話,那麼,該主要遮蓋值與該次要遮蓋值便代表該輸入三角形遮蓋該取樣群610。於替代實施例中,格柵化單元385可以平行處理多個取樣群或邊緣。於某些替代實施例中,格柵化單元385可以以任何技術上可行準則(例如,索引緩衝器登錄項750中所包括的其它旗標)來選擇任何格柵化規則。
第九圖為根據本發明一實施例用於描繪路徑的方法步驟的流程圖。該些方法步驟雖然參考第一至七圖的系統來說明;不過,熟習本技術的人士便瞭解,被配置成以任何順序施行該些方法步驟的任何系統皆落在本發明的範疇內。
如圖示,方法900始於步驟902,應用軟體125會於該處規定一路徑。在定義該路徑中,應用軟體125會指定任何共用邊緣510。在步驟
904處,裝置驅動器103判斷該路徑是否包括任何共用邊緣510。裝置驅動器103可以任何技術上可行方式來辨識該路徑中所包括的共用邊緣510。舉例來說,裝置驅動器103可以應用軟體125發出的明確命令為基礎來辨識某些共用邊緣510,並且在產生路徑幾何時辨識其它共用邊緣510。
在步驟906處,倘若裝置驅動器103判斷該路徑包括一或更多個共用邊緣510的話,那麼,方法900會前往步驟908。在步驟908處,裝置驅動器103會針對每一顏色取樣共置該相關聯取樣群610中所包括的遮蓋取樣。更明確地說,裝置驅動器103會針對每一個取樣群610設定所有次要取樣615的位置以便匹配主要取樣617的位置。於替代實施例中,該裝置驅動器可以任何技術上可行方式重新程式化該些遮蓋取樣的位置。在步驟910處,格柵化單元385會處理該路徑。優點係,因為每一個取樣群610和單一位置相關聯,所以,格柵化單元385判斷每一個顏色取樣被每一個圖形基元完全遮蓋或完全沒有被遮蓋。在步驟912處,裝置驅動器103會恢復每一個取樣群610中所包括的次要取樣615的位置,而且方法900會前往步驟916。在步驟916處,像素描影單元390和格柵運算單元395會完成描繪作業,且方法900會結束。於替代實施例中,像素描影單元390和格柵運算單元395會在裝置驅動器103實施步驟912恢復次要取樣615的位置之前,實施步驟916,完成描繪作業。
倘若在步驟906處裝置驅動器103判斷該路徑沒有包括一或更多個共用邊緣510的話,那麼,方法900會前往步驟914。在步驟914處,格柵化單元385會處理該路徑。明確地說,在處理該路徑時,格柵化單元385為每個像素保留N個不同位置的遮蓋取樣以及為每個像素保留M個顏色取樣。接著,方法900會前往步驟916。在步驟916處,像素描影單元390和格柵運算單元395會完成描繪作業,且方法900會結束。
簡言之,於一實例中,該格柵化單元會以和該路徑相關聯的特徵為基礎套用不同的邊緣規則至一基元的邊緣。明確地說,在路徑模印作業中,該格柵化單元係以該邊緣是否在不同路徑之間被共用為基礎來選擇要套用哪一個邊緣規則至每一個邊緣。倘若該邊緣在不同路徑之間被共用的話,那麼,該格柵化單元會套用主要取樣邊緣規則至該邊緣。在套用
主要取樣邊緣規則至該邊緣中,該格柵化單元會以單一遮蓋取樣(主要取樣)的位置為基礎判斷和單一顏色取樣相關聯的一群遮蓋取樣是否全體在該邊緣內側或外側。相反地,倘若該邊緣沒有被共用的話,那麼,該格柵化單元會套用一獨立的取樣邊緣規則至該邊緣。在套用該獨立的取樣邊緣規則至該邊緣中,該格柵化單元會以該遮蓋取樣的位置為基礎判斷每一個遮蓋取樣究竟在該邊緣內側或外側。而後,倘若該格柵化單元針對每一個遮蓋取樣判斷該遮蓋取樣在和該基元相關聯的每一個邊緣內側的話,那麼,該格柵化單元會判斷該遮蓋取樣被該基元遮蓋。
同樣地,在路徑遮蓋作業中,該格柵化單元以該邊緣是否在該基元內部為基礎來選擇要套用哪一個邊緣規則至該基元的每一個邊緣。倘若該邊緣在該基元內部的話,那麼,該格柵化單元會套用主要取樣邊緣規則至該邊緣。相反地,倘若該邊緣不在該基元內部的話,那麼,該格柵化單元會套用任何取樣邊緣規則至該邊緣。在套用該任何取樣邊緣規則至該邊緣中,倘若該格柵化單元判斷和一顏色取樣相關聯的任何遮蓋取樣的位置在該邊緣內側的話,那麼,該格柵化單元會判斷和該顏色取樣相關聯的所有遮蓋取樣都在該邊緣內側。再此地,倘若該格柵化單元針對每一個遮蓋取樣判斷該遮蓋取樣在和該特殊基元相關聯的所有邊緣內側的話,那麼,該格柵化單元會判斷該遮蓋取樣被該基元遮蓋。
於一第二實例中,當描繪有索引的幾何時,該裝置驅動器再次試圖以一索引緩衝器登錄項中所包括的最有意義位元來儲存邊緣旗標。一般來說,一索引緩衝器中所包括的一系列連續的索引緩衝器登錄項會定義一基元。舉例來說,一系列三個連續的索引緩衝器登錄項會定義一三角形基元。該裝置驅動器會指定一N位元索引緩衝器登錄項中的M個位元來儲存邊緣旗標,以及,該索引緩衝器登錄項中的(N-M)個位元來儲存一頂點索引。眾所熟知的係,該頂點索引係含有頂點資料的頂點緩衝器中的索引。在路徑描繪中,邊緣旗標的語意會相依於描繪作業而改變。在路徑模印作業期間,一特殊索引緩衝器登錄項中的一已啟動的最有意義位元表示源自該相關聯頂點索引的基元邊緣在二或更多路徑之間被共用。在路徑遮蓋作業中,一特殊索引緩衝器登錄項中的一已啟動的最有意義位元表示源自該
相關聯頂點索引的基元邊緣在該基元內部。
於一第三實例中,該裝置驅動器可以和該路徑相關聯的特徵為基礎重新程式化次要遮蓋取樣的位置。該裝置驅動器會在該格柵化單元處理路徑作為路徑模印作業或路徑遮蓋作業的一部分之前先實施任何此種重新程式化。明確地說,在格柵化一特殊路徑之前,倘若該裝置驅動器判斷一特殊路徑包括在多條路徑之間被共用的一或更多個邊緣的話,那麼,該裝置驅動器會共置和每一個顏色取樣相關聯的遮蓋取樣位置。在運算中,該裝置驅動器會針對每一個遮蓋取樣群來重新程式化每一個次要取樣位置,用以匹配主要取樣位置。在格柵化單元實施和路徑模印作業或路徑遮蓋作業相關聯的運算之後,該裝置驅動器會恢復該些次要取樣至它們的原來位置。
上面方式的其中一項優點係,和在不同路徑之間被共用的邊緣相關聯的合併瑕疵會減少。明確地說,該格柵化單元針對每一個共用邊緣將和一特殊顏色取樣相關聯的每一群遮蓋取樣設定為被每一個基元完全遮蓋或完全沒有被遮蓋。結果,當描繪時,每個像素的遮蓋取樣多於每個像素的顏色取樣時,格柵化包括共用邊緣的基元便不會產生導致背景溢流的部分遮蓋。進一步言之,相較於提高顏色取樣數量以匹配遮蓋取樣數量的先前技術,描繪時,遮蓋取樣多於顏色取樣會減少記憶體消耗及記憶體頻寬使用。於上面方式的一態樣中,記憶體消耗會藉由再次試圖以索引緩衝器中所包括的位元來儲存邊緣旗標而被進一步最佳化。結果,已揭示的方式可以達成節省記憶體的路徑描繪運算,不會有通常和先前技術相關聯的共用邊緣合併瑕疵。
本發明的一實施例可被施行為用於電腦系統的程式產品。該程式產品中的程式會定義實施例的功能(包括本文中所述的方法)並且能夠被納入各式各樣電腦可讀取儲存媒體中。解釋性的電腦可讀取儲存媒體包括,但是並不受限於:(i)不可寫入儲存媒體(舉例來說,電腦裡面的唯讀記憶體裝置,例如,小型光碟唯讀記憶體(CD-ROM,”Compact disc read only memory)機可讀取的小型光碟唯讀記憶體碟片、快閃記憶體、唯讀記憶體(ROM,”Read only memory”)晶片、或是任何類型的固態非揮發性半導體記
憶體),資訊會被永久儲存其上;以及(ii)可寫入儲存媒體(舉例來說,磁碟機或是硬碟機裡面的軟碟或是任何類型的固態隨機存取半導體記憶體),其上儲存可改變的資訊。
本發明已經參考特定實施例在上面作過說明。然而,熟習本技術的人士便會瞭解,可以對本發明進行各種修正和變更,其並沒有脫離隨附申請專利範圍中所提出之本發明的較廣精神與範疇。據此,前面的說明和圖式應被視為解釋性,而沒有限制意義。
所以,本發明之實施例的範疇由下面的申請專利範圍來定義。
455‧‧‧單獨取樣邊緣規則
465‧‧‧主要取樣邊緣規則
475‧‧‧任何取樣邊緣規則
610‧‧‧取樣群
615‧‧‧次要取樣
617‧‧‧主要取樣
Claims (10)
- 一種用以格柵化圖形基元的電腦實行的方法,該方法包含:判斷和一圖形基元之第一邊緣相關聯的格柵化狀態;以該格柵化狀態為基礎從複數個取樣規則中選擇一第一取樣規則;以該第一取樣規則為基礎判斷一第一遮蓋取樣是否被視為在該第一邊緣內側;以及以該第一遮蓋取樣是否被視為在該第一邊緣內側為基礎判斷該第一遮蓋取樣是否被視為被該圖形基元遮蓋。
- 如申請專利範圍第1項的方法,其中,該圖形基元包含一路徑,以及該格柵化狀態表示該第一邊緣係該路徑的一共用邊緣。
- 如申請專利範圍第1項的方法,其中,該圖形基元包含一路徑,以及該格柵化狀態表示該第一邊緣係該路徑的一非共用邊緣。
- 如申請專利範圍第1項的方法,其中,該圖形基元包含一路徑,以及該格柵化狀態表示該第一邊緣係該路徑的一外部邊緣。
- 如申請專利範圍第1項的方法,其中,判斷該第一遮蓋取樣是否被視為在該第一邊緣內側包含計算該第一遮蓋取樣的位置是否相對於該第一邊緣存在於該圖形基元內。
- 如申請專利範圍第1項的方法,其中,該圖形基元包含一三角形。
- 如申請專利範圍第1項的方法,其中,判斷該第一遮蓋取樣是否視為被該圖形基元遮蓋包含判斷該第一遮蓋取樣是否被視為在該圖形基元的全部三個邊緣內側,該三個邊緣包括該第一邊緣、一第二邊緣、以及一第三邊緣。
- 如申請專利範圍第1項的方法,其進一步包含以該第一遮蓋取樣是否被視為被該圖形基元遮蓋為基礎組成一第一顏色取樣的顏色數值。
- 一種計算裝置,其被配置成用以格柵化圖形基元的方法,該計算裝置包含:一記憶體;一處理單元,其被耦合至該記憶體並且被配置成用以施行一圖形處理管路的至少一部分,其中,該圖形處理管路的該至少一部分被配置 成用以:判斷和一圖形基元之第一邊緣相關聯的格柵化狀態;以該格柵化狀態為基礎從複數個取樣規則中選擇一第一取樣規則;以該第一取樣規則為基礎判斷一第一遮蓋取樣是否被視為在該第一邊緣內側;以及以該第一遮蓋取樣是否被視為在該第一邊緣內側為基礎判斷該第一遮蓋取樣是否被視為被該圖形基元遮蓋。
- 一種處理單元,其被配置成用以施行一圖形處理管路的至少一部分,該圖形處理管路包括一格柵化器,其中,該圖形處理管路的該至少一部分被配置成用以實施下面步驟:剖析和該基元的一第一頂點相關聯的一第一索引;辨識該第一索引中所包括的一第一邊緣旗標與該第一索引中所包括的一第一頂點索引;以該第一頂點索引為基礎來存取一頂點緩衝器,以便讀取和該第一頂點相關聯的資料;以及以該第一邊緣旗標及和該第一頂點相關聯的資料為基礎格柵化該基元的一第一邊緣,其中,該第一邊緣源自該第一頂點。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361799948P | 2013-03-15 | 2013-03-15 | |
US14/028,400 US9418437B2 (en) | 2013-03-15 | 2013-09-16 | Stencil then cover path rendering with shared edges |
US14/028,393 US9466115B2 (en) | 2013-03-15 | 2013-09-16 | Stencil then cover path rendering with shared edges |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201447812A true TW201447812A (zh) | 2014-12-16 |
Family
ID=51525453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102148282A TW201447812A (zh) | 2013-03-15 | 2013-12-25 | 有共用邊緣的先印後蓋路徑描繪 |
Country Status (2)
Country | Link |
---|---|
US (4) | US9342891B2 (zh) |
TW (1) | TW201447812A (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183435B2 (en) * | 2013-12-05 | 2015-11-10 | Oracle International Corporation | Feature generalization using topological model |
US10410081B2 (en) * | 2014-12-23 | 2019-09-10 | Intel Corporation | Method and apparatus for a high throughput rasterizer |
US10535114B2 (en) * | 2015-08-18 | 2020-01-14 | Nvidia Corporation | Controlling multi-pass rendering sequences in a cache tiling architecture |
US10198873B2 (en) * | 2016-09-22 | 2019-02-05 | Apple Inc. | Common geometric primitive associated with multiple geometric primitives |
US10269091B1 (en) * | 2017-11-10 | 2019-04-23 | Apple Inc. | Re-using graphics vertex identifiers for primitive blocks across states |
GB2570173B (en) * | 2018-06-29 | 2020-02-12 | Imagination Tech Ltd | Conservative Rasterization |
CN114494024B (zh) * | 2022-04-13 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备及存储介质 |
US20240005601A1 (en) * | 2022-06-29 | 2024-01-04 | Advanced Micro Devices, Inc. | Hierarchical depth data generation using primitive fusion |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2030022A1 (en) | 1989-11-17 | 1991-05-18 | Brian M. Kelleher | System and method for drawing antialiased polygons |
US6057855A (en) * | 1997-07-02 | 2000-05-02 | Hewlett-Packard Company | Method and apparatus for providing polygon pixel sub-sample information using incremental means |
US6717577B1 (en) * | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
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 |
US7061507B1 (en) * | 2000-11-12 | 2006-06-13 | Bitboys, Inc. | Antialiasing method and apparatus for video applications |
TWI253986B (en) * | 2003-06-24 | 2006-05-01 | Benq Corp | Fluid ejection apparatus |
US7446780B1 (en) * | 2003-08-29 | 2008-11-04 | Nvidia Corporation | Temporal antialiasing in a multisampling graphics pipeline |
US7551174B2 (en) | 2003-12-23 | 2009-06-23 | Via Technologies, Inc. | Method and apparatus for triangle rasterization with clipping and wire-frame mode support |
US7502035B1 (en) * | 2005-12-19 | 2009-03-10 | Nvidia Corporation | Apparatus, system, and method for multi-sample pixel coalescing |
US8390645B1 (en) * | 2005-12-19 | 2013-03-05 | Nvidia Corporation | Method and system for rendering connecting antialiased line segments |
US7564456B1 (en) | 2006-01-13 | 2009-07-21 | Nvidia Corporation | Apparatus and method for raster tile coalescing |
US8237738B1 (en) | 2006-11-02 | 2012-08-07 | Nvidia Corporation | Smooth rasterization of polygonal graphics primitives |
US8947444B1 (en) * | 2008-12-09 | 2015-02-03 | Nvidia Corporation | Distributed vertex attribute fetch |
US20110285736A1 (en) | 2010-05-21 | 2011-11-24 | Kilgard Mark J | Decomposing cubic bèzier segments for tessellation-free stencil filling |
US8860742B2 (en) * | 2011-05-02 | 2014-10-14 | Nvidia Corporation | Coverage caching |
-
2013
- 2013-09-16 US US14/028,421 patent/US9342891B2/en active Active
- 2013-09-16 US US14/028,393 patent/US9466115B2/en active Active
- 2013-09-16 US US14/028,400 patent/US9418437B2/en active Active
- 2013-12-25 TW TW102148282A patent/TW201447812A/zh unknown
-
2016
- 2016-10-10 US US15/289,694 patent/US10083514B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20140267375A1 (en) | 2014-09-18 |
US10083514B2 (en) | 2018-09-25 |
US20170024897A1 (en) | 2017-01-26 |
US20140267374A1 (en) | 2014-09-18 |
US9466115B2 (en) | 2016-10-11 |
US9418437B2 (en) | 2016-08-16 |
US20140267373A1 (en) | 2014-09-18 |
US9342891B2 (en) | 2016-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI515716B (zh) | 具備緩衝區限制處理的世界空間與螢幕空間管線間之圖元重新排序 | |
CN105321199B (zh) | 图形处理流水线及其操作方法与介质 | |
TWI616846B (zh) | 利用以空間及/或時間方式改變取樣圖案之增強型消鋸齒的一種圖形子系統、電腦實施方法及電腦裝置 | |
TWI537870B (zh) | 多重解析度一致性光柵化 | |
TW201447812A (zh) | 有共用邊緣的先印後蓋路徑描繪 | |
CN107038742B (zh) | 屏幕空间管线中的多通道渲染 | |
CN103810669B (zh) | 在统一l2高速缓存中高速缓存经适应性定制大小的高速缓存像素块 | |
TW201432609A (zh) | 已分配的拼貼快取 | |
TW201439975A (zh) | 在光柵操作中處理後置z覆蓋率資料 | |
US9773341B2 (en) | Rendering cover geometry without internal edges | |
US20210158598A1 (en) | Graphics processing systems | |
TWI611373B (zh) | 路徑著色的最佳化三角形拓撲 | |
US10430989B2 (en) | Multi-pass rendering in a screen space pipeline | |
TW201428676A (zh) | 在上游著色器內設定下游著色狀態 | |
CN110084738B (zh) | 在扩展的图形处理管线中表示和处理几何形状的技术 | |
TW201434011A (zh) | 曲面細分及幾何著色器的功率效率屬性處理 | |
CN104050619B (zh) | 具有共享边缘的模板然后覆盖路径渲染 | |
US9767600B2 (en) | Target independent rasterization with multiple color samples |