TWI281639B - Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium - Google Patents
Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium Download PDFInfo
- Publication number
- TWI281639B TWI281639B TW091137284A TW91137284A TWI281639B TW I281639 B TWI281639 B TW I281639B TW 091137284 A TW091137284 A TW 091137284A TW 91137284 A TW91137284 A TW 91137284A TW I281639 B TWI281639 B TW I281639B
- Authority
- TW
- Taiwan
- Prior art keywords
- state
- slot
- tracking
- memory
- state variables
- Prior art date
Links
Classifications
-
- 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
- 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
- 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
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Image Input (AREA)
Description
1281639
技術領域 本發明大致係相關於圖像系統,更特別地係相關於圖像 繪圖系統。 先前技術 電腦圖形系統通常係用以顯示物體的圖像表示於一二 維的視訊顯示螢幕。目前電腦圖形系統能夠提供相當精細 的表現,並且使用於各種應用中。典型電腦圖形系統中, 將要表現在該顯示螢幕上的物體拆成一些圖像基元。基元 係為一圖形顯示的基本組成,可以包含點、線、向量及多 邊形,像疋二角形及四邊形。典型地,一硬體/軟體架構 係實行以繪圖或繪製代表一或更多表示在顯示螢幕上的 物體的視圖的圖像基元。 將被繪圖的三維物體的基元係依據基元資料,利用一主 電腦來定義。例如,當該基元為三角形的時候,該主電腦 足義該基元可以依據其端點的x、¥及z座標,以及每個端 點的紅、綠、及藍色(R、(3及B)彩色數值。額外的基元資 料可以使用於特定的應用。 影像繪圖係為從高程度運用物件描述到用以顯示在某 些顯示裝置上圖形影像的轉換 。例如,影像繪圖的動作會
典型地,所提到可作為一 肩不在一電腦監視器上的影像。 圖像繪圖引擎的硬體裝置可以執 82652-951226.doc
1281639⑺ 行這些圖像處理任務。圖像繪圖引擎一般會將場景繪圖到 一記憶體緩衝區,其隨後會輸出到該圖像輸出裝置,但是 對某些繪圖引擎有可能將其二維輸出直接寫到該輸出裝 置。該圖像繪圖引擎内插該基元資料,以計算代表每個基 元,及每個像素的R、G及B彩色數值的顯示螢幕像素。 一圖像繪圖的系統(或次系統),如同在此所使用,指的 是在應用程式與圖像輸出裝置之間所有的處理階層。一圖 像引擎能夠提供一或更多模式的繪圖,包含區域繪圖。區 域繪圖係藉由獲得最佳化繪圖快取區的利用來試圖增加 整體3 D繪圖的效能,因而降低像素彩色及深度記憶體讀 取/寫入的瓶頸。在區域繪圖中,一螢幕係再分割成一陣 列的區域,及產生用以保持所有的要求以繪圖每個次影像 的基元及狀態設定指令的每個區域的指令槽。每當確定一 基元係相交(或可能相交)一區域時,該基元指令會放在該 區域的槽中。某些基元會相交超過一個區域以上,在該例 中該基元指令係複製於該對應槽中。該程序會持續進行到 將該整個場景排序到該等槽内。在建立由一基元所相交的 每個區域的槽的第一通過之後,會執行一第二區域接著區 域的繪圖通過。特別地,所有區域的槽會被繪圖以產生該 最後的影像。 為了實行一像是區域繪圖的鋪碑繪圖架構,在每個影像 空間區域(即槽)之内的該正確的圖像繪圖狀態變數的維 持係很重要的,因為這會要求其次以在該槽化期間該基元 所遇到的在那時候所存在的圖像狀態,繪圖(在該繪圖相 位期間)每個槽的基元。 82652-951226.doc
1281639 (3) 一種常見將基元與其適當的圖像狀態相關連的方法係 為獨立地保持一份所有所遭遇到的圖像狀態的複本,然後 將每個基元與某些辨識該稍後將用以繪圖該基元的特定 狀態的標籤(即索引)相關連。然而,該保持一獨立狀態表 格的複雜性及載入完整狀態組的成本(要求的記憶體覆蓋 區、等待時間及頻寬),可能是在每個基元之間,係無法 使用於低成本且有頻寬限制(例如整合性)的圖像系統中。 因此有必要提出一種花費較少但更有效率的用以區域 繪圖的圖像狀態管理的方法、裝置及系統。 發明内容 本發明提供一節省成本的機制以利用硬體狀態槽化邏 輯,與產生圖像影像的鋪磚式區域繪圖方法一起使用來追 縱及管理圖像狀態。根據本發明的一實施例,只有該等動 態狀態變數的目前數值係保留在硬體中。在一實施例中, 動態狀態變數包含但是並不限於可能被視為係在基元之 間變化的變數。在典型的場景期間保持定數或是幾乎不變 的狀態變數一般係排除不算。該組的動態狀態變數係再分 成次群組。每個狀態次群組係與一單一槽陣列的追蹤位元 有關。每當在該槽化相位期間遇到一狀態改變時,該對應 於該相關的狀態群組的追蹤位元會設定所有槽。在將一基 元放到一槽中之前,該相關於該槽的追蹤位元會被檢查, 及該對應於設定追蹤位元的目前狀態會在該基元之前插 入到該槽中。該槽的追蹤位元則會被清除。 如同在下面的詳細討論,本發明能夠最佳化區域繪圖支 援,因為本發明可以不需要追蹤在該驅動器軟體中的狀態 82652-951226.doc
1281639 (4) 變化,因而增加效能及降低驅動器複雜性。該槽位狀態管 理的成本係利用只支援動態狀態變數的在晶片上的儲 存,同時提供一用以影響任何狀態變數的改變及降低該在 晶片上的單一槽儲存至追蹤位元,典型地每槽4個。在一 典型實施例中,該在晶片上單一槽儲存係降低到只有4個 追蹤位元。此外,降低對狀態變化頻寬及覆蓋區的要求係 利用(a)在一次群組内,崩潰背對背狀態變化,(b)刪除非 要求的紋理混合階段及紋理映射狀態資料的更新,及(c) 提供狀態次群組變化的最佳化(及低等待時間)指令。再 者,可以降低管理非直接儲存狀態陣列及/或快取區的成 本及複雜性。 在該詳細描述中,許多特定細節會在此提出以便徹底地 了解本發明。然而,熟悉該項技藝者應了解的是本發明可 以在沒有這些特定的細節下實行。在其他例子,為人熟知 的方法、程序、組件及電路會詳細地描述以防混淆本發明。 接著的詳細描述的某些部分係以法則及電腦内的資料 位元及二元信號操作的符號代表的形式表示。這些法則的 描述及代表係為該熟悉該資料處理技藝者所使用的方 法,以將其工作的要義傳達給其他熟悉該項技藝者。在此 處一法則大致上係認為是導向所要求的結果的有條理順 序的步騾。該等步驟包含物理數量的運作。通常但並非必 要,這些數量採取能夠被儲存、轉換、組合、比較及其他 可供運用的電氣或磁場信號的形式。將所提及的這些信號 作為位元、數值、元件、符號、字元、術語、數字或類似 的東西,已經證明有時候係方便的,主要是為了一般的使 82652-951226.doc
1281639 (S) 用。然而,應了解的是所有這些及類似的術語係與該合適 的物理數量相關,且只是施加於這些數量的方便標示。除 非如該下面討論明顯特別地陳述,應了解的是在整個使用 像是“處理”或“計算”或“估算”或“決定”等類似的術語的 規格及討論中,係指電腦或計算系統或其他類似的電子計 算裝置的動作及程序,其能夠運用及轉換代表在該計算系 統的暫存器及/或記憶體内作為物理(電子)數量的資料成 其他代表在該計算系統的記憶體、暫存器或其它該資訊儲 存器、傳輸或顯示裝置内的物理數量的資料。 本發明的實施例可以以硬體或軟體、或兩者的結合來實 行之。然而,本發明的實施例可以實行以作為執行於可程 式系統上的電腦程式,該系統至少包含有一處理器、一資 料儲存系統(包含依電性及非依電性記憶體及/或儲存元 件)、至少一輸入裝置,及至少一輸出裝置。程式碼可以 施加於輸入資料,以執行在此所要求的功能,而產生輸出 資訊。該輸出資訊可以以已知的方法施加於一或更多的輸 出裝置。為了本應用的目的,一處理系統包含任何具有一 處理器的系統,像是例如一數位信號處理器(DSP)、一微 控制器、一特定應用積體電路(ASIC)、或一微處理器。 該等程式可以以高度程度程序或物件導向程式語言來 實行,以便與一處理系統相溝通。假如有需要的話,該等 程式也可以以組合語言或機器語言來實行。事實上,本發 明並不限制範圍於任何特定程式語言。在任何例子中,該 語言可以係為編譯或直譯的語言。 該等程式可以儲存於一儲存媒體或裝置(例如硬碟、軟 82652-951226.doc
1281639 碟、唯1買1己憶體、光碟機、快閃記憶體裝置、數位多功能 光碟(DVD)、或其他儲存裝置),可以讓一通用或特定目的 程式化處理系統所讀取,用以當該儲存媒體或裝置係為該 處理系統項取時組態及操作該處理系統,以執行在此所描 述的程序。本發明的實施例也可以認為係實行以作為一機 器可讀取的儲存媒體,其係組態以和一處理系統一起使 用’如此組態的該儲存媒體會造成該處理系統以一特定及 事先決定的方式操作,以執行在此所描述的功能。 實施方式 一個該類型的處理系統的範例係表示於圖1中。取樣系 統1 0 0可用以執行根據本發明的方法的程序,像是在此所 描述的實施例。取樣系統100係代表基於該等英特爾(Intel) 公司的微處理器的處理系統,雖然也可以使用其他微處理 器(包含具有其他微處理的個人電腦(PCs)、工程用工作 站、機頂盒(set-top box)或是類似的東西)。在一實施例中, 取樣系統100可以執行微軟公司的WINDOWS.TM作業系統 的版本,雖然例如其他作業系統及圖形使用者介面也可以 使用。 圖1係為本發明的一實施例的系統1 〇 〇的方塊圖。該電腦 系統1 00包含中央處理器1 02、圖像及記憶體控制器1 〇4, 其包含圖像裝置106、記憶體108及顯示裝置114。處理器 102處理資料信號,可以係為一複雜指令集電腦(CISC)微 處理器、一簡化指令集計算(RISC)微處理器、一超長指令 字(VLIW)微處理器,一實行指令集的組合的程序,或其他 處理器裝置,例如像是一數位信號處理器。處理器1 02係 82652-951226.doc -10-
1281639 ⑺ 耦合到共同匯流排1 1 2,其傳輸資料信號在處理器1 〇2與該 系統1 00中的其他組件之間。圖1的目的只是為了說明。本 發明也可以使用於包含一離散圖像裝置的組態。 處理器102發出信號於共同匯流排1 12上,用以與記憶體 108或圖像及記憶體控制器104之間通訊,以運用在此所描 述的資料。處理器1 〇 2發出該等信號以回應從記憶體1 0 8 所獲得軟體指令。記憶體1 〇 8可以係為動態隨機存取記憶 體(DRAM)裝置、靜態隨機存取記憶體(SRAM)裝置、或其 他記憶體裝置。記憶體1 08可以儲存可以由該處理器1 02、 圖像裝置1 06或某些其他裝置所執行的指令及/或資料信 號所代表的資料。該指令及/或資料係包含用以執行本發 明任何及/或所有的的技術的程式碼。記憶體1 〇 8也包含軟 體及/或資料。一選擇性快取記憶體1 1 〇可用於以本機存取 方式加速圖像裝置10 6之記憶體存取。在某些實施例中, 圖像裝置1 06能夠從處理器102下載用以繪圖一影像所要 求之許多記憶體密集的任務。圖像裝置1 06處理資料信 號,且係為一複雜指令集電腦(CISC)微處理器、一簡化指 令集計算(RISC)微處理器、一超長指令字(VLIW)微處理 器,一實行指令集的組合的程序,或其他處理器裝置,例 如像是一數位信號處理器。圖像裝置1 06可以耦合到共同 匯流排1 1 2,其在圖像裝置1 0 6與該系統1 0 0中其他組件之 間傳輸資料信號,其包含繪圖快取區1 1 0及顯示裝置1 1 4。 這在下面會詳細討論,繪圖快取區1 1 0會處理用以區域繪 圖的中間的讀取及寫入。圖像裝置1 〇 6包含繪圖硬體,除 了別的事情以外’其會將特定屬性(例如彩色)寫到顯示 82652-951226.doc
1281639 (S) 1 1 4的特定像素,然後繪製複雜的基元於顯示裝置1 1 4上。 圖像及記憶體控制器1 04與顯示裝置1 1 4互相通訊,用以顯 示已繪圖的影像或其他由一圖像控制器1 04所處理的部 分。顯示裝置1 1 4係包含電腦監視器、電視機、平面直角 顯示器或其他合適的顯示裝置。 記憶體1 08儲存一主機作業系統,其包含一或更多的繪 圖程式以建立用以顯示的圖像基元的影像。系統1 0 0包含 圖像裝置1 06,像是圖形加速器,其使用客製化的硬體邏 輯裝置或一協力處理器(co-processor),以改良主機緣圖程 式其他方法所處理的圖像基元中至少某些部分的繪圖效 能。該主機作業系統程式及其主機圖像應用程式介面(API) 藉由驅動程式,控制該圖像裝置1 06。 參考圖2及3,說明實行於一區域繪圖系統1 2 0上的各種 圖像物件的實施例160,例如幾何基元(即三角形、線 條)1 62。在區域繪圖中,一螢幕係再分割成一陣列的區域 1 64,一般係螢幕空間的矩形,雖然也可以使用其他幾何 變數。每個區域1 6 4係相關於一槽。每個槽1 2 8包含一連串 的命令緩衝區1 34,儲存在非連續的實體記憶體頁(page) 之内。因此該等槽128係較佳地實行以作為一連串的獨立 實體頁。 當一基元1 62相交一區域1 64的時候,該對應的基元指令 會放置在與該相交的區域有關的槽1 2 8中。每個區域指令 槽1 2 8則係用以保持基元指令及要求用以繪圖每個次影像 的狀態設定指令,而利用每個基元1 62的螢幕空間範圍與 該陣列的區域1 64相比較來產生。因此,當接收到該等基 82652-951226.doc -12- 1281639
兀1 62,本發明會決定每個基元相交於哪個區域丨64,然後 複製該基元指令到一與這些區域164的每個區域有關的槽 1 2 8中。指派基元(及其屬性)i 42給區域^ 的過程係稱之 為槽化(binning)。‘‘槽,,128係指為每個區域所使用的抽象 、、爰衝區,此處一槽128—般係實現以作為一連串的指令批 次緩衝區134。槽化執行所需要的計算以決定甚麼基元^62 在於甚麼區域1 64,且能夠利用專用的硬體及/或軟體實行 來執行《。在一典型的實行中,針對每個被一基元162所 相交的區域1 6 4, —驅動器1 2 2寫出一組基元指令,以讓該 圖像槽化引擎1 2 6解析,而該等命令會寫入到與所相交的 區域1 64相關的緩衝區1 3 4内。 些基元162將會相交於超過一個以上的區域164,在該 例中’該基元指令係複製在對應於該相交的區域1 64的槽 1 2 8中。例如’在圖3中所繪示的閃電係相交9個區域丨6 4。 該程序會持續進行,直到該整個場景係排序到槽内1 28。 一旦排序完所有該基元1 62以及完成該等命令架構,則 會做出一第二通過以一次一區域i 6 4來繪圖該場景。在建 立每個由一基元162所相交的區域164的槽的第一通過之 後’接著便執行一第二區域接著區域的繪圖通過。特別 地’所有區域1 6 4的槽1 2 8係以每個場景每次繪圖一區域 1 6 4的方式繪圖,以產生最後的影像。該等區域1 6 4所用以 繪圖的順序通常並非意義重大。在繪圖下個區域164之 後,所有與接觸到一特定區域164内的像素的基元ι62有關 的槽128便會繪圖。一單一基元162係相交許多區域164, 因此會要求多重複製。結果,相交多重區域164的基元162 82652-951226.doc •13-
1281639 (10) 係會多次地繪圖(即每個區域1 6 4相交一次)。 繪圖效能由於該等基元1 6 2係分解成對準該繪圖快取區 1 10區域164而改良。因為該圖像裝置106每次只作用在該 螢幕的一小區域上(即一區域1 6 4 ),它能夠保持該整個區 域1 6 4的訊框緩衝區内容在繪圖快取區1 1 0中。該區域1 6 4 的尺寸通常係為一調整成與該繪圖快取區1 1 0的大小及組 織一致的常數。藉由該機構,該繪圖快取區1 1 0提供最佳 化優點,重新使用快取的資料可以利用一區域1 64的空間 上相干性(coherence)來最大化。透過使用區域繪圖的模 式,只有最少的彩色記憶體寫入需要執行,以每次一區域 1 64的方式產生該最後的影像,而彩色記憶體讀取,及深 度記憶體讀取與寫入能夠最小化或是完全地避免。該繪圖 快取區1 1 0的使用則因此顯著地降低該記憶體訊務,與在 繼續到下個基元之前,完全地繪製每個基元的普通的繪圖 器相比更能夠改良效能。 參考圖2,在一典型的實施例中,一圖像基元及狀態設 定指令流,稱之為一場景輸入清單1 24,係初始地施加於 與圖像槽化引擎126有關的圖像槽化引擎環狀緩衝區 125。該場景輸入清單124係為一單一、時間排序的場景描 述(如該應用程式介面所接收)。圖像槽化引擎126係典型 地實行以作為一硬體槽化引擎(HWB) 126。熟悉該項技藝 者應了解的是也可以使用一軟體或軟體加上硬體槽化器 (binner)。該圖像槽化引擎I26解析場景輸入清單124,然 後決定每個基元1 6 2相叉哪個區域1 6 4。 如同上面所纪載,该等區域1 64係與槽i 2 8有關。圖像槽 82652-951226.doc -14-
Ι281639(Π) 化引擎126將每個基元162的螢幕空間範圍與該區域164的 陣列相比較,然後將該相關基元命令複製到對應的槽1 2 8 内。如圖5中所示以及下文中詳細的描述,槽1 2 8係由連串 的命令緩衝區134所構成,其一般係儲存在非連續的實體 記憶體頁之内。一槽清單係為一緩衝區1 3 4的清單,其構 成每個槽1 3 2。頁面初始地係配置給該槽記憶體池(BMP) 140。該槽指示器清單(BPL) 130係以該等頁面的頁數初始 化,然後儲存寫入指示點到每個槽清單1 3 2内。 該圖像槽化引擎1 26也會利用解析與該場景輸入清單 1 24有關所包含的狀態設定指令來維持該目前的圖像林 態。在將一基元命令放在任何已知的槽1 2 8之前,該圖像 槽化引擎126典型地會在該槽128的基元命令之前加上任 何所要求的狀態設定指令。 在該場景輸入清單1 24已經全部解析完之後,該等相關 的槽(即槽〇、槽1…、槽n-1)係準備好讓該圖像繪圖引擎136 用來繪圖該場景。這會在下面詳細討論,指令係包含在該 場景輸入清單1 24的末端,以使得該圖像槽化引擎1 26能夠 讓在暫停場景記數器1 48中的暫存器加1,然後初始化該槽 化場景的繪圖。例如,圖像槽化引擎1 2 6可以經由路徑 1 5 6,將一繪圖指令傳送到與圖像繪圖引擎1 3 6有關的圖像 繪圖引擎環狀緩衝區1 5 7。 圖4說明目前動態狀態次群組172及單一槽追蹤位元174 的實施例170的方塊圖。將動態狀態再分成次群組172可以 對於追蹤及影響對該動態狀態變數的改變提供一定程度 的粒度。在一典型的實施例中,該組的動態狀態變數係會 82652-951226.doc -15-
1281639 (12) 再分成4個次群組172。熟悉該項技藝者應了解4個次群組 1 72對於在此所討論及表示的組態係有利的,然而,本發 明可以利用以任何方式所配置的任何數目的次群組1 72來 實行。 與每個槽128 (例如槽〇、槽1、槽2…槽η)有關的是複數 個追縱位元1 7 4,其中每個槽位元係相關於一特定動態狀 態次群組1 7 2。當一特定槽1 2 8的追蹤位元1 7 4係“設定” 時’其係為一指示,指示一些在該次群組丨7 2内的狀態變 數(及對於該特等槽丨2 8,例如槽n)從一基元1 6 2上次輸出 到該槽1 2 8時已經改變。反之、一「清除」追蹤位元1 7 4 係指示該特定槽128的相關動態狀態次群組172從一基元 1 6 2上以輸出到該槽1 2 8以來未曾改變。在一典型實行中, 一單一槽4位元的‘‘追蹤位元,,向量174係用以追蹤對該4個 狀態群組1 7 2的改變。該“紋理映射,,、“紋理混合,,、“基本 狀怨及‘‘緩ί交狀怨”的次群組每個典型地包含5 1 2或1024 個槽。若是512個槽,這總計共有2Κ位元(每槽4位元向量 *512個槽)。若是1〇24個槽,這總計共有4κ位元(每槽4位 元向量*1024個槽)。 先“設定,,,以利用一整套 。特別地,在將一基元162 初始地,所有追縱位元1 7 4會 的動態狀態來初始化每個槽1 2 8 放在一槽128中之前,與該槽128有關的該等追蹤位元174 會被檢查,而該對應於設定追蹤位元174的目前狀態會在 該基元162之前被***到該槽128中。然後該槽128的追蹤 該等狀態位元174 該等位元174的任 位元174會被清除。在一典型實施例中, 中有許多位元並不會經常改變。然而, 何隨著時間變化的位元必 的 項被辨識及發佈,或是將它們 82652-951226.doc -16 -
1281639 (13) 較大群組發佈到該槽1 2 8,使得對於該三角形的精確狀態 能夠在光柵化(rasterization)期間保持。 特別地,在圖4中所表示的該等狀態群組172包含: (1) “基礎狀態,,次群組1 76 -與該基礎狀態追蹤位元 陣列有關的該狀態變數包含但不限於頂點緩衝區、頂點格 式、設定、紋理素像(texel stream)及像素管道狀態變數。 該等狀態變數典型地係排列成一固定序列的字元。在一特 定實施例中,任何對於一基礎狀態變數的改變會要求所有 的字元被發出到該要求的槽1 2 8,雖然熟悉該項技藝者了 解也可以使用其他組態。在其他實施例中,實行所有槽1 2 8 或一較小次組合的“開放”槽1 2 8的更多粒度追蹤。 (2) “紋理映射”次群組1 7 8 -與該紋理映射狀態追蹤 位元陣列有關的狀態變數包含但不限於大部分紋理映射 參數、立體映射面啟動及紋理過濾參數。狀態變數係藉由 該圖像繪圖引擎126輸出以作為一指令的部分。當一特殊 槽1 2 8的該紋理映射狀態追蹤位元被發現到係設定時,該 圖像槽化引擎1 26將只有輸出與紋理映射相關的字元,其 目前係為該目前背景設定所要求的。該“目前使用,,的映射 係以該圖像槽化引擎1 2 6,利用檢查該啟動紋理混合階段 來決定,判斷哪個紋理素像(texel stream)係被要求當作輸 入,然後接著檢查哪個紋理映射係與這些要求紋理素像 (texel stream)有關。 (3 )‘‘紋理混合”次群組1 8 〇 -與該紋理混合狀態追蹤 位元陣列有關的狀態變數包含但不限於用以控制紋理映 射混合階段的狀態變數。在一典型的實行中,該等狀態變 82652-951226.doc -17-
麗639⑼ 數包含整體的控制及紋理混合彩色、alpha、控制階段參 數,用以控制1到4個紋理映射混合階段單元。這些狀態變 數係由該圖像槽化引擎1 26輸出以作為一指令的部分。當 一特定槽1 2 8的該紋理混合狀態追蹤位元係發現已設定, 則該圖像槽化引擎126將會只輸出這些由該“啟動紋理混 合階段的數目”所推衍的狀態變數的目前設定所要求的字 元0 (4) “緩慢狀態”次群組1 82 - 與該緩慢狀態追蹤位元 陣列有關的狀態變數係為一 “緩慢狀態指示器”。該緩慢狀 態指示器間接地控制不包含在其他狀態次群組像是該基 礎、紋理混合及紋理映射狀態次群組1 7 6、1 7 8及1 8 0的任 何狀態指示器。在一典型的實施例中,低程度的狀態改變 及/或很少變化的指令係放置在該緩慢狀態緩衝區1 66,及 該等指示器係只有經由一指令1 67傳送到這些緩慢狀態緩 衝區1 6 6。 “緩慢狀態”群組包含該其餘非管道(及一些低頻管道) 的狀態變數。對”緩慢狀態”狀態變數的改變並沒有直接傳 送到該圖像槽化引擎1 26。確切的說,如圖2所顯示,包含 著這些變數的初始+差值狀態改變的緩慢狀態緩衝區1 66 係建立使得進入到這些緩慢狀態緩衝區1 66之一的一單一 指示器係充分足夠以定義所有緩慢狀態變數的目前狀 態。該方式只有該緩慢狀態指示器需要被傳送到該圖像槽 化引擎1 26。對該緩慢狀態指示器的改變將會如同所要求 的被放置在槽1 2 8中,及在繪圖期間將會初始化該緩慢狀 態緩衝區1 66的要求讀取成為更新的緩慢狀態變數。該圖 82652-951226.doc -18 - (15) 1281639 像繪圖引擎136會執行在該緩慢狀態“指示器,,的先前值及 新值之間的緩衝指令,雖然只要該新值係落在該將被繪圖 、面的先前值及末端之間。除此之外,該圖像繪圖引擎 1 3 6將會執行從該新的緩慢狀態指示器所制定的頁面頂端 直到但是不包含該新的緩慢狀態指示器所制定的Dw〇rd。 、Q此將會設定所有緩慢狀態變數成為它們的初始值,然 後將所差值狀態改變施加直到但是不包含該新的緩慢狀 態指示器所制定的Dw〇rd。 特別地’該圖像基元及狀態設定指令流,在此稱之為一 场⑦輸入清單i 24,係初始地施加於與圖像槽化引擎1 % 有關的圖像繪圖引擎環狀緩衝區125。該圖像槽化引擎126 曰解析場景輸入清單i 24,然後決定每個基元1 62相交哪 (幾)個區域1 6 4。 孩圖像槽化引擎1 26係利用解析與該場景輸入清單1 24 相關所包含的狀態設定指令來保持該目前圖像狀態。在將 一基το命令放在任何給定的槽128之前,該圖像槽化引擎 126在該槽128的基元命令中加入該狀態設定指令167。 假如對於槽0的緩慢狀態追蹤位元1 8 3指示有一改變,該 緩狀態“指示器’’係會輸出到該槽丨28。該緩慢狀態追蹤 位兀183然後會被清除。假如該緩慢狀態追蹤位元I。並沒 有指示有一改變’則該緩慢狀態指示器就不會輸出到槽〇。 緩k狀態緩衝區1 66儲存該緩慢狀態變數的初始及差值 狀悲的變化。一單一指示器到這些缓慢狀態緩衝區1 66之 一係充分足夠以定義所有該“緩慢,,狀態變數的目前狀 °該緩慢狀態緩衝區1 6 6係放置在狀態記憶體1 〇 8或一專 82652-951226.doc -19-
1281639⑽ 用記憶體内。在一典型實施例中,低程度狀態改變及或非 經常變化的指令係放置在該緩慢狀態緩衝區1 66,而槽化 器指示器係經由一指令1 67只有傳送到這些緩慢狀態緩衝 區内。一旦所有的基元及包含緩慢狀態指示器的狀態指令 係被槽化的時候,一第二通過係用以一次一區域1 6 4地繪 圖該場景區域。該等槽128係以每個場景一次一區域164 地繪圖以產生該最後的影像。在繪圖期間,該圖像繪圖引 擎1 3 6基於該槽化緩慢狀態指示器來初始該緩慢狀態緩衝 區1 66所要求的讀取,以更新緩慢狀態參數。該圖像繪圖 引擎1 3 6將會執行該緩衝指令於該等緩慢狀態”指示器”的 先前值及新值之間。 圖5係為一將與基元162有關的基元指令放置到一槽128 中之前(步驟192-208)及為了檢查差值狀態改變及更新狀 態及單一槽的追蹤位元174 (步驟212-222),輸出任何要求 的狀態變化的實施例1 90的流程圖。該最佳化會將不需要 的狀態複製降到最小。 特別地,在將一基元指令放在一特定槽1 2 8中之前,該 圖像槽化引擎126會確定該特定槽128的狀態目前至少係 為在該繪圖相位期間該基元1 62能夠被正確地繪圖的時 候。這意指目前沒有使用的狀態不需要在輸出該基元指令 到該槽1 2 8内之前被輸出。例如,抑制紋理混合狀態設定 及未使用的紋理映射設定就不需要輸出到該槽1 28。 假如遇到一基元162 (步驟192),本發明可以決定該基元 162相交哪些區域164 (步驟194)。對於每個與該相交的區 域164有關的槽128 (步驟196),每個次群組追蹤位元174 82652-951226.doc -20-
1281639 (,) 係會被檢查(步驟1 9 8)。假如一特定的次群組的該追縱位 元174係被設定(步驟199),該特定次群組172的目前值係 被輸出到該槽128 (步驟200)。當一相關於該追蹤位元174 的狀態次群組1 72變成“已使用”的時候,一追蹤位元1 74 被認為“已設定”。 例如,該基礎狀態次群組1 7 6的次群組追蹤位元1 7 7初始 地係為了槽0而檢查。該特定槽1 2 8的次群組追蹤位元1 7 4 接著會被清除(步驟202)。否則假如一特定次群組的追縱 位元沒有設定,則該特定次群組1 7 2的目前數值並不會被 輸出到該槽1 2 8 (步驟2 0 1)。 該槽1 2 8的下個次群組追蹤位元1 7 4接著會被檢查,而會 針對在該槽128中的每個位元174重複步驟198、200及202 (步驟2 0 4 )。例如,對於槽〇,該紋理映射次群組(1 7 8 )的 追蹤位元1 7 9接下來會被檢查。 在所有與該次群組1 72相關的追蹤位元1 74已經針對該 特定槽1 2 8檢查之後(步驟2 0 6 ),該等基元指令會輸出到該 槽128。對於與該基元162所相交的該區域164有關的下個 槽128,該次群組172的追蹤位元174接著會被檢查(步騾 208) 〇 例如,參考圖4,假如一與槽0相關的基礎狀態追蹤位元 1 7 7指示有一改變,則該基礎狀態次群組1 7 6的目前數值會 輸出到槽0。接著該基礎狀態追蹤位元177會被清除。假如 該基礎狀態追蹤位元1 77沒有指示有一改變,則沒有數值 會輸出到槽0。 該下個次群組1 7 2的追縱位元1 7 4接著會被檢查。例如, 82652-951226.doc -21 · 1281639 (18)
假如該槽0的紋理映射狀態追蹤位元1 79指示有一改變,則 該紋理映射狀態1 7 8的目前數值會被輸出。該紋理映射狀 態追蹤位元1 7 9接著會被清除。假如該紋理映射狀態追蹤 位元1 7 9沒有指示有一改變,則沒有數值會輸出到槽0。 相似地,假如該槽0的紋理混合狀態追縱位元1 8 1指示有 一改變,則該紋理混合狀態1 8 0的目前數值會被輸出。該 紋理映射狀態追蹤位元1 8 1接著會被清除。假如該紋理映 射狀態追賧位元1 7 9沒有指示有一改變,則沒有數值會輸 出到槽〇。 假如該槽0的緩慢狀態追蹤位元1 8 3指示有一改變,則該 緩慢狀態指示器會輸出到槽0。該緩慢狀態追縱位元1 8 3 接著會被清除。假如該緩慢狀態追蹤位元1 8 3沒有指示有 一改變,則該緩慢狀態指示器就不會輸出到槽〇。 因此該追縱位元1 7 4可以消除使用到失效資源的可能 性。例如,假如(a)對一目前未使用的紋理映射做出一改 變,(b)繪製一基元162 (在沒有輸出該未使用狀態的情形 下清除該個別的紋理映射追蹤位元179),及(〇做出一狀 態變化,使得該紋理映射現在係使用“如同原來的一樣” (即該映射本身沒有變化)。在沒有任何特殊的處理下,該 失效紋理映射會被錯誤地使用。在本發明中,當一紋理映 射變成“已使用”的時候(對該紋理映射狀態的狀態改變的 結果)’該紋理映射追蹤位元1 7 9係設定,因此消除使用一 失效資源的可能性。 狀態設定圖像指令的最佳化版本係用以獨立地更新該 動態狀態變數次群組1 7 2的每一個。藉由包含這些最佳化 82652-951226.doc -22- 1281639 (19) 才曰7在S等彳曰12 8之内,該讀取間接狀態資料的複雜性及 等#寺門。大地降低,因而在降低成本的同時,也增加 效此1特別也圖5說明檢查差值狀態改變,及更新狀態 及早一槽追蹤位元174 (步驟212-222)。該圖像槽化引擎120 係藉由以單—槽128及按次群組172為基礎來保持及追 縱狀態的改變’防止所有的狀態改變的非必要廣播給所有 才曰1 2 8 抬1 2 8的狀態就在該基元指令被放置在該槽1 2 8 中之说有刮地更新。發生在正被槽化的基元指令之間的該 相同狀態次群組172之内的多重改變係縮減成一輸出到該 槽1 2 8的次群組的改變。 步驟212-222係實行用以使用該儲存的目前動態狀態及 該單一槽追蹤位元1 7 4,以在該場景抓取相位期間有效率 地管理狀態變化。藉由追蹤依據一單一槽1 2 8及按狀熊群 組172的狀態變化,該圖像槽化引擎126也將會只更新這此 從上次一基元放在該槽128中的時候,針對一特定的相交 槽128已經改變的狀態次群組172 ° 初始地,假如遭遇到一狀邊憂化(步驟2 1 2)’則會決定 該對應的動態狀態次群組172 (步驟2 14)。該特定狀態變數 的先前數值接著會被決定(步驟216)° 假如該狀態的新值不同於該狀態的目前值(步騾218), 該槽128的對應的次群組追蹤位70 I74會被設定(步騾 220)。具有該狀態的新值的目前狀態則會被更新(步驟 222) 〇 緩慢狀態指示 假如一狀態變化修正一 “缓慢狀態指示器,,,每個槽(i) 82652-951226.doc -23-
麗639㈣ 的該緩慢狀態追蹤位元(i)會被設定。該狀態變化係施加 於該受到影響的次群組的每一個的目前狀態。 基礎狀態 例如,假如一狀態變化修正一“基礎狀態”,每個槽(i) 的基礎狀態追縱位元(i)會被設定。 紋理映射 假如一狀態變化造成所要求的任何的紋理映射(0…3) 變成被設定,則每個槽(i)的紋理映射狀態追蹤位元(i)會 被設定。假如一狀態變化修正該紋理映射(0…3),每個槽 (i)的紋理映射狀態追蹤位元(i)會被設定。 紋理混合 假如一狀態變化修正一要求的“彩色係數”,每個槽(i) 的紋理混合狀態追蹤位元(i)會被設定。假如一狀態變化 增加該啟動紋理混合階段的次數,每個槽(i)的紋理混合 狀態追蹤位元(i)會被設定。 圖6係為一說明用以特別地偵測,如果有的話,哪個與 一特定紋理映射或紋理混合階段有關的狀態需要輸出到 該槽128的最佳化的實施例230的流程圖。特別地,當該等 與紋理映射或紋理混合狀態有關的次群組追蹤位元1 74係 被發現已設定的時候,與一特定紋理映射或紋理混合階段 有關的狀態資訊係只有輸出到該槽1 2 8。只有與該使用的 紋理映射或紋理混合階段有關的資訊會輸出到該槽1 2 8。 藉由確認只有該新要求狀態或映射輸出到相交槽,防止使 用到失效的紋理混合或紋理映射狀態。當(a)對與一目前 使用的映射/階段有關的狀態做出一變化的時候,或是(b) 82652-951226.doc -24-
腿639㈤ 當經由對一些其他狀態變數的改變使得一先前未使用的 映射/階段變成“已使用,,的時候’設定該等次群組追蹤位 元1 7 4。關於該後者’例如由於一相關的狀態改變(例如一 基礎狀態改變),一紋理混合或紋理映射會變成‘‘已使用”。 對於該基元1 6 2所相交的每個槽1 2 8 (步驟2 3 2)’與該槽 1 2 8有關的該紋理映射及/或混合次群組追縱位元1 7 4會被 檢查(步驟2 3 4)。假如該追蹤位元1 7 4係設定(步驟2 3 6), 該等映射/階段會被檢查(步驟2 3 8 -2 4 4 )。假如在一紋理映 射/階段中有一變化(步驟240),該紋理映射/階段會輸出到 該槽128 (步騾242)。該下個紋理映射/階段接著會被檢查 (步驟244)。例如,假如該紋理混合狀態追蹤位元(i)係被 設定(步驟2 3 6 ),則該已經改變的特定紋理混合階段會輸 出到該槽1 2 8。特別地,假如該紋理混合階段0改變,該紋 理混合階段1係被輸出。假如該紋理混合階段1改變,該紋 理混合階段2會被輸出。假如該紋理混合階段2已經達到其 最後階段,則該紋理混合階段3會被輸出等等。該紋理混 合狀態追蹤位元然後會被清除(步驟246)。 假如該紋理映射狀態追蹤位元⑴係被設定(步騾2 3 2), 然後該已經改變的特定紋理映射會被輸出到該槽1 28。特 別地,假如該紋理映射[0 ]係改變,該紋理映射〇會被輸 出。假如該紋理映射[1 ]係改變,該紋理映射1會被輸出。 假如该紋理映射[2 ]係改變’該紋理映射2會被輸出。假如 該紋理映射[3]係改變,該紋理映射3會被輸出等等。該紋 理映射狀態追蹤位元接著會被清除(步驟2 4 6 )。 假如一追縱位元174沒有指示一改變,該基元ι62會被繪 82652-951226.doc -25-
1281639 ㈤ 製,且清除該個自紋理混合階段或紋理映射/階段追蹤位 元而沒有將該非要求的狀態輸出到該槽1 2 8。 現在根據本專利條例的要求已經描述本發明,熟悉該項 技藝者應了解如何對本發明做出改變及調整,以符合他們 特定的要求或狀況。該等改變及調整要在不達背如下面的 申請專利範圍中所提出的本發明的範圍及精神下進行。 圖式簡單說明 圖1說明一電腦系統的實施例的方塊圖,包含一用於區 域繪圖的深度窝入抑制的圖像裝置的實施例。 圖2說明一圖像裝置的實施例的方塊圖,包含一用以處 理一含有差值(delta)狀態的場景輸入清單的圖像槽化引 擎、圖像繪圖引擎及槽。 圖3說明一區域繪圖器螢幕視界的實施例的描述,包含 區域及幾何基元。 圖4說明一動態狀態次群組及單一槽追縱位元的實施例 的方塊圖。 圖5說明一用以輸出在將一基元放置在一槽中之前,所 要求狀態的任何變化的方法,以及說明一用以在該區域繪 圖的場景抓取(capture)相位期間,使用該儲存的目前動態 狀態及該單一槽追蹤位元向量來有效管理狀態變化的方 法的實施例的流程圖。 圖6說明一用以最佳化偵測所要求的紋理映射及紋理混 合階段的實施例的流程圖。 圖式代表符號說明 100 電腦系統 82652-951226.doc -26-
1281639 ㈤ 102 中 央 處 理 器 104 圖 像 及 記 憶 體 控 制 器 106 圖 像 裝 置 108 記 憶 體 110 繪 圖 快 取 區 112 共 同 匯 流 排 114 顯 示 裝 置 120 一 區 域 繪 圖 系 統 122 驅 動 器 24(124) 場 景 輸 入 清 單 125 圖 像 槽 化 引 擎 環 狀 緩 衝區 126 圖 像 槽 化 引 擎 128 槽 130 槽 指 示 器 清 單 132 a 前 槽 指 示 器 134 一 連 串 指 令 批 次 緩 衝 區 136 圖 像 繪 圖 引 擎 138 場 景 繪 圖 清 單 158 編 號 S之回收頁面 140 槽 記 憶 體 池 142 槽 指 示 器 144 BMP環 狀 緩 衝 區 146 可 用 白 由 頁 面 148 未 決 場 景 計 數 器 156 路 徑 82652-951226.doc -27 麗639 (24) 157 圖 像 繪 圖 引 擎 環 狀 緩 衝區 160 實 施 例 162 幾 何 基 元 164 區 域 174 單 一 槽 追 蹤 位 元 176 基 礎 狀 態 次 群 組 178 紋 理 狀 態 次 群 組 180 紋 理 混 合 次 群 組 184 緩 慢 狀 態 指 示 器 次 群 組
82652-951226.doc 28-
Claims (1)
- 拾“、:电請專利薦圍1· 一種用以管理繪圖基元的狀態變數之方法,包含: 定義複數個用以儲存指令及與該等基元有關的目前 狀態資訊的記憶體區域; 定義與該等基元有關的狀態變數; 將狀態變數排序到複數個次群組; 將該複數個記憶體區域的每一個與複數個追蹤位元 相關連,其中每個追縱位元係與一次群組及該複數個 $己憶體區域之一有關; 因該等基元指令係事先地輸出到該記憶體區域,設 定該追蹤位元以回應在一狀態變數的變化;及 將與該次群組有關的目前狀態資訊輸出到該複數個 記憶體區域之一,以回應被設定的該追蹤位元。 2.如申請專利範圍第1項之方法,尚包含: 在該目前狀態資訊已經輸出到該複數個記憶體區域 之一之後,清除該追縱位元。 3·如申請專利範圍第1頊之方法,其中將狀態變數排序到 複數個次群組,尚包含: 排序與基礎狀態資訊有關的狀態變數。 4·如申請專利範圍第1項之方法,其中將狀態變數排序到 複數個次群組,尚包含: 排序與紋理映射函數有關的狀態變數。 5·如申請專利範圍弟1項之方法,其中將狀態變數排序到 複數個次群組,尚包含: 82652-951226.doc 1281639 排序與紋理混合函數有關的狀態變數。 6. 如申請專利範圍第1項之方法,其中將狀態變數排序到 複數個次群組,尚包含: 排序與緩慢狀態函數有關的狀態變數。 7. 如申請專利範圍第1項之方法,其中因該等基元指令係 事先地輸出到該記憶體區域,設定該追蹤位元以回應 在一狀態變數的變化,尚包含: 決定一狀態變化是否已經發生; 決定哪個次群組係與該狀態變化有關; 決定該狀態變數的一新值及先前值;及 假如該新值及先前值係不同,則設定該對應的次群 組追蹤位元。 8. 如申請專利範圍第1項之方法,尚包含: 定義複數個用以儲存狀態資訊的額外記憶體區域; 定義一針對該複數個額外記憶體區域的參考;及 將選擇的狀態群組資訊儲存到該複數個額外的記憶 體區域。 9. 如申請專利範圍第8項之方法,其中將與該次群組有關 的目前狀態資訊輸出到該複數個記憶體區域之一,以 回應被設定的該次群組,尚包含: 當該追縱位元係設定時’將與該次群組有關的參考 輸出到該複數個記憶體區域之一;及 基於該參考,擷取出儲存在繪圖期間,該複數個額 外的記憶體區域中的參考資訊。 10. 如申請專利範圍第9項之方法,其中將選擇的狀態群組 82652-951226.doc 1281639 資訊儲存到該額外的記憶體區域,尚包含: 將與緩慢狀態函數有關的狀態變數儲存到該複數個 額外的記憶體區域。 11·如申請專利範圍第1 0項之方法,其中定義一用於該額 外記憶體區域的參考,尚包含: 將一指示器定義至該額外記憶體區域,緩慢狀態資 訊係儲存於此處。 12. —種用以繪圖一包含基元的場景的裝置,包含: 複數個與區域有關的槽化記憶體區域,該等區域係 被基元分割; 一追蹤記憶體區域,用以儲存從基元指令在先前輸 出到該等記憶體區域後有被影響的狀態變數的指示 备, 一槽化引擎,負貴回應該追蹤指示器,用以槽化狀 態變數的目前狀態資訊;及 一繪圖引擎,用以繪圖儲存在該等記憶體區域中的 目前資訊。 13·如申請專利範圍第1 2項之裝置,其中該目前資訊包含 從基元指令先前輸出到該等記憶體區域後,已經改變 的狀態變數。 14. 如申請專利範圍第1 2項之裝置,其中該目前資訊包含 一參考。 15. 如申請專利範圍第1 3項之裝置,其中該等狀態變數係 與至少一狀態群組有關。 16·如申請專利範圍第1 5項之裝置,其中該至少一狀態群 82652-951226.doc1281639 組包含基礎狀態函數。 17. 如申請專利範圍第1 5項之裝置,其中該至少一狀態群 組包含紋理映射函數。 18. 如申請專利範圍第1 5項之裝置,其中該至少一狀態群 組包含紋理混合函數。 19. 如申請專利範圍第1 5項之裝置,其中該至少一狀態群 組包含緩慢狀態函數。 20. 如申請專利範圍第1 2項之裝置,其中該追蹤資訊包含 複數個追蹤位元,其中每個追蹤位元係與一槽化記憶 體區域及一次群組有關。 21. 如申請專利範圍第1 2項之裝置,其中一追蹤記憶體區 域,其用以儲存從基元指令在先前輸出到該等記憶體 區域後有被影響的狀態變數的指示器,尚包含: 一追蹤記憶體區域,其用以儲存從基元指令在先前 輸出到該等記憶體區域後有被影響的狀態變數的指示 器。 22.如申請專利範圍第1 2項之裝置,其中一追蹤記憶體區 域,其用以儲存從基元指令在先前輸出到該等記憶體 區域後有被影響的狀態變數的指示器,尚包含: 一追蹤記憶體區域,其用以儲存從基元指令在先前 輸出到該等記憶體區域後有被使用的狀態變數的指示 器0 23. 如申請專利範圍第1 4項之裝置,尚包含: 複數個額外的記憶體區域。 24. 如申請專利範圍第23項之裝置,其中該複數個額外的 82652-951226.doc1281639 記憶體區域儲存緩慢狀態變數。 25. 如申請專利範圍第24項之裝置,其中該參考包含一指 示器,用以指示該額外的記憶體區域。 26. 如申請專利範圍第2 5項之裝置,其中該槽化引擎係回 應該追蹤指示器,槽化在該複數個槽化記憶體區域之 一中的參考。 27. 如申請專利範圍第26項之裝置,其中該繪圖引擎使用 該參考以從該複數個額外的記憶體區域中之至少一個 擷取出緩慢狀態資訊。 28. —種機器可讀式媒體,其具有在其中儲存複數個可由 一處理器所執行的機器可讀式指令,以管理用以繪圖 基元的狀態,該等機器可讀式指令包含: 用以定義複數個用以儲存與該等基元有關的指令及 目前狀態資訊的記憶體區域之指令; 用以定義與該等基元有關的狀態變數之指令; 用以將狀態變數排序成複數個次群組之指令; 用以將該複數個記憶體區域的每一個與複數個追蹤 位元相關連之指令,其中每個追縱位元係與一次群組 及該複數個記憶體區域之一有關; 用以從該等基元指令在先前輸出到該記憶體區域, 回應在一狀態變數中的變化,以設定該追蹤位元之指 令;及 用以回應正被設定的該追縱位元,將與該次群組有 關的目前狀態資訊輸出到該複數個記憶體區域之一之 指令。 82652-951226.doc1281639 29·如申請專利範圍第2 8項之機器可讀式媒體,尚包含: 用以在該目前狀態資訊已經輸出到該複數個記憶體 區域之一之後,清除該追蹤位元之指令。 30·如申請專利範圍第2 8項之機器可讀式媒體,其中用以 將狀態變數排序到複數個次群組之指令,尚包含: 用以排序與基礎狀態資訊有關的狀態變數之指令。 31. 如申請專利範圍第2 8項之機器可讀式媒體,其中用以 將狀態變數排序到複數個次群組之指令,尚包含: 用以排序與紋理映射函數有關的狀態變數之指令。 32. 如申請專利範圍第28項之機器可讀式媒體,其中用以 將狀態變數排序到複數個次群組之指令,尚包含: 用以排序與紋理混合函數有關的狀態變數之指令。 33·如申請專利範圍第2 8項之機器可讀式媒體,其中用以 將狀態變數排序到複數個次群組之指令,尚包含: 用以排序與緩慢狀態函數有關的狀態變數之指令。 34. 如申請專利範圍第2 8項之機器可讀式媒體,其中用以 從該等基元指令在先前輸出到該等記憶體區域,回應 在一狀態變數中的改變,以設定該追蹤位元之指令, 尚包含: 用以決定一狀態變化是否已經發生之指令; 用以決定哪個次群組係與該狀態變化有關之指令; 用以決定該狀態變數的一新值及先前值之指令;及 用以假如該新值與該先前值不同,則設定該對應的 次群組追蹤位元之指令。 35. 如申請專利範圍第28項之機器可讀式媒體,尚包含: 82652-951226.doc 1281639 用以定義複數個用以儲存狀態資訊的額外記憶體區 域之指令; 用以定義一供該等複數個額外的記憶體區域的參考 之指令;及 將選擇狀態群組資訊儲存到該等複數個額外的記憶 體區域之指令。 36.如申請專利範圍第3 5項之機器可讀式媒體,其中用以 回應正在設定的次群組,將與該次群組有關的目前狀 態資訊輸出到該等複數個記憶體區域之一之指令,尚 包含: 用以當該追蹤位元係設定的時候,將與該次群組有 關的參考輸出到該等複數個記憶體區域之一之指令;及 基於該參考,用以擷取在繪圖期間儲存在該等複數 個額外的記憶體區域之一中的參考資訊之指令。 37·如申請專利範圍第3 6項之機器可讀式媒體,其中用以 將選擇狀態群組資訊儲存到該額外的記憶體區域内之 指令,尚包含: 用以將與緩慢狀態函數有關的狀態變數儲存到該複 數個額外的記憶體區域内之指令。 38.如申請專利範圍第3 7項之機器可讀式媒體,其中用以 定義一該額外的記憶體區域的參考之指令,尚包含: 用以定義一指示器,指示該緩慢狀態資訊所儲存的 額外記憶體區域之指令。 82652-951226.doc 1281639 第091137284號專利申請案 中文圖式替換頁(95年12月) 120 ?1嶙鄴A SS ^ ·! 125- +、丨 雜^霧 > >净米 126 130. 1 1 fro s- 144, 156- 148 通2 $ρ 146 V #an 140· '136 158 鵷 _ m ^5»; 7^> 鵜丨 鱗丨 冰: T^hN m 鎵一 zop;PR.TCS:· 126〜淼0 134-TIMi 鵷#fH鵜 • 雜 • 镰 τ^> 15¾ 1PV …孽一 舍丨 客: | _ • 命; -157 跸 Λ Μ 端 端 ?: 1—i 4 跸: 4 擗丨 鲜丨 ! m- 茹 — »—» 〇 〇! 1281639 第091137284號專利申請案 中文圖式替換頁(95年12月) %年(2月%日修(楚)正替換頁160r 1741281639 第091137284號專利申請案 中文圖式替換頁(95年12月)圖6 1281639 险、(一)、.本案指皮代表圖為:第_2__圖 爱議;:讀龜 .ο·,·.,;-;::Λ -v:0-^'*·>:Κί^·;·:·:·^:·:ν::;·:·:-:·':·.';·<;>-:.^'·ν;^^ (二)、本代表圖之元件代表符號簡單說明: 120 一 區 域 繪 圖 系 統 122 驅 動 器 24(124) 場 景 輸 入 清 單 125 圖 像 槽 化 引 擎 環 狀 緩 衝 區 126 圖 像 槽 化 引 擎 128 槽 130 槽 指 示 器 清 單 132 目 前 槽 指 示 器 134 一 連 串 指 令 批 次 緩 衝 區 136 圖 像 !會 圖 引 擎 138 場 景 繪 圖 清 單 158 編 號 S之回收頁面 140 槽 記 憶 體 池 142 槽 指 示 器 144 BMP環 狀 緩 衝 區 146 可 用 白 由 頁 面 148 未 決 場 景 計 數 器 156 路 徑 157 圖 像 繪 圖 引 擎 環 狀 緩 衝 區柒、若有4匕學式時_,讀_^最能餐明特a的牝學式 82652-951226.doc
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/039,007 US6738069B2 (en) | 2001-12-31 | 2001-12-31 | Efficient graphics state management for zone rendering |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200303495A TW200303495A (en) | 2003-09-01 |
TWI281639B true TWI281639B (en) | 2007-05-21 |
Family
ID=21903146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW091137284A TWI281639B (en) | 2001-12-31 | 2002-12-25 | Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium |
Country Status (8)
Country | Link |
---|---|
US (2) | US6738069B2 (zh) |
EP (1) | EP1461774A1 (zh) |
JP (1) | JP4076502B2 (zh) |
KR (1) | KR100635437B1 (zh) |
CN (1) | CN1287330C (zh) |
AU (1) | AU2002367349A1 (zh) |
TW (1) | TWI281639B (zh) |
WO (1) | WO2003058557A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7173627B2 (en) * | 2001-06-29 | 2007-02-06 | Intel Corporation | Apparatus, method and system with a graphics-rendering engine having a graphics context manager |
US6738069B2 (en) * | 2001-12-31 | 2004-05-18 | Intel Corporation | Efficient graphics state management for zone rendering |
US7385608B1 (en) * | 2003-12-31 | 2008-06-10 | 3Dlabs Inc. Ltd. | State tracking methodology |
GB0425204D0 (en) * | 2004-11-15 | 2004-12-15 | Falanx Microsystems As | Processing of 3-dimensional graphics |
US8284204B2 (en) * | 2006-06-30 | 2012-10-09 | Nokia Corporation | Apparatus, method and a computer program product for providing a unified graphics pipeline for stereoscopic rendering |
KR100762811B1 (ko) * | 2006-07-20 | 2007-10-02 | 삼성전자주식회사 | 하프 플레인 에지 함수를 이용한 타일 비닝 방법 및 시스템 |
US20080055327A1 (en) * | 2006-09-06 | 2008-03-06 | Barinder Singh Rai | Highly Efficient Display FIFO |
US7880747B1 (en) * | 2006-12-13 | 2011-02-01 | Nvidia Corporation | Blend optimizations that are conformant to floating-point rules |
GB2461900B (en) * | 2008-07-16 | 2012-11-07 | Advanced Risc Mach Ltd | Monitoring graphics processing |
GB0823254D0 (en) * | 2008-12-19 | 2009-01-28 | Imagination Tech Ltd | Multi level display control list in tile based 3D computer graphics system |
US8786619B2 (en) * | 2011-02-25 | 2014-07-22 | Adobe Systems Incorporated | Parallelized definition and display of content in a scripting environment |
KR101136737B1 (ko) | 2011-10-07 | 2012-04-19 | (주)넥셀 | 그래픽 처리방법 및 그 장치 |
KR101953133B1 (ko) * | 2012-02-27 | 2019-05-22 | 삼성전자주식회사 | 렌더링 장치 및 그 방법 |
US10169906B2 (en) * | 2013-03-29 | 2019-01-01 | Advanced Micro Devices, Inc. | Hybrid render with deferred primitive batch binning |
US10957094B2 (en) | 2013-03-29 | 2021-03-23 | Advanced Micro Devices, Inc. | Hybrid render with preferred primitive batch binning and sorting |
US9659393B2 (en) * | 2013-10-07 | 2017-05-23 | Intel Corporation | Selective rasterization |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
US10068311B2 (en) | 2014-04-05 | 2018-09-04 | Sony Interacive Entertainment LLC | Varying effective resolution by screen location by changing active color sample count within multiple render targets |
US9865074B2 (en) | 2014-04-05 | 2018-01-09 | Sony Interactive Entertainment America Llc | Method for efficient construction of high resolution display buffers |
US9710957B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Graphics processing enhancement by tracking object and/or primitive identifiers |
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 |
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 |
US10783696B2 (en) | 2014-04-05 | 2020-09-22 | Sony Interactive Entertainment LLC | Gradient adjustment for texture mapping to non-orthonormal grid |
US9495790B2 (en) | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America 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 |
EP3129958B1 (en) | 2014-04-05 | 2021-06-02 | Sony Interactive Entertainment LLC | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters |
US9940686B2 (en) | 2014-05-14 | 2018-04-10 | Intel Corporation | Exploiting frame to frame coherency in a sort-middle architecture |
GB2526598B (en) * | 2014-05-29 | 2018-11-28 | Imagination Tech Ltd | Allocation of primitives to primitive blocks |
KR102482874B1 (ko) | 2015-09-11 | 2022-12-29 | 삼성전자 주식회사 | 렌더링 장치 및 방법 |
KR102644276B1 (ko) | 2016-10-10 | 2024-03-06 | 삼성전자주식회사 | 그래픽 처리 장치 및 방법 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6469704B1 (en) * | 1999-01-19 | 2002-10-22 | Hewlett-Packard Company | System and method for combined execution of graphics primitive data sets |
US6344852B1 (en) * | 1999-03-17 | 2002-02-05 | Nvidia Corporation | Optimized system and method for binning of graphics data |
US6384833B1 (en) * | 1999-08-10 | 2002-05-07 | International Business Machines Corporation | Method and parallelizing geometric processing in a graphics rendering pipeline |
US6819321B1 (en) | 2000-03-31 | 2004-11-16 | Intel Corporation | Method and apparatus for processing 2D operations in a tiled graphics architecture |
KR100550240B1 (ko) | 2000-03-31 | 2006-02-08 | 인텔 코오퍼레이션 | 타일형 그래픽스 아키텍쳐 |
US6741243B2 (en) | 2000-05-01 | 2004-05-25 | Broadcom Corporation | Method and system for reducing overflows in a computer graphics system |
US6557083B1 (en) * | 2000-06-30 | 2003-04-29 | Intel Corporation | Memory system for multiple data types |
US6567084B1 (en) * | 2000-07-27 | 2003-05-20 | Ati International Srl | Lighting effect computation circuit and method therefore |
US6738069B2 (en) * | 2001-12-31 | 2004-05-18 | Intel Corporation | Efficient graphics state management for zone rendering |
-
2001
- 2001-12-31 US US10/039,007 patent/US6738069B2/en not_active Expired - Lifetime
-
2002
- 2002-12-12 WO PCT/US2002/040170 patent/WO2003058557A1/en active Application Filing
- 2002-12-12 AU AU2002367349A patent/AU2002367349A1/en not_active Abandoned
- 2002-12-12 EP EP02806163A patent/EP1461774A1/en not_active Withdrawn
- 2002-12-12 KR KR1020047010391A patent/KR100635437B1/ko not_active IP Right Cessation
- 2002-12-12 JP JP2003558795A patent/JP4076502B2/ja not_active Expired - Fee Related
- 2002-12-12 CN CNB028264657A patent/CN1287330C/zh not_active Expired - Fee Related
- 2002-12-25 TW TW091137284A patent/TWI281639B/zh not_active IP Right Cessation
-
2004
- 2004-02-10 US US10/776,960 patent/US20040160450A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
TW200303495A (en) | 2003-09-01 |
KR20040072694A (ko) | 2004-08-18 |
EP1461774A1 (en) | 2004-09-29 |
AU2002367349A1 (en) | 2003-07-24 |
JP4076502B2 (ja) | 2008-04-16 |
CN1610926A (zh) | 2005-04-27 |
WO2003058557A1 (en) | 2003-07-17 |
US20030122833A1 (en) | 2003-07-03 |
US6738069B2 (en) | 2004-05-18 |
JP2005514711A (ja) | 2005-05-19 |
CN1287330C (zh) | 2006-11-29 |
US20040160450A1 (en) | 2004-08-19 |
KR100635437B1 (ko) | 2006-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI281639B (en) | Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium | |
US10621775B2 (en) | Untransformed display lists in a tile based rendering system | |
JP5053857B2 (ja) | 3次元グラフィックス処理装置および方法 | |
EP1461773B1 (en) | Automatic memory management for zone rendering | |
US8659589B2 (en) | Leveraging graphics processors to optimize rendering 2-D objects | |
US10380712B2 (en) | Graphics processing | |
CN108701367B (zh) | 单遍次包围体阶层光栅化 | |
US10432914B2 (en) | Graphics processing systems and graphics processors | |
US7791601B2 (en) | Efficient object storage for zone rendering | |
US8907979B2 (en) | Fast rendering of knockout groups using a depth buffer of a graphics processing unit | |
US6762765B2 (en) | Bandwidth reduction for zone rendering via split vertex buffers | |
TW201701233A (zh) | 一種電腦系統、繪圖處理單元及其繪圖處理方法 | |
US10269168B2 (en) | Graphics processing systems | |
CN104050619A (zh) | 具有共享边缘的模板然后覆盖路径渲染 | |
US20030123089A1 (en) | Graphics state bandwidth reduction for zone rendering | |
US20230401667A1 (en) | Graphics processing systems | |
CN118012316A (zh) | 用于地图交互的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |