一種圖形渲染流水線(1)具有多個不同的渲染單元(2,3)并接收碎片(4)用于渲染。渲染器狀態字高速緩存(5)用來存儲用于當渲染單元渲染碎片時配置渲染單元(2,3)的渲染狀態數據。每個渲染單元(2,3)包括對接收的碎片執行渲染操作的功能塊(10),和渲染狀態字接口(11),其可以用來從渲染狀態字高速緩存(5)中查找所需的渲染狀態數據。每個碎片(4)被提供到渲染流水線(1),其具有碎片數據(6),其尤其指示碎片索引(7)、渲染器狀態字索引(8),和渲染碎片所必需的其他碎片數據(9)。當渲染流水線(1)的渲染單元(2,3)接收將要渲染的碎片時,它首先使用與碎片(4)相關聯的渲染器狀態字索引(8)以利用其渲染器狀態字接口(11)從渲染器狀態字高速緩存(5)中查找相關的渲染狀態數據。然后它利用該渲染狀態數據配置其功能塊(10),并且然后渲染該碎片。
【技術實現步驟摘要】
【國外來華專利技術】
本專利技術涉及用于例如顯示屏上顯示的三維(3D)圖形處理,并且特別涉及用于顯示的三維圖形的渲染(rendering)。正如本領域中已知的,一般通過首先把將要顯示的場景分成許多類似的基本分量(所謂的“基元(primitive)”)來執行3D圖形處理以允許更容易地執行該3D圖形處理操作。這些“基元”一般采用簡單的多邊形形式,例如三角形,并且一般通過限定它們的頂點而被描述。一旦將要顯示的場景被分成了多個圖形基元,那么正如本領域中已知的,這些圖形基元一般將會被進一步分成分立的圖形實體或元素,一般稱作“碎片(fragment)”,在其上執行實際的圖形處理操作(例如渲染操作)。每個這種圖形碎片將代表并且對應于基元中的給定位置,并且實際上包括用于所述位置的一組數據(例如顏色和深度值)。每個圖形碎片(數據元)一般對應于最終顯示中的單像素(像元)(因為當這些像素是最終將要顯示的畫面中的奇異點時,在3D圖形處理器所操作的“碎片”和顯示中的像素之間一般將存在一一對應的映射)。然而,可能的情況是在“碎片”和“像素”之間不存在直接對應,例如在顯示最終圖像之前對渲染的圖像實施后期處理例如按比例縮小的特殊形式的情況下。因此,一般執行的3D圖形處理的兩個方面是圖形“基元”(或多邊形)位置數據到圖形碎片位置數據的“光柵化(rasterising)”(即確定用來代表將要顯示的場景中的每個基元的圖形碎片的(x,y)位置),并且然后“渲染”“被光柵化的”碎片(即對這些碎片進行染色(colouring)、著色等),用于在顯示屏上顯示。(在3D圖形文獻中,術語“光柵化”有時候用來表示基元轉換成碎片以及渲染。然而,在此“光柵化”將僅用來指把基元數據轉換成碎片地址。)渲染過程基本上包括導出顯示每個碎片必需的數據。這種數據一般包括用于每個碎片的紅、綠和藍色(RGB)值(其基本上將確定顯示上的碎片的顏色),以及用于每個碎片的所謂的“α”(透明度)值。正如本領域中已知的,一般通過以線性或流水線(pipelined)方式一個接一個地對每個碎片(即用于該碎片的數據)執行單獨的渲染過程(步驟)來導出該數據。因此,例如,根據例如記錄的用于碎片所屬的基元的頂點的顏色和透明度數據,每個碎片首先被分配初始的RGB和α值,然后對碎片數據接連地執行例如紋理化、霧化、和混合等操作。這些操作修改為每個碎片設置的初始RGB和α值,以便在最后的處理操作之后,每個碎片具有適當設置的RGB和α值,以允許該碎片正確地顯示在顯示屏上。然后存儲該最后設置的RGB和α值,準備在顯示屏上顯示該碎片。然后對當前正在渲染的場景區域中的所有碎片重復該過程。以該方式執行渲染過程,因為單獨的渲染操作一般彼此獨立,并且可以不參考其他渲染步驟或碎片而執行,因此它們可以在沒有損害的情況下以線性、流水線方式來執行。以這種流水線方式(以所謂的“渲染流水線”)執行渲染操作意味著“流水線”的不同渲染單元可以同時對不同碎片進行操作,由此使得渲染過程更有效。為執行正確的渲染操作,渲染過程的每個階段需要適當地配置,即將被設置成正確的所謂的“渲染狀態”。渲染狀態確定渲染過程的這些階段怎樣對每個碎片進行操作,并且一般確定例如渲染圖形碎片所使用的反走樣模式、混合模式、模板緩存操作、紋理函數(texture function)、紋理映射信息、z測試模式、RGBa緩存寫模式等中的一個或多個。它也可以用來例如表示將要使用的光柵化模式。一般通過驅動圖形處理器的“驅動器”軟件來確定和設置渲染狀態。(正如本領域中已知的,一般由“主”設備(例如在圖形處理器的主機系統上)控制圖形處理器,該主設備借助在該主設備上運行的軟件“驅動器”與圖形處理器進行通信并且控制圖形處理器,該軟件“驅動器”被配置以響應于從在該主設備上運行的需要使用圖形處理器的(軟件)應用程序接收的命令,與圖形處理器進行通信并且控制圖形處理器。)在現有的3D圖形處理系統中,渲染過程的所有階段通常首先被配置成期望的渲染狀態,然后圖形碎片被發出以便進行渲染。換句話說,整個渲染器在圖形碎片發送給它之前被配置到單個渲染狀態。然而,這意味著當利用不同的渲染狀態將碎片渲染成渲染器的當前狀態時(例如當將要渲染來自具有不同渲染狀態的另一個基元的第一碎片時),該渲染器必須使其渲染狀態在能夠渲染新的碎片之前變成新的渲染狀態。此外,直到目前在渲染器中的所有碎片的處理都已經結束,該渲染器的渲染狀態才能改變。實際上,這意味著當需要渲染器狀態改變時,在可以渲染新的碎片之前,需要新的渲染狀態的新碎片必須“停止”,已經在渲染器中的碎片“刷新(flush)”它,并且渲染狀態改變。這降低了渲染器的性能。因此公知的是試圖減少渲染狀態變化的數量,其需要通過在將它們“發送”給渲染器之前根據它們的渲染狀態對將要渲染的基元分類來完成。然而,即使利用這種分類,渲染狀態變化仍舊易于相對頻繁地發生。還公知的是試圖增加可以進行渲染狀態變化的速度,例如通過在提供給渲染器的基元數據流中包括渲染狀態變化命令和數據,以便例如減少實現渲染器狀態變化所需的時間。然而,只要需要進行渲染狀態變化,這種操作就仍需要渲染器停止和被刷新。因此本申請人相信仍然存在改善渲染操作的余地,特別是在渲染狀態變化的情況下。根據本專利技術的第一方面,提供一種圖形處理器,包括用來渲染圖形碎片用于顯示的渲染器,該渲染器包括可以被配置成不同渲染狀態的一個或多個渲染單元;用來存儲多組數據的裝置,每組數據限定用來配置渲染器的渲染單元的不同渲染狀態;用來把將要渲染的圖形碎片與存儲的渲染狀態數據組中的一個相關聯的裝置;以及用來將已經與存儲的渲染狀態數據組關聯的圖形碎片發送到渲染器的渲染單元以便進行渲染的裝置;其中渲染器的渲染單元中的一個或多個包括用來確定與將要渲染的圖形碎片相關聯的渲染狀態數據組的裝置;以及用來根據確定的渲染狀態數據組配置渲染單元的裝置。根據本專利技術的第二方面,提供操作具有渲染器的圖形處理器的方法,該渲染器包括用來渲染用于顯示的圖形碎片的一個或多個渲染單元,該方法包括存儲限定用來配置渲染器的渲染單元的一個或多個渲染狀態的數據;把將要渲染的每個碎片與存儲的渲染狀態之一相關聯;以及渲染單元,當它接收將要渲染的碎片時,確定與該碎片相關聯的渲染狀態,根據確定的渲染狀態被配置,并且對接收的碎片執行其渲染操作。在本專利技術中,將要渲染的圖形碎片與它們的渲染狀態相關聯,并且然后渲染器的渲染單元利用該關聯來確定它們應當使用的用于渲染碎片的渲染狀態。換句話說,當渲染單元接收用于渲染的碎片時,它根據與碎片相關聯的渲染狀態“查找”用于該碎片的渲染狀態,并且然后相應地渲染該碎片。這避免了對在渲染任何碎片之前將整個渲染器配置到給定的渲染狀態的需要。它也意味著渲染器的渲染單元均可以獨立于當前的渲染狀態或渲染器中剩余的渲染單元的狀態,有效地將它們自己配置成它們的當前碎片所需要的渲染狀態。本專利技術的這種設置的優點是渲染器的不同單元可以(并且優選)被同時配置到不同的渲染狀態,即使得渲染器的渲染單元可以同時對需要不同渲染狀態的碎片進行操作。因此這允許具有不同渲染狀態的碎片被同時發送到渲染器(并且被該渲染器渲染),而不需要在連續的碎片之間發生渲染狀態變化時將渲染器的其他或所有單元重新配置到新的渲染狀本文檔來自技高網...
【技術保護點】
一種圖形處理器,包括: 用來渲染圖形碎片用于顯示的渲染器,該渲染器包括可以被配置成不同渲染狀態的一個或多個渲染單元; 用來存儲多組數據的裝置,每組數據限定用來配置渲染器的渲染單元的不同渲染狀態; 用來把將要渲染的圖形碎片與存儲的渲染狀態數據組中的一個相關聯的裝置;以及 用來將已經與存儲的渲染狀態數據組關聯的圖形碎片發送到渲染器的渲染單元以便進行渲染的裝置; 其中: 渲染器的渲染單元中的一個或多個包括: 用來確定與將要渲染的圖形碎片相關聯的渲染狀態數據組的裝置;以及 用來根據確定的渲染狀態數據組配置渲染單元的裝置。
【技術特征摘要】
【國外來華專利技術】...
【專利技術屬性】
技術研發人員:J尼斯塔德,M布拉策維克,B約斯蘭德,E索爾加德,
申請(專利權)人:ARM挪威股份有限公司,
類型:發明
國別省市:NO[挪威]
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。