新四季網

用於產生可編程像素包的基本指令光柵級的方法和系統的製作方法

2023-07-05 23:19:16

專利名稱:用於產生可編程像素包的基本指令光柵級的方法和系統的製作方法
技術領域:
本發明的實施例涉及圖形處理器。更具體地說,本發明的實施例涉及用於產生可 編程像素包的基本指令光柵級的方法和系統。
背景技術:
三維圖形圖像的渲染在多種電子遊戲和其它應用中受到關注。渲染是描述從三維 物體的資料庫表示轉變為所述物體在視圖表面上的二維投影的整個多步驟處理的通稱。渲染處理包含若干步驟,例如設置含有隨後著色/紋理處理所需要的信息的多邊 形模型,向所述多邊形網格模型施加線性變換,剔除(culling)朝向背面的多邊形,相對於 視窗體來裁剪所述多邊形,將多邊形掃描轉換/光柵化為像素坐標系,和使用內插或遞增 著色技術來著色/照明各個像素。圖形處理單元(GPU)是通常用於圖形系統以加速3-D渲染應用程式運行的專用集 成電路裝置。GPU通常與中央處理單元(CPU) —起使用以為在計算機系統上執行的一個或 一個以上應用程式產生三維圖像。現代GPU通常使用圖形管線來處理數據。現有技術圖1展示一描繪傳統現有技術管線100的各級的圖。所述管線100是具 有專用於執行特定功能的若干級的常規「深」管線。變換級105執行基元的幾何計算且可 執行裁剪操作。設置/光柵級110將所述基元光柵化。紋理地址115和紋理拾取120級用 於紋理映射。霧化級130實施霧化算法。α測試級135執行α測試。深度測試140執行深度測試以剔除被遮擋的像素。α摻合級145執行α摻合色彩組合算法。存儲器寫入級150寫入管線的輸出。圖1中所說明的傳統GPU管線結構的級通常通過使用廣泛實施的圖形編程 API (應用程式編程接口)(例如OpenGL 圖形語言、Direct3D 和類似物)來為高速渲染 操作(例如紋理、照明、著色等)而最佳化。管線100的結構被配置為多級深管線結構,以 使得管線的整體渲染處理量最大化。一般來說,深管線結構具有足夠的數據處理量(例如, 像素填充率等)以實施更加複雜的場景的快速、高質量渲染。在可攜式手持裝置中使用三維圖形越來越受到關注,在這類裝置中,成本和功率 消耗是重要的設計要求。此類裝置包括(例如)無線電話、個人數字助理(PDA)和類似裝 置。然而,傳統深管線結構需要相當大的晶片面積,從而導致成本高出期望成本。另外,即 使所述級正執行相對較少的處理,深管線也會消耗相當大的功率。這是因為所述級中有許 多級不論是否正在處理像素都會消耗大致相等量的功率。由於考慮到成本和功率,圖1中所說明的常規深管線結構不適於許多圖形應用, 例如在無線電話和PDA上實施三維遊戲。因此,需要一種適用於圖形處理應用但具有降低 的功率和尺寸要求的處理器結構。在圖形結構管線的傳統開端(例如,光柵化模塊)之前,不考慮即將到來的管線所 使用的功率損耗(power draw)和門(gate)的數目。然而,不考慮手持計算裝置所使用的 功率和門將不利地影響其整體操作。具體地說,功率和門使用因素將導致手持裝置和其上 展示的任何圖形的極為不良的操作。對功率損耗和門使用的主要影響因素之一是像素包大 小。亦即穿過管線的每個像素的數據大小,其影響(例如)總線大小,且還影響每個管線級 的電路複雜度。在常規應用中,功率消耗並不重要,且因此像素包可能非常大。此外,當較 大像素包在不同級處被處理時,圖形管線的若干部分可保持延長期限的閒置。由於光柵級 110的固定功能,在像素數據處理期間可發生較大功率損耗和門使用。

發明內容
因此,本發明在各種實施例中提供一種用於產生可編程像素包的允許基本指令的 光柵級的方法和系統。此外,本發明提供一種產生可編程像素包的可編程光柵級,其將像素 包的整體大小降低為一個或一個以上更小的像素信息行以由每個時鐘處理,從而允許一寬 度降低的管線總線。另外,本發明提供一種產生可編程像素包的光柵級,其允許軟體編程其 中在每個時鐘上壓縮數據的方式。另外,本發明的實施例提供一種在像素包壓縮和處理期 間消耗較少功率且使用更少門的光柵級。本發明的實施例涉及用於光柵器模塊的方法和系統。在一個實施例中,由圖形管 線的光柵化模塊執行包括複數個頂點的幾何基元的光柵化,其中所述頂點具有一個或一個 以上個別參數(例如,色彩值或紋理坐標)。所述光柵化包括複數個可編程內插器以用於 為一幾何基元的像素計算像素參數。所述光柵化模塊還包括一用於存儲與第一可編程內插 器相關聯的第一指令的存儲器,所述第一指令用於指示所述第一可編程內插器將對其操作 的第一參數,且另外指示用於存儲其結果的像素包的第一部分。所述光柵化模塊還包括一 用於存儲與第二可編程內插器相關聯的第二指令的存儲器,所述第二指令用於指示所述第 二可編程內插器將對其操作的第二參數,且還指示用於存儲其結果的所述像素包的第二部分。通過使用此方式,像素包的內容和數據的位置在軟體控制下是完全可編程的。上述可 重複若干時鐘周期以產生一多行像素包,其中每個行中的內容和數據位置是可編程的。在另一實施例中,揭示一種用於在手持計算裝置上使用一可編程像素包的設備。 首先,在光柵器處接收一幾何基元。接著,圖形管線的光柵化模塊處理所述基元(例如,三 角形)以形成具有靈活大小和結構的像素包。在一個實施例中,光柵化模塊可在指令控制 下針對像素數據包的每個行不同地重新分配以在不同時間處執行不同操作,從而導致來自 光柵化模塊的一靈活的且可編程的像素包。可針對每個新基元更新像素包格式。在本發明的多個實施例中,本發明可通過由提供數據壓縮和多行像素包來降低總 線寬度從而顯著降低手持計算裝置上圖形結構的帶寬要求。另外,本發明降低了手持計算
裝置上圖形結構的功率消耗。本發明進一步降低了用於手持計算裝置上圖形結構的門的數 目。


在附圖的圖式中以實例方式而並非以限制方式來說明本發明,且其中類似參考元 件符號指代相似元件。現有技術圖1展示描繪傳統現有技術管線的各級的圖。圖2展示根據本發明一個實施例的計算機系統。圖3展示根據本發明第二實施例的計算機系統。圖4是說明包含根據本發明一個實施例的可編程圖形處理器的組件的方框圖。圖5展示根據本發明一個實施例在光柵級內實施的複數個高精度和低精度內插 器的示範性圖。圖6展示描繪根據本發明一個實施例的藉此由光柵化級從設置級處接收圖形基 元且將其轉換為其構成像素包的處理的示範性流程圖。圖7是展示根據本發明一個實施例的在一管線中處理像素包的數據流程圖。圖8是根據本發明一個實施例展示的載入寄存器中的像素數據的方框圖。圖9展示根據本發明一個實施例的處理的步驟的流程圖。圖10說明根據本發明一個實施例用於降低色彩值大小的數據流程圖。圖11是根據本發明一個實施例的色彩值降低的方框圖。圖12是根據本發明一個實施例用於降低手持計算裝置上的圖形結構的功率消耗 的示範性處理的流程圖。圖13是根據本發明一實施例的幾何基元的方框圖。圖14展示描繪根據本發明一個實施例的箝位ζ值內插處理中所使用的多邊形和 有界框的圖。圖15展示根據本發明一個實施例的箝位ζ值內插處理的步驟的流程圖。圖16展示由本發明實施例使用的示範性紋理映射(例如,「紋理」)的圖。圖17展示具有根據本發明一個實施例而應用的紋理的包覆版本的多邊形。圖18展示具有根據本發明一個實施例而應用的紋理的箝位版本的多邊形。圖19展示根據本發明一個實施例的紋理坐標參數箝位處理的步驟的示範性流程 圖。
圖20展示根據本發明一個實施例的示範性多小中見大映射(mip mapping)處理的圖。圖21展示根據本發明一個實施例的LOD參數箝位處理1000的步驟的流程圖。
具體實施例方式現將詳細參看本發明的優選實施例,其實例在附圖中說明。儘管將結合優選實施 例來描述本發明,但應了解不希望其將本發明限於這些實施例。相反,希望本發明涵蓋可包 括於如附隨權利要求書所限定的本發明精神和範圍內的替代物、修改和等效物。此外,在本 發明實施例的以下詳細描述中,陳述多個特定細節以提供對本發明的徹底理解。然而,所屬 領域的技術人員將認識到可在不存在這些特定細節的情況下實踐本發明。另外,未詳細描 述眾所周知的方法、程序、組件和電路以免不必要地混淆本發明實施例的方面。符號和術語從計算機存儲器內對數據位所進行的操作的程序、步驟、邏輯塊、處理和其他符號 表示的角度來展現以下詳細描述的某些部分。這些描述和表示是數據處理領域的技術人員 用以將其作品實質最有效地傳達給所屬領域的其他技術人員的方式。程序、計算機執行的 步驟、邏輯塊、處理等在此處且一般來說被認為是導致希望結果的自相容步驟或指令序列。 所述步驟是需要對物理量進行物理操作的步驟。通常(儘管不必要),這些量採用能在計算 機系統中存儲、傳遞、組合、比較或以其他方式操作的電信號或磁信號的形式。已多次證實 將這些信號稱為位、值、元素、符號、字符、項、數字或類似形式是便利的,主要是因為常見用 法的緣故。然而,應記住所有這些和類似術語與適當物理量相關聯且僅僅是應用於這些量的 方便的標記。除非另外特別規定(從以下論述中易見),否則理解為在本發明中,使用例如 「處理」或「存取」或「執行」或「存儲」或「渲染」等術語的論述始終指代計算機系統(例如 圖2的計算機系統200)或類似電子計算裝置的行為和處理,其操作表示為計算機系統的寄 存器和存儲器內的物理(電子)量的數據並將其變換為類似地表示為計算機系統存儲器或 寄存器或其它此類信息存儲、傳輸或顯示裝置內的物理量的其它數據。計算機系統平臺現參考圖2,其展示根據本發明一個實施例的計算機系統200。根據本發明一個實 施例的計算機系統200提供執行平臺以實施本發明的某種基於軟體的功能性。如圖2中描 繪,計算機系統200包括一 CPU 201,其通過主機接口 202耦合到圖形處理器205。所述主機 接口 202將在CPU 201與圖形處理器205之間傳遞的數據和命令翻譯為其相應格式。CPU 201和圖形處理器205均通過存儲控制器220耦合到存儲器221。在系統200實施例中,存 儲器221是共享存儲器,這是指存儲器221藉以存儲用於CPU 201和圖形處理器205兩者 的指令和數據的性質。通過存儲控制器220對共享存儲器221進行存取。共享存儲器221 還存儲包含驅動所耦合的顯示器225的視頻幀緩衝器的數據。如上所述,本發明的某些處理和步驟在一個實施例中實行為常駐於計算機系統 (例如,系統200)的計算機可讀存儲器(例如,存儲器221)內且由系統200的CPU 201和 圖形處理器205執行的一系列指令(例如,軟體程序)。當執行時,所述指令使得計算機系 統200實施本發明的功能性(如下文所述)。
如圖2中所示,系統200展示實施本發明功能性的計算機系統平臺的基本組件。相應地,系統200可構建為(例如)若干不同類型的可攜式手持電子裝置。此類裝置可包括 (例如)移動式電話、PDA、手持遊戲裝置和類似物。在這類實施例中,將包括被設計成添加 外圍總線、專用通信組件、用於專用IO裝置的支持體和類似物的組件。另外,應了解,雖然組件201到225在圖2中描繪為離散組件,但所述組件201到 225中的若干者可構建為單個單片集成電路裝置(例如,單個集成電路小片),其經配置以 利用由現代半導體製作工藝提供的高集成度。舉例來說,在一個實施例中,CPU 201、主機接 口 202、圖形處理器205和存儲控制器220被製作成單個集成電路小片。圖3展示根據本發明一個替代性實施例的計算機系統300。計算機系統300大體 上類似於圖2的計算機系統200。然而,計算機系統300使用具有專用系統存儲器321的處 理器201和具有專用圖形存儲器322的圖形處理器205。在系統300實施例中,系統存儲器 321存儲用於在CPU 201上執行的處理/線程的指令和數據,且圖形存儲器322存儲用於那 些在圖形處理器205上執行的處理/線程的指令和數據。圖形存儲器322存儲用於驅動顯 示器225的視頻幀緩衝器的數據。如同圖2的計算機系統200 —樣,計算機系統300的組 件201到322中的一者或一者以上可集成到單個集成電路小片上。圖4是說明包含根據本發明一個實施例的示範性可編程圖形處理器205的組件的 方框圖。如圖4中描繪,圖形處理器205包括一設置級405、一光柵級410、一門監級420、一 數據拾取級430、算術邏輯單元(ALU)管線440和一數據寫入級455。在一個實施例中,可 編程圖形處理器205包括若干ALU 450,所述ALU 450經配置以執行一著色器程序以實施 3D圖形操作,例如紋理組合、霧化、α摻合、α測試或其他著色算法。然而,應了解,在以下 整個論述中,可編程圖形處理器205還可經配置以執行其它類型的處理操作。設置級405從主機(例如從在CPU 201上運行的軟體應用程式)接收指令和圖形 基元。在一個實施例中,設置級405執行坐標(X形式)的幾何變換、裁剪和設置的功能。 設置單元從基元中獲取頂點信息(例如,x,y,z、色彩和/或紋理屬性等),且應用用戶定義 的視圖變換以為每個幾何基元(通常稱為三角形,因為基元通常實施為三角形)計算屏幕 空間坐標,所述屏幕空間坐標接著被發送到光柵級410以繪製給定三角形。可包括一頂點 緩衝器408,以提供用於由設置級405使用的頂點數據的緩衝器。在一個實施例中,設置級 405設置重心坐標變換。在一個實施方案中,設置級405是一浮點超大指令字(VLIW)機,其 支持32位IEEE fl、S15. 16定點和壓縮· 8格式。光柵級410接收來自設置級405的關於待渲染(例如,轉換為像素)的三角形的 數據。光柵級410通過內插法來為給定三角形的每個像素處理參數,且確定需要作為渲染 的一部分而為像素內插的著色器屬性,例如計算色彩、紋理和霧化摻合因素。在一個實施例 中,光柵級410計算像素包的重心坐標。在重心坐標系中,相對於三角形的頂點來測量三角 形中的距離。重心坐標的使用降低了所需動態範圍,其允許使用與浮點計算相比需要更小 功率的定點計算。光柵級410為待處理的三角形的每個像素產生至少一個像素包。每個像素包包括 用於處理所需的一有效負荷的像素屬性(例如,色彩、紋理、深度、霧化、(X,y)位置)以及 邊帶信息、和待對像素包執行的操作指令序列的欄位。光柵級410中的指令區(未圖示) 將指令序列號指定給像素包。邊帶信息還可包括一有效欄位和一取消欄位。像素包可包括一行或一行以上像素信息。門監級420對下遊單元執行數據流控制功能。在一個實施例中,門監級420具有 一用於像素包的排程、負載平衡、資源分配和危害避免的相關記分板425。記分板425追蹤 像素的進入和引退。進入門監級420的像素包設定記分板,且當像素包在完成處理或標為 取消之後從圖形處理器205排出(例如,引退)時重設記分板。數據拾取級430拾取用於由門監420傳遞的像素包的數據。此可包括(例如)通 過為像素包的每個行執行恰當色彩、深度或紋理數據讀取來拾取色彩、深度和紋理數據。數 據拾取級430可(例如)從幀緩衝器(未圖示)拾取像素數據、從紋理映射拾取紋素數據 (texel data),且還可管理一局部紋理/霧化高速緩衝存儲器432和一色彩/深度高速緩 衝存儲器434。在將像素包發送到下一級之前,將所拾取的數據放置在像素包欄位上。所述像素包的行進入一算術邏輯單元(ALU)管線440以用於處理。ALU管線440 具有一序列的ALU。儘管圖中說明了四個ALU,但可依據應用而在ALU管線440中使用更多 或更少的ALU。ALU管線440的輸出轉到數據寫入級455。數據寫入級455將像素包轉換為像素 數據,且將結果(例如,色彩、ζ深度等)存儲在寫入緩衝器452中,或直接存儲到存儲器中 的幀緩衝器中。數據寫入級455可執行的功能的實例包括色彩和深度回寫以及格式轉換。圖5展示根據本發明一個實施例在光柵級410內實施的複數個可同時操作的內插 器501到508的圖。如圖5中描繪,展示一組高精度內插器(例如,四個內插器501到504) 和一組低精度內插器(例如,四個低精度內插器505到508)。如上文所述,光柵級410接收來自設置級405的關於待渲染(例如,轉換為像素) 的三角形的數據。對於每個所接收的三角形來說,光柵級410將三角形光柵化為其構成像 素中的每一者,其中為每個像素內插若干參數。光柵器通過以確定性順序方式系統地評估 每個像素(例如,「遍歷」三角形)來為三角形的每個像素計算渲染參數。通過內插處理根 據與三角形頂點相關聯的數據計算所述參數。光柵級410有利地使用一陣列可編程內插器501到508來並行計算參數。當光柵 級410遍歷每個像素時,所述像素的參數被迭代;且所得數據被傳遞到管線的隨後級(例 如,作為一像素包)。內插結果可被放置在像素包中的可編程選擇的位置中。如一般所知, 複雜3D場景可通常具有大量多邊形且另外具有對於每個多邊形的大量渲染參數。這類參 數包括(例如)色彩、紋理坐標、透明度、深度、細節級別(LOD)和類似物。實時3D渲染管 線需要每秒執行幾百萬次計算以維持每秒繪製真實60到70幀所需的像素處理量(例如填 充率)。光柵級410使用並行陣列的內插器501到508以維持所需像素填充率且同時節約 功率消耗和矽面積。內插器501到508的輸出用於構造複數個像素包行(例如,存儲器陣列中的數據 結構)。在本實施例中,可編程壓縮邏輯模塊510(例如,包括縱橫開關)通過將內插器501 到508的輸出排列成數據包行並格式化隨後處理所需的像素參數(例如,色彩、紋理、深度、 霧化等)的行的欄位來運行。(例如內插器501到508的)在行中的放置是可編程的。除 了這些參數,壓縮邏輯模塊510還將(例如用於待對像素包執行的隨後操作的)處理指令 排列成像素包行。舉例來說,當一像素被迭代時,由內插器501到508產生的所計算的參數 使得圖形管線的隨後級能拾取完成像素渲染需要的所需表面屬性(例如,色彩、紋理等)。對於簡單3D場景,可使用單個行(例如,一單行像素包)來描述一給定像素。比較起來,對於更複雜的3D場景來說,一給定像素描述可能需要複數個行(例如,四行像素包)。在本實施例中,內插器501到508為可編程的且可對其靈活地指定內插計算。換 句話說,內插器的參數指定是可編程的。所分配的內插計算可經軟體排程,以便儘可能地將 所述八個內插器中的每一者保持繁忙(例如,在每個時鐘的基礎上)。在一個實施例中,軟 件排程器確保將內插器501到508保持繁忙並避免等待/空閒時間。以此方式,可將給定 像素參數計算靈活地分配給內插器501到508中的任一者。當為一三角形進行分配時,內 插器的參數分配對於所述三角形的每個像素而言為固定的。對於下一個三角形,參數分配 可被重新編程或者以其他方式重新配置。以此方式,內插器的參數分配在每個三角形基礎 上是可編程的。在本實施例中,所述陣列的內插器501到508被劃分成高精度內插器(例如,內插 器501到504)和低精度內插器(例如,內插器505到508)。所述劃分經配置以維持內插 計算的可靈活分配能力,且同時節約用於內插器陣列的矽面積。所述劃分經配置以利用有 些參數需要以高精度來計算(例如,紋理坐標)而其它參數則不需要的事實。對於此類低 精度參數來說,由高精度計算給予的額外精度對所得圖像並無顯著作用。因此,可將低精度 參數分配給低精度內插器505到508。實施低精度內插器505到508需要明顯更少的矽面 積。另外,低精度內插器505到508每時鐘周期消耗更少的功率。對於手持裝置來說,這些 是重要的設計考慮。在一個實施例中,內插器501到508對於其參數計算使用重心坐標。如上所述,使 用重心坐標允許使用與浮點計算相比需要更少功率的定點計算。在一個實施例中,高精度 內插器501到504產生複數個14位內插係數,且低精度內插器505到508產生複數個8位 內插係數,儘管可實施任何解析度範圍。一般來說,為內插係數所選擇的精確度由對於所得 高和低精度內插值可容忍的最大容許誤差規定。另外,在一個實施例中,內插器501到508對於其參數計算使用透視修正重心坐 標。此允許由內插器501到508內插透視修正參數。在一個實施例中,透視修正處理使用 一透視修正像素參數「W」,所述參數「W」以浮點精度而為三角形的每個像素計算一次。圖6展示描繪根據本發明一個實施例的藉此由光柵化級410從設置級405處接收 圖形基元(例如,多邊形630)且將其轉換為其構成像素包的處理的流程圖。如上文所述,光柵級410接收來自設置級405的關於待渲染(例如,轉換為像素) 的三角形(例如,多邊形)的數據。此在圖6中說明為三角形630從設置級405傳播到光 柵級410。三角形630包含一幾何基元,其與指示光柵化和渲染三角形的方式的指令(例 如,指令631)和基元數據(例如,諸如色彩、紋理坐標、透明度、xy、深度等)相關聯。光柵級410包括一指令單元635,其接收並處理與三角形630相關聯的指令631, 且控制由內插器陣列(例如,內插器501到508)載入和處理基元數據632的方式。指令 631包括控制在三角形的每個像素上待內插三角形630的基元數據632的方式的光柵內插 指令。如上所述,從與三角形頂點相關聯的基元數據632內插用於三角形的每個像素的參 數。光柵指令631控制(例如,基元數據632的)哪個參數由高精度內插器(例如,內插器 501到504)或低精度內插器(例如,內插器505到508)中的哪個來處理。換句話說,指令 單元實施一可編程的基於軟體的排程器,其根據光柵指令631來向內插器501到508排程並分配參數數據內插計算。光柵指令631還控制來自內插器501到508的內插結果將載入所產生的數據包的每一行的位置。指令單元635與壓縮邏輯510互相作用,以實施所要行卸載。以此方式,光柵指令631控制三角形630的像素包的建立。舉例來說,對於三角形 630的每個像素,光柵指令631確定用於內插器501到508中每一者的參數輸入,且還確定 內插參數輸出的行位置、用於隨後處理所需的像素參數(例如,色彩、紋理、深度、霧化等) 的欄位和用於像素包的隨後操作的處理指令序列號。在典型操作中,每個時鐘周期形成一 像素包的一個行。因此,在兩個時鐘周期中建立兩行像素包,在三個時鐘周期中建立三行像 素包,且因此,在η個時鐘周期中建立η行像素包。像素包形成(例如,像素包641到642) 後,其傳播到管線的隨後級。如上所述,應注意到在一個實施例中,將基元數據632分配給內插器陣列636的編 程(例如,將哪些參數分配給內插器501到508中的哪個)在每個多邊形基礎上是可編程 的。舉例來說,當指令單元635分配內插器陣列636來建立三角形630的像素包時,所述配 置對於三角形630的每個構成像素保持恆定。圖7展示根據本發明一個實施例說明像素包520的數據流程圖。如上文所提及, 像素包一般來說是對圖形顯示器中一像素的完整的一組描述。在本實施例中,像素包520 包括邊帶信息710和有效負荷信息720。在一個此類實施例中,有效負荷信息720包括(例 如)用於與像素包520相關聯的像素的色彩信息、深度信息和紋理信息。在本實施例中,邊帶信息710包括一具有一個或一個以上位的「類型」欄位711。 可能有不同類型的數據包流經圖4的管線400。所述類型欄位用於將像素包520識別作為 含有像素數據的像素包的一行。在本實施例中,圖7的邊帶信息710可包括一「偶數/奇數」(e/o)欄位712。在 一個實施例中,所述e/o欄位712的長度為單個位。另外,圖7的邊帶信息還包括一「取消」 欄位713。在一個實施例中,所述取消欄位713的長度為單個位。如上文所提及,如果所述 取消位設定在圖4管線400的某處,那麼像素包將行進穿過管線400的其餘部分而不進行 有效處理。在本實施例中,圖7的邊帶信息710包括一「序列」欄位714。在一個實施例中,所 述序列欄位的長度為三個位。所述序列位將像素包520連結到將在隨後級(例如,DF430、 ALU級440和DW 455)中應用到像素包的指令。繼續參看圖7,在本實施例中,像素包520的有效負荷部分720中的數據在圖3的 光柵級310中被分成一個或一個以上「行」 0、1、……、N。也就是說,有效負荷部分720可 由單個數據行組成,或其可由一組行組成。像素包520的邊帶信息710與從有效負荷部分720形成的每個行或多個行相關 聯。在一個實施例中,每個行包括邊帶信息710和80位的像素數據,如圖7中說明。隨著每個新的時鐘周期,在圖4的管線400中連續處理像素包520的每個行。舉 例來說,行0在第一時鐘處開始沿管線400向下行進,接著在下一個時鐘處為行1,等等。一 旦與像素包520相關聯的所有行被載入管線400中,那麼與下一個像素包相關聯的行被載 入管線400中。在一個實施例中,一個像素包的像素數據行與來自下一個像素包的像素數 據行交錯。通過以此方式來交錯像素包的行,可避免因管線400中功能單元等待而導致的停止。現參看圖8,根據本發明一個實施例來展示載入寄存器中的像素數據的方框圖。每 個行821中的像素數據的長度為80位。在一個此類實施例中,通過使用四(4)組20位值 (例如,822到825)來表示每個行821中的像素數據。所述20位值的組中的每一者可表示一 個或一個以上像素數據例子。一 20位像素數據組中可包括的像素屬性的實例包括但不限 於16位Z深度值835 ;16位(s,t)紋理坐標850和4位細節級別值830 ;—對色彩值840, 其每一者具有十(10)位的精度(例如,10位高精度和10位低精度);或壓縮的5555RGBA 845 (紅、綠、藍、α)值,其每者的長度為五(5)位。特定數據布局或壓縮格式取決於如何由 光柵指令為基元編程內插器。如本文所述,命令迭代的指令(例如,4個高精度和4個低精度指令)正分配4個 高精度內插器中的一者獲取像素設定級405發送的一個參數並對所述參數執行插入。此 夕卜,指令中的目標指示如何壓縮行821中的內插的數據。舉例來說,光柵級410在整個幾何 基元(例如,三角形或類似物)上逐個像素地遍歷,內插所有參數且將其壓縮成80位值以 沿管線400向下流動。在一個實施例中,光柵級405每個時鐘可執行4個高精度和4個低精度迭代值。對 光柵級405進行操作的軟體將以像素的時鐘長度來編程內插器。舉例來說,如果像素包將 僅採用一個具有80位的行821,或如果其具有足夠的紋理從而需要複數個行821以含有用 於所述像素的所有數據。此外,像素數據到行821的20位組(例如,822到825)的分配也 隨著每個幾何基元而變化。也就是說,每個幾何基元的分配和指令在光柵級405中是固定 的,但其在幾何基元之間是可變的。圖9展示根據本發明一個實施例的處理900的步驟的流程圖。如圖9所描繪,處 理900說明根據本發明一個實施例由光柵級410增建一靈活性像素包所包含的步驟。處理900在步驟901中開始,其中光柵級410從圖形管線的設置級405處接收或者 存取一多邊形。在步驟902中,所述多邊形被光柵化為複數個構成像素。在步驟903中,根 據用於多邊形的光柵指令將像素的參數計算分配給一組低精度內插器(例如,內插器505 到508)和一組高精度內插器(例如,內插器501到504)。如上所述,多邊形包含構成幾何 基元數據和相關聯的光柵指令(例如,控制多邊形的像素包增建的指令)。光柵級410內的 一指令單元635分配內插器501到508以處理多邊形的像素且建立像素包。在步驟904中,並行執行所分配的內插器計算。在步驟905中,根據多邊形的光柵 指令將所得內插器輸出載入到一像素包的一行中。如上所述,指令單元635分配壓縮邏輯 510而以特定方式建立像素包。在步驟906中如果完成像素處理,那麼在步驟908中,處理 900將完成後的像素包輸出到圖形管線的隨後級中。否則,處理900前進到步驟907,且為 像素包的下一行並行執行所分配的內插計算。以此方式,建立像素包的逐個行,直到完成像 素的描述為止。如上所述,簡單3D場景可通常對於每個像素包具有一個行,而相對複雜的 場景可對於每個像素包具有兩個、三個或更多個行。現參看圖10,根據本發明一個實施例來展示用於降低色彩值大小的方法的數據流 程圖。具體地說,圖1000展示進入本發明的光柵模塊410中的具有任何大小的幾何基元 1005 (例如,三角形)。當幾何基元1005進入圖形管線的光柵化模塊410時,光柵化模塊410 通過內插器1010內插幾何基元1005以產生一第一色彩值1020。一般來說,內插器1010以逐個像素的方式內插幾何基元以將數據從幾何基元1005數據變換為像素數據。在一個實 施例中,第一色彩值1020是一高位色彩值(例如,8位或更高)。接著在光柵模塊410的截斷1025部分處截斷所述第一色彩值1020。一般來說,截 斷從一組位中移除最低有效位。舉例來說,截斷1025部分可截斷第一色彩值1020 (例如, 8位色彩值)以產生一被截色彩值1030 (例如,5位色彩值)。光柵化模塊410接著使用一 抖動臺1040以抖動被截色彩值以產生一被截且抖動的色彩值1050。一般來說,抖動用於 降低通常與被截色彩值1030相關聯的條帶效應。接著被截且抖動的色彩值1050從光柵化 模塊410中傳播出來,並進入下遊管線1055的其餘部分。通過這樣做,與色彩值的傳播和 處理有關的功率使用被最小化。應注意,所述截斷和/或抖動的選擇可為一可編程屬性,以 使得軟體應用程式可選擇使用色彩值的全部色彩精度還是使用被截/抖動版本,其中假設 管線的其餘部分同樣為可編程的。這是合乎需要的,因為簡單像素(即,僅使用內插色彩值 的像素)可能需要更高的精度以達到視覺合意,而複雜像素(即,涉及許多處理步驟(例如 紋理、霧化等)的像素)受到迭代色彩的總作用較低,且因此較不需要全色彩精度以便維持 較高的整體視覺質量。進一步需要允許抖動選擇獨立於截斷色彩值的選擇,因為某些圖形 API ( S卩,OpenGL)需要這種靈活性。現參看圖11,根據本發明一個實施例來展示通過截斷而減小色彩值的方框圖。一 般來說,圖1100說明具有長度1110的N個位的第一色彩值1020。在減小的文件1120中, 經過變換的色彩值1030的一部分已被截斷或移除。所得1120因此比原始N位文件更小且
更容易處理。舉例來說,原始文件大小1110可為8位,例如N將為八,色彩值1130可為三位寬 且將導致具有5位的被截色彩值大小1120。接著將通過管線來處理所述5位。注意到,所 述5位僅僅是複數個可能被截大小選項中的一者。此外,眾所周知色彩值1110或1120位大 小是每個色彩的。也就是說,1110(或1120)可為一紅色彩值、或藍色彩值、或綠色彩值、或 設計者希望的任一其他參數。然而,其僅為單個色彩值,且以相同方式來處理其他色彩值。 因此,如果在一個實施例中圖形管線使用了三色應用程式,那麼將有三個1120位部分需要 通過管線來處理。沒有一個單個1120位部分涵蓋所有色彩。現參看圖12,根據本發明一個實施例展示用於降低手持計算裝置上的圖形結構的 功率消耗的處理的流程圖1200,其使用減小的位寬度色彩值。現參看圖12的步驟1202,光柵級410從圖形管線(例如,圖形管線205)的設置 級405處接收三角形基元。如上所述,三角形具有控制手持計算裝置的圖形管線渲染其構 成像素的方式的若干參數。如本文陳述,手持計算裝置可以是行動電話、尋呼機、個人數字 助理或類似物。此外,圖形管線可以是與手持計算裝置的處理器或邏輯耦合的即插即用組 件。在另一實施例中,圖形管線可在製造時與手持計算裝置固定耦合。現參看圖12的步驟1204和圖10,在一個實施例中,通過在圖形管線的光柵化模 塊410的內插器1010處的內插來產生一色彩值1020。如本文陳述,色彩值1020可具有任 何大小,例如8位、16位、32位或類似大小。在一個實施例中,像素參數的計算包括內插包 括複數個頂點的幾何基元1005,其中每個頂點具有一各自的色彩值,且內插由光柵化模塊 410的內插器部分1010來執行。舉例來說,光柵器最初為幾何基元的每個像素內插一各自 的色彩值,其中所述各自的色彩值具有一第一位寬度(例如,8位、16位、32位等)。
現參看圖12的步驟1206和圖10,在一個實施例中,內插色彩值1020在截斷部分 1025處被截斷。在一個實施例中,截斷可導致減少到一第二位寬度的被截色彩值1030,以 產生一各自的被截色彩值。在一個實施例中,所述第二位寬度可為2到7之間的任何位數。 如所屬領域中眾所周知,截斷僅僅是色彩的可能變化形式數目的減少。舉例來說,一色彩塊 或文件可作為紅色的變化形式而引入截斷部分1025。最初色彩參考可為粉色(例如,8位 色彩),在截斷部分1025處的截斷處理期間,新色彩參考(例如,被截色彩值1030)可為淡 紅色(例如,5位色彩)。在此情況下,拋棄最低有效的3個位。因此,如所屬領域中眾所周 知,色彩值大小和實際參考色彩已被改變。現參看圖12的步驟1208和圖10,在一個實施例中,所得被截(例如,變換等)色 彩值1030由抖動臺1040更改(例如,抖動等)。舉例來說,經過變換的色彩值1030可通過 使用一基於屏幕位置的抖動臺1040來抖動以產生一被截抖動色彩值1050。另外,各自的被 截抖動色彩值1050可傳播到圖形管線的下遊模塊1055。在一個實施例中,所述基於屏幕位 置的抖動臺1040基於每個像素的屏幕位置來返回一抖動值,且其中抖動值用於更改每個 像素的各自的色彩值以防止可能由色彩形成引起的視覺假象。如所屬領域中眾所周知,抖動是用於在不能得到特定圖像中全部範圍的色彩(例 如,由於截斷或調色板大小減小)時改良圖像的處理。舉例來說,如果將顯示一梯度而系 統不具有顯示組成「梯度」的所有著色塊(shade)的資源,那麼便對圖像(或色彩)進行抖 動。也就是說,以通過用空間解析度換取色彩解析度來重建缺少的色彩的方式來混合剩餘 色彩。舉例來說,如果所需要的色彩是粉色,那麼光柵模塊410可在複數個紅色像素內散布 一些白色像素。通過這樣做,眼睛將所散布的白色與紅色摻合,且「看到」粉色。因此,在梯 度實例中,通過引入在整個梯度中散布的較多白色和較少紅色,色彩從紅色光滑地過渡到 白色。此可基於正抖動的像素的屏幕位置。通過在光柵化模塊1025處產生一被截抖動色彩值1050,降低了完成手持計算裝 置上圖形管線的管線所必需的門的數目和功率。除了色彩值的截斷和抖動之外,在一個實施例中,光柵化模塊410可截斷並抖動 內插的色彩值。此外,光柵化模塊410可在截斷且抖動文件之後向內插的色彩值應用數學運算。現參看圖13,根據本發明的一實施例展示幾何基元的方框圖。一般來說,在一個實 施例中,幾何基元是具有三個頂點1330的三角形。如所屬領域中眾所周知,所述三個頂點 1330是建立所述三角形所必需的坐標。在幾何基元1300的色調變化中展示條帶問題1310。 條帶由位色彩的降低和調色板的隨之降低而造成。抖動部分1320說明導致有限調色板上 較光滑的表觀色彩過渡的抖動的一示範性實施例。雖然展示了一種抖動形式,但所屬領域 中存在多種眾所周知的抖動方法,且本發明可使用這些抖動方法。圖14展示一描繪根據本發明一個實施例在ζ值內插處理中所使用的多邊形1401 和有界框1402的圖。如圖14中所描繪,相對於ζ軸1405和χ軸1406來展示多邊形1401。 y軸(未圖示)與ζ軸1405和χ軸1406正交。在一個實施例中,光柵級410存取包含多邊形1401 (例如,三角形)的基元且將三 角形光柵化為其構成像素。所述有界框1411在三角形1401的光柵化處理中由光柵級410 的光柵器模塊(例如,光柵器)使用。接著從頂點1411到1413內插每個像素的相關聯參數。這些參數包括深度參數Z。在三角形1401的光柵化期間,由光柵級410為三角形1410 的每個像素內插各自的ζ值。每個ζ值在一預定數值範圍(例如零的整數部分和從零到一 的小數部分)內表示,所述預定數值範圍對應於一近端裁剪平面1408與一遠端裁剪平面 1407之間的深度範圍,其與視窗體有關。在裁剪平面外部的ζ值不是屏幕可顯示位置。如一般所知,近端裁剪平面1408與遠端裁剪平面1407之間的ζ值包含視窗體的 內邊界和外邊界。因此,三角形1401可具有一比遠端裁剪平面1407離視點更遠的重大部 分(例如,那些大於1的ζ值)和/或比近端裁剪平面1408更近的重大部分(例如,那些 小於零的ζ值)。以此方式,那些作用於場景的像素的標準ζ範圍為0. 0到1. 0 (例如,在近 端裁剪平面與遠端裁剪平面之間)。因此,有界框1402極大部分地在這個範圍外延伸。在一個實施例中,光柵級410利用這樣的事實,即ζ值的有效範圍是模塊化的(從 0. 0到1. 0)且當ζ參數的整數值增加或減小時始終如一地並確定性地重複。舉例來說,在 現有技術中,圖形管線將需要為在有效範圍外延伸的ζ值容納相當大的範圍。相反,在光柵 級410中,在每個像素的ζ值迭代期間,允許ζ值的小數部分在這個模塊框架內「翻轉」,且 以每個新整數遞增或遞減的形式重複,且允許所述整數值在有效範圍外部遞增或遞減(例 如,大於1時遞增且小於零時遞減)。當確定Z值在近端/遠端裁剪平面外部時可記錄一標
ο因此,舉例來說,即使光柵級410的ζ步進器可在-2. Oz值處開始,當光柵級410 步入視窗體(例如0.0與1.0之間的Z值)時,小數部分將正確且始終如一地運轉。類以 地,在ζ步進處理在正6. Oz值處開始的情況下,當整數值從6. 0步進到0. 0時,ζ的小數部 分將始終如一地且確定性地翻轉。能夠利用這個行為,因為其它分別迭代的參數(重心系 數)確定哪些像素在基元的二維x,y投影內。光柵化修正ζ值僅在x,y平面中的基元的此 二維投影內是重要的;在此區域外部,ζ步進器僅需充當一誤差項,以使得當光柵器步入三 角形中時產生修正ζ值。ζ步進函數的模塊化特徵允許整數部分必要時遞增和遞減,而光柵級410僅需對ζ 的模塊化小數部分(例如,從0. 0到1. 0)保持精確跟蹤。舉例來說,如果Z在視窗體外部 增加,可拋棄正整數。類似地,如果ζ在視窗體外部減小,可拋棄負整數。此允許光柵級410 對於ζ的整數部分(例如,在0.0到1.0範圍外部)使用更少的位。在這兩種情況下,可保 留若干整數ζ位(例如,三位)作為多位指示符,以指示ζ步進處理何時在視窗體外部的正 或負範圍中。這是必要的,因為一般來說,ζ步進器將相對於精確地確定三角形的二維X,y 投影中的像素所屬關係的其它係數(例如,重心係數)來說不是完全精確的。以此方式,對 於基元邊緣處的過渡像素,由ζ步進處理產生的ζ參數值經箝位以大體上保持在視窗體的 有效範圍內。在一個實施例中,對於IK像素屏幕來說,16z位精度(例如,16位寬深度緩衝器) 用於跟蹤小數ζ值,且使用10個誤差位(例如,為了對於具有最大大小的基元來說具有少 於千分之一的ζ誤差)。另外,兩個或三個誤差位可用於整數部分。這些位將指示ζ值的標 記(例如,當ζ值在近端或遠端平面外部時),且變為保護位以指示ζ步進處理何時穿過近 端或遠端裁剪平面。所選擇的指示符位的數目確定0到Iz範圍的容許倍數,其中如果在頂 點處ζ值中有任一者超過所述範圍,那麼必須對基元執行真實裁剪(例如,對於三個指示符 位來說,可正確光柵化具有在-3. 0與+3. 0之間的ζ值的基元)。注意到,由於ζ小數位的模塊化本質,此僅是對於在三角形的二維X,y投影內部的像素的要求(由於Z值將在步入 「內部」像素之前翻轉到合法範圍中,所以即使當「外部」像素超過ζ範圍的倍數時,仍可能 正確迭代「外部」像素)。在一個實施例中,由光柵級410實施的ζ步進處理可用於實施每個像素裁剪處理。 眾所周知,傳統裁剪是一種在計算方面較為昂貴的處理。整數保護位使得能夠進行每個像 素裁剪處理,藉此避免傳統裁剪處理中所包含的幾何計算。舉例來說,那些ζ值大於1. 0的 像素比遠端裁剪平面1407更遠且在視窗體外部,且可被拋棄或忽略。類似地,那些ζ值小於 0.0的像素在近端裁剪平面內部且可類似地被拋棄或忽略。以此方式,如果像素的迭代的 ζ值在箝位範圍外部,所述像素可基本上被裁剪去,從而以像素級別而不是多邊形級別來執 行裁剪。與傳統的每個多邊形裁剪相比,每個像素裁剪在計算方面較不昂貴。應注意到,除 了裁剪,箝位的ζ值步進處理可對於其它類型的渲染操作(例如,鏤花陰影)為有利的。因此,光柵級410的ζ步進邏輯可經設計以與典型現有技術實施方案相比更小的 精度來計算ζ值,且將更大的域投入到近端/遠端裁剪平面內的ζ值範圍。舉例來說,傳統 Z步進邏輯需要以56位來實施(例如,對於IK像素屏幕)時,而根據本發明一個實施例的 ζ步進邏輯可以29位(例如,3個保護位、16個ζ位和10個誤差位)來實施。從所消耗的 矽面積和從功率要求來看,此使得硬體顯著更便宜,且同時將極好的解析度投入近端/遠 端裁剪平面之間的範圍。圖15展示根據本發明一個實施例的示範性處理1500的步驟的流程圖。如圖15 中描繪,處理1500說明根據本發明一個實施例的箝位的ζ值內插處理中所包含的步驟。處理1500在步驟1501處開始,其中光柵級410存取一包含一多邊形的複數個頂 點的幾何基元。在步驟1502中,所述基元被光柵化為複數個對應像素。在步驟1503中,光 柵級410為多邊形的每個像素計算ζ參數值,其中每個ζ參數值包含整數部分和小數部分。在步驟1504中,ζ參數的整數部分被箝位到一有效範圍(位寬)加上一保護指示 符(例如,少量整數位)以指示ζ參數的標記。另外,在步驟1504中,允許所計算的ζ值在 溢出條件下在有效範圍內翻轉。此設定保護位以指示溢出。在步驟1505中,通過使用ζ參 數的保護指示符來實施每個像素裁剪。如上所述,保護位可指示那些比遠端裁剪平面(例 如,遠端裁剪平面1407)更遠或比近端裁剪平面(例如,近端裁剪平面1408)更近的像素。 接著可在渲染處理中拋棄或忽略這些像素。視情況(例如,在軟體控制下),此類像素可箝 位到近端或遠端ζ值而並非被裁剪去,這對於一些軟體算法可能有用。圖16展示由本發明實施例使用的示範性紋理映射(例如,「紋理」)的圖。如上所 述,本發明實施例在圖形管線的光柵級(例如,光柵級410)中實施箝位到有效範圍的參數 箝位。當在光柵化處理期間由光柵級410計算參數時,光柵級410經配置以將參數數據箝位 到可由管線的隨後級使用的有效範圍。箝位功能性包含拋棄給定像素參數的有效範圍外部 的數據,從而僅發送必要的參數數據,這使得需要沿圖形管線向下傳輸的位的數目最小化, 且從而使得功率消耗最小化。在一個實施例中,紋理參數由光柵級410計算,且這些紋理參數被箝位到有效範圍。換句話說,當由光柵級410計算紋理坐標(例如,「S」和「t」坐標)時,所計算的紋理 在管線早期(例如在光柵級410中)而不是在管線晚期被箝位到一有效範圍。圖16說明紋理1600的坐標(s,t)。如一般所知,根據已確立的慣例,紋理坐標(S,t)的範圍為從零到一。因此,在紋理1600的左下角處的坐標為「0,0」,而在紋理1600 的右上角處的坐標為「1,1」,等等。因此,小數表示(從零到一)是數據拾取級430存取紋 理1600 (例如在存儲器中)且為所計算的坐標檢索對應的紋素所需要的信息。一像素可具 有一個或一個以上與其相關聯的紋理坐標。箝位指代這樣的事實,即即使一確定性公式可 用於計算紋理坐標,且即使此公式可導致整數部分和小數部分,但數據拾取級430僅需要 小數部分。 在一個實施例中,小數部分表示為16位值。在一典型實施方案中,紋理映射的16 位每個s和t坐標用於為摻合操作拾取地址紋素和一個或一個以上鄰近紋素。小數部分允 許數據拾取級430為摻合內插拾取正確的鄰近紋素。在一個實施例中,光柵級410根據「包覆」紋理映射模式來計算紋理坐標。在包覆 模式中,當所計算的紋理的整數部分遞增或遞減時,紋理1600重複其本身。在包覆模式中, 在紋理1600的邊緣(例如,s或t在1或0處)處,數據拾取級430從紋理映射的下一個 重複版本的鄰近邊緣處拾取鄰近紋素以便進行內插。以此方式,紋理繞回而不存在可見接 縫或假象。在另一實施例中,光柵級410根據「箝位」紋理映射模式來計算紋理坐標。在所述 箝位模式中,小數部分不繞回。在邊緣處,紋理被箝位到邊緣處的值。在箝位模式中,紋素 色彩被複製或「抹去」且為大於1或小於0的任何值而重複。箝位模式中的操作需要被識別到管線中的隨後級。在一個實施例中,沿管線向下 發送一額外位(例如,箝位標誌或箝位位)以識別紋理映射的箝位模式。可以上述方式將 每一像素的位作為邊帶信息來傳輸。此信息由數據拾取級430在其紋理拾取期間使用,以 將其本身配置成不拾取紋理邊緣的「繞回,,鄰近紋素來進行內插。箝位模式通常由一應用 程序通過圖形API編程。應注意到,在另一實施例中,光柵級410可經配置以根據「鏡」模式來計算紋理坐 標,其中紋理坐標以紋理坐標值(例如,那些在零到一範圍以外的s和t值)的不同整數版 本形成鏡像。如同箝位模式一樣,鏡像模式被識別到管線的隨後級(例如,通過使用標誌或 位)。以此方式,光柵級410執行參數箝位,其中所計算的參數被箝位到其有效範圍,以 節省需要沿管線下推的位/信息的數目。在此情況下,箝位包含拋棄所計算的紋理坐標的 整數部分且僅發送範圍0到1內的小數部分。此工作在光柵級410而不是管線中的其它隨 後級中執行。箝位功能性僅發送所必需的參數數據,其使得需要沿圖形管線向下傳輸的位 的數目最小化,且從而使得功率消耗最小化。圖17展示應用紋理1600的包覆版本(例如,由箭頭1701指示)的多邊形1700。 如上所述,當計算坐標時,紋理的包覆版本重複其本身。圖18展示應用紋理1600的箝位版本(例如,由箭頭1801指示)的多邊形1800。 如上所述,紋理的箝位版本僅僅與複製到計算紋理坐標的方向中的紋理1600的外部邊緣 具有相同色彩。圖19展示根據本發明一個實施例的紋理坐標參數箝位處理1900的步驟的流程 圖。如圖19中說明,處理1900展示根據本發明一個實施例在光柵級(例如,光柵級410) 中實施的所計算的紋理坐標箝位處理中包含的步驟。
處理1900在步驟1901中開始,其中光柵級存取一包含一多邊形(例如,三角形) 的其各自的頂點的幾何基元。在步驟1902中,所述幾何基元被光柵化為複數個對應像素。 在步驟1903中,光柵級410處理三角形的每個像素且計算將在管線的隨後級中使用的紋理 坐標。如上所述,所計算的紋理坐標包含整數部分和小數部分。在步驟1904中,小數部分 向下遊傳播到數據拾取級430。在步驟1905中,根據來自在計算機系統上執行的應用程式的指令,確定將實施箝 位模式還是包覆模式。在步驟1906中,在箝位模式中,光柵級410根據「箝位」紋理映射模 式來計算紋理坐標且沿管線向下傳播箝位標誌。如上所述,在紋理1600的邊緣處,紋理色 彩被箝位到邊緣處的值。在步驟1907中,由數據拾取級430拾取紋理坐標以實施箝位模式 紋理映射(例如,如圖18描繪)。在步驟1908中,在包覆模式中,由數據拾取級430拾取紋 理坐標以實施包覆模式紋理映射(例如,如圖17描繪)。圖20展示根據本發明一個實施例的一示範性小中見大映射處理的圖。如圖20所 描繪,展示2D紋理映射的五種不同解析度版本2001到2005。如所屬領域的技術人員所知,多紋理映射是一種廣泛使用的類型的LOD過濾。LOD 過濾經配置以通過將全解析度紋理映射2001按比例調整和過濾為多個低解析度版本2002 到2005來防止波紋幹擾圖案、混疊和渲染假象。舉例來說,全解析度版本2001含有一物體 的所有表面細節。在距視點的近距離處,全解析度版本2001以其原始全部細節來渲染。隨 著距離增加,使用紋理的依次減小的解析度版本(例如,版本2002到2005)。通過選擇恰當 的紋理解析度和細節,小中見大映射確保在更遠距離處不會丟失像素。改為使用原始紋理 的恰當平分的更小版本。在最遠距離處,使用單個紋素2005。這些級中的每一者稱為小中 見大映射級別(例如圖20中展示的級別0到級別4)。應注意到,雖然圖20展示五個級別 2001到2005,但本發明的實施例可由其它數目的版本(例如,3、7、10等)來實施。在一個實施例中,光柵級410實施LOD參數箝位,其中一所計算的LOD參數在圖形 管線的光柵級410中被箝位到一有效範圍。此情況下箝位功能性包含存取一包含複數個頂 點的幾何基元(例如,三角形),其中每個頂點與包括細節級別(LOD)值的複數個參數相關 聯。在基元光柵化期間,計算基元的每個像素的各自的LOD值(例如,通過使用內插)。通 過使用一全精度函數來計算此LOD值。因此,每個像素的每個LOD值包含整數部分和小數 部分。所計算的LOD值的整數部分用於選擇對應於基元距視點的距離的正確小中見大 映射級別。所計算的LOD值的小數部分用於配置一在鄰近小中見大映射級別的鄰近紋素上 執行的摻合操作(例如,其中小數部分用於將不同權重分配給不同小中見大映射的紋素)。 此在圖20中由箭頭2010展示,所述箭頭2010根據LOD小數部分指示摻合操作中所使用的 不同小中見大映射級別的鄰近紋素。光柵級410經配置以當所計算的LOD值大於預定範圍(例如,箝位到最大值)時 將LOD值箝位到最大值。類似地,光柵級410還經配置以當所計算的LOD值小於預定範圍 (例如,箝位到最小值)時將LOD值箝位到最小值。換句話說,當所計算的LOD參數指示大 於最粗糙(最小)小中見大映射級別(例如,版本2005)的基元的紋素像素比時,LOD值 可被箝位到此最大值(例如,級別4),且無需計算、存儲或沿管線向下傳播更高的LOD整數 值。當所計算的LOD參數指示小於最精細(最大)小中見大映射級別(例如,級別0)的紋素像素比時,LOD整數值可被箝位到此最小值且無需計算、存儲或傳播更低的LOD整數值(例如,負的LOD整數值)。這些經箝位的LOD參數值接著被沿管線向下傳播到數據拾取級 430。在一個實施例中,一旦最大或最小值已被箝位,還可箝位小數部分。舉例來說,在 已大大超過最大LOD參數值(例如,指示小中見大映射級別10的參數),且已返回最低分辨 率版本(例如,級別4)的情況下,小數部分將相對於任何摻合內插是無關緊要的。在此情 況下,小數部分也可被箝位到其最大值。或者,在一個實施例中,可僅僅拋棄小數部分(例 如,由於對片斷色彩沒有重要作用)。在一個實施例中,用四位值來表示LOD參數的整數部分,且用四位值來表現LOD參 數的小數部分。圖21展示根據本發明一個實施例的LOD參數箝位處理2100的步驟的流程圖。如 圖21說明,處理2100展示根據本發明一個實施例在光柵級(例如,光柵級410)中實施的 所計算的LOD值箝位處理中包含的步驟。處理2100在步驟2101中開始,其中光柵級存取一包含一多邊形(例如,三角形) 的其各自的頂點的幾何基元。在步驟2102中,幾何基元被光柵化為複數個對應像素。在 步驟2103中,光柵級410處理三角形的每個像素且計算一將在管線的隨後級中使用的LOD 值。如上所述,所計算的LOD值包含整數部分和小數部分兩者。在步驟2104中,LOD參數的整數部分和小數部分被箝位到有效範圍。如上所述, 當所計算的LOD參數超過有效範圍時,參數被箝位到其最大值。當所計算的LOD參數小於 有效範圍時,參數被箝位到其最小值。在步驟2105中,所箝位的LOD參數向下遊傳播到管 線的數據拾取級430。以此方式,如同紋理坐標值一樣,LOD參數在渲染處理早期由光柵級410箝位到有 效範圍,以節約必須被沿管線下推的位的數目,從而使得功率消耗最小化。已出於說明和描述的目的展現了本發明特定實施例的前述描述。不希望其為詳盡 的或將本發明限制於所揭示的精確形式,且顯然根據以上教示,多種修改和變化是可能的。 選擇並描述所述實施例是為了最佳地解釋本發明的原理和其實際應用,從而使得所屬領域 的其他技術人員能夠最佳地使用本發明和適於所希望的特定用途的具有多種修改的多種 實施例。希望本發明的範圍由所附權利要求書和其等效物限定。
權利要求
一種用於一產生可編程像素包的基本指令光柵級的方法,其包含在一光柵級處存取一幾何基元;將所述幾何基元光柵化為複數個像素;可編程地且根據用於所述幾何基元的一指令將一組內插計算指定給一內插器陣列;通過並行使用所述內插器來執行所述一組內插計算,其中所述內插器以一逐行格式為所述幾何基元的所述像素的每一者執行所述一組內插計算;和將所述一組內插計算的複數個結果存儲在一可編程像素包中,其中根據所述指令來格式化所述可編程像素包。
2.根據權利要求1所述的方法,其中所述光柵級是一手持裝置上使用的一圖形管線的 一部分。
3.根據權利要求2所述的方法,其中所述手持裝置選自包含一個人數字助理、一手持 遊戲裝置和一行動電話的群組。
4.根據權利要求1所述的方法,其中用於所述幾何基元的所述指令應用於所述幾何基 元的所述像素中的每一者。
5.根據權利要求1所述的方法,其中所述一組指令針對所述幾何基元的所述像素中的 每一者控制對所述內插器的一參數分配。
6.根據權利要求1所述的方法,其中所述指令控制所述內插器且指定複數個行位置以 存儲所述結果。
7.根據權利要求1所述的方法,其中所述內插器陣列包括複數個低精度內插器和複數 個高精度內插器。
8.根據權利要求1所述的方法,其中可根據在所述光柵級處接受的每個所述幾何基元 來變化所述指令。
9.根據權利要求1所述的方法,其中所述可編程像素包由耦合至所述光柵級的一隨後 級渲染為在一顯示器上的像素。
10.一種光柵器模塊,其包含複數個可編程內插器,其用於為一幾何基元的像素計算像素參數;用於存儲一與一第一可編程內插器相關聯的第一指令的存儲器,所述第一指令用於指 示所述第一可編程內插器將據以操作的一第一參數,且還用於指示其中存儲其結果的一像 素包的一第一部分;和用於存儲一與一第二可編程內插器相關聯的第二指令的存儲器,所述第二指令用於指 示所述第二可編程內插器將據以操作的一第二參數,且還用於指示其中存儲其結果的所述 像素包的一第二部分。
11.根據權利要求10所述的光柵器模塊,其中所述複數個可編程內插器包含複數個可同時操作的低精度可編程內插器,其用於為所述幾何基元的像素計算一第一 組像素參數;和複數個可同時操作的高精度可編程內插器,其用於為所述幾何基元的像素計算一第二 組像素參數。
12.根據權利要求11所述的光柵器模塊,其中所述複數個可同時操作的低精度可編程 內插器每一者由所述存儲器的一各自的指令單獨控制,每一各自的指令指示一將內插的參數和所述像素包內用於一內插結果的一目的地。
13.根據權利要求11所述的光柵器模塊,其中所述複數個可同時操作的高精度可編程 內插器每一者由所述存儲器的一各自的指令單獨控制,每一各自的指令指示一將內插的參 數和所述像素包內用於一內插結果的一目的地。
14.根據權利要求10所述的光柵器模塊,其中所述複數個可編程內插器需要多個時鐘 周期來完成一像素包。
15.根據權利要求10所述的光柵器模塊,其中所述像素包由耦合至所述光柵級的一隨 後級渲染為在一顯示器上的像素。
16.一種光柵器模塊,其包含複數個可編程內插器,其用於為一幾何基元的像素計算像素參數;且其中所述複數個可編程內插器中的每一者可由一可操作持續一時鐘周期的各自的指 令編程,所述各自的指令規定一將插入的參數和一像素包內存儲一內插結果的一目的地。
17.根據權利要求16所述的光柵器模塊,其中所述複數個可編程內插器需要複數個時 鍾周期來完成一像素包,且其中任何可編程內插器可在所述複數個時鐘周期中的每個時鐘 周期時由一不同指令編程。
18.根據權利要求16所述的光柵器模塊,其中所述複數個可編程光柵器包含複數個低精度可編程內插器,其用於為所述幾何基元的像素計算一第一組像素參數, 其中所述第一組像素參數具有一第一位寬;和複數個高精度可編程內插器,其用於為所述幾何基元的像素計算一第二組像素參數, 其中所述第二組像素參數具有一第二位寬,所述第二位寬大於所述第一位寬。
19.根據權利要求18所述的光柵器模塊,其中所述低精度可編程內插器使用重心係數 來進行內插。
20.根據權利要求18所述的光柵器模塊,其中所述高精度可編程內插器使用重心係數 來進行內插。
21.根據權利要求18所述的光柵器模塊,其中所述第一內插位寬為8位。
22.根據權利要求18所述的光柵器模塊,其中所述第二內插位寬為14位。
23.根據權利要求16所述的光柵器模塊,其中所述像素包由耦合至所述光柵級的一隨 後級渲染為在一顯示器上的像素。
全文摘要
本發明揭示一種用於一產生靈活性像素包的具基本指令能力的光柵級的方法和系統。在一個實施例中,由一圖形管線的一光柵化模塊執行一包含複數個頂點的幾何基元的光柵化,其中每個頂點包含一各自的色彩值。
文檔編號G06T15/00GK101819676SQ200910211990
公開日2010年9月1日 申請日期2005年5月14日 優先權日2004年5月14日
發明者愛德華·A·哈欽斯, 謝卡爾·諾裡 申請人:輝達公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀