圖像渲染方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種圖像渲染方法,該方法包括將當前圖像幀與先前圖像幀進行比較,以檢測圖像幀中的對象的動態(tài)變化,每個圖像幀由場景圖限定,且每個對象具有相關(guān)聯(lián)的幾何邊界體。該方法包括,如果檢測到對象中的動態(tài)變化,那么針對每個動態(tài)變化了的對象,利用指配給當前圖像幀的模板值將對象的幾何邊界體渲染至模板緩存。隨后應用模板測試以確定幀中具有非零模板值的區(qū)域。該方法還包括將與已經(jīng)重繪了的先前圖像幀中的區(qū)域和需要覆蓋繪制的當前圖像幀中的區(qū)域相關(guān)的顏色緩存清空,利用模板測試來將圖像幀渲染至顏色緩存,使得只重繪具有非零模板值的區(qū)域;以及從模板緩存中去除先前圖像幀的模板值。
【專利說明】圖像渲染方法和系統(tǒng)
【技術(shù)領域】
[0001]本發(fā)明涉及一種圖像渲染方法和系統(tǒng),具體地說,本發(fā)明涉及一種用于只處理與先前圖像幀相比改變了的圖像幀的那些片段的方法和系統(tǒng)。
【背景技術(shù)】
[0002]圖形圖像的處理和渲染是現(xiàn)代計算機系統(tǒng)的重要特征。在圖像處理中,在顯示器上執(zhí)行數(shù)學過程以渲染或繪制例如三角形或矩形的圖元從而產(chǎn)生所需的視覺圖像。實時圖形處理是基于圖元的高速處理從而產(chǎn)生視覺上令人滿意的移動圖像。
[0003]為提高圖像質(zhì)量,引進例如模板陰影體(stenciled shadow volumes)的陰影生成技術(shù)以在渲染的圖像上增加逼真的陰影。模板陰影體技術(shù)有賴于模板緩存(stencilbuffer)的使用,這將在下面更詳細地描述。
[0004]通常,圖形是由圖形設計師采用作為標準化軟件接口的應用程序接口(API)來渲染能夠在多個平臺、操作系統(tǒng)和硬件上運行的所需圖像而設計的。API的例子包括開放圖形庫(Open GL(R))和D3D (TM)。這使得圖形設計師能夠設計圖形而無需知道有關(guān)系統(tǒng)硬件的特征或他們的命令是如何執(zhí)行的任何細節(jié)。應用程序接口(API)已得到廣泛應用且比較強大,并且是用于實現(xiàn)例如本發(fā)明的那些技術(shù)特征的有利工具。
[0005]當渲染圖形圖像時,給該圖像的每個像素賦予一組存儲在緩存器中并用于“顯示”該像素的值。例如,每個像素可具有存儲在顏色緩存中的顏色值和存儲在深度(Z)緩存中的深度值。
[0006]除顏色緩存和深度緩存外,每個像素在模板緩存中也具有條目(entry)。模板緩存是由可控制像素的更新的模板寄存器組成的存儲器。在最簡單的情況下,模板緩存用于限制渲染(印刻)的區(qū)域。具體而言,模板緩存允許或禁止基于逐個像素地繪制正渲染的目標表面。在其最基本級別上,它允許應用遮蓋已渲染的圖像的部分以使它們不被顯示。
[0007]模板緩存的典型用途包括定義用于遮蓋像素更新、構(gòu)造實體幾何圖形以及添加陰影的區(qū)域。例如,如果“背景”部分要通過窗口顯示,那么可以給要顯示的背景的模板寄存器賦予值,同時其他區(qū)域的模板寄存器可清空。隨后,模板寄存器的值可與閾值進行比較,并可用于遮蓋不顯示的區(qū)域(或者露出要顯示的區(qū)域)。模板緩存的更多有利之處是充分利用了深度緩存和模板緩存在渲染管線中的強連接。例如,針對未通過或通過模板測試的每個像素,模板值可自動增大或自動減小。與模板緩存有關(guān)的是模板測試,其基于特定位置處的模板緩存中的值與參考值之間比較的結(jié)果來有條件地舍棄片段。
[0008]如前所述,模板緩存也可用于增加陰影。陰影可通過產(chǎn)生更自然的圖像來增強圖像。由于圖像陰影對應于真實世界的陰影,因此圖像陰影表示由遮光表面產(chǎn)生的陰影效果。由于給定的圖像可能既具有多個光源也具有多個遮光表面,因此每個像素的陰影值取決于由所有光源和所有遮光表面產(chǎn)生的陰影??衫靡环N或多種在模板緩存中存儲有值的陰影算法來產(chǎn)生帶有令人信服的陰影的圖像。大多數(shù)陰影算法“關(guān)掉”光源、確定每個像素的基本陰影值、然后選擇性地打開單個光源、確定由各光源產(chǎn)生的陰影值、然后混合結(jié)果以得到針對各像素的復合陰影值。例如,在OpenGL ES2.0標準下的嵌入式圖形硬件上,陰影處理部分通常是最緩慢的元件,即便在簡單的片段著色器情況下也是如此。
[0009]因此,為了渲染圖像,需要處理圖像的所有片段(或像素)。然而,到目前為止,在圖像幀中只有一部分片段發(fā)生變化并需要即時可視反饋的連續(xù)圖像幀(例如汽車組合儀表的數(shù)字速度計渲染)中,圖像幀中的所有片段均需要處理。
[0010]為清楚起見,以上觀點已用簡化了的方式進行描述。通常利用圖形設計軟件包執(zhí)行以上觀點的實施。這種軟件包使得平面設計師能夠規(guī)定許多編輯屬性和格式化屬性,包括陰影算法和模板緩存的其他方面的使用。
[0011]當使用模板緩存時,比如當執(zhí)行陰影算法時,通常需要先清空模板寄存器。例如,當要確定光源對每個像素的模板值的影響時,通常需要對模板緩存進行多次清空,例如針對每個光源實施一次清空。清空意味著將被清空的模板寄存器的值設置為一些預定值,通常但不總是為OOhex (十六進制)。雖然清空模板寄存器并不特別困難,只是通過將預定值寫入每個模板寄存器即可,但是如果存在成千上萬的模板寄存器,那么將該預定值寫入每個模板寄存器是相當慢的過程。例如在陰影渲染的時候,多次這樣做將極其耗費時間。另夕卜,隨著三維應用目前采用渲染算法如針對單個幀中多個光源的模板陰影體渲染、最新的“軟”模板陰影體技術(shù)以及基于模板的構(gòu)造實體幾何技術(shù),僅模板的幀緩存清空也越來越常見。在這些算法中,針對每個深度緩存清空有多個模板緩存清空。
[0012]鑒于上述內(nèi)容,有利的是提供一種聞速有效地清空|旲板寄存器的方法。同樣有利的是,提供用于使平面設計師能夠控制模板寄存器的清空的方法,從而使得模板寄存器的使用不會受到負面影響。同樣有利的是,提供一種用于有效地清空模板寄存器的高速系統(tǒng)和方法,使得利用模板緩存的數(shù)字算法不會受到負面影響。
[0013]因此,本發(fā)明的目的是針對連續(xù)圖像幀減少GPU片段處理,其中,每個圖像幀由場景圖限定,每個圖像巾貞中的每個對象具有相關(guān)聯(lián)的幾何邊界體(geometric boundingvolumes)ο具體而言,在與先前圖像幀比較后,在圖像幀中只有相對少數(shù)的部分或?qū)ο笞兓膶崟r應用中,如果只是那些少數(shù)部分被重新渲染,那么性能就會增強。
[0014]場景圖是圖形編輯應用和現(xiàn)代計算機游戲的常用的通用數(shù)據(jù)結(jié)構(gòu)。場景圖是排列圖形圖像的邏輯表示以及經(jīng)常是(但不一定必須是)空間表示的結(jié)構(gòu)。場景圖是圖形或樹狀結(jié)構(gòu)中的節(jié)點的集合。一個節(jié)點可具有多個子節(jié)點但經(jīng)常是只有一個母節(jié)點,其中,母節(jié)點對其所有子節(jié)點具有影響。在群組上執(zhí)行的操作自動地將其影響傳播至所有的成員上。在一些程序中,處理這種操作的有效且自然的方式是以每個群組級別來關(guān)聯(lián)幾何變換矩陣并將這些矩陣集中起來。共同的特征例如是能夠?qū)⑾嚓P(guān)的形狀/對象組合成復合對象,其中,該復合對象隨后可像針對單個對象一樣容易地被移動、轉(zhuǎn)換、選擇等。
【發(fā)明內(nèi)容】
[0015]根據(jù)本發(fā)明的第一方面,提供了一種圖像渲染方法,該方法包括:
[0016]將當前圖像幀與先前圖像幀進行比較,以檢測圖像幀中對象的動態(tài)變化,其中每個圖像幀由場景圖限定,且每個對象具有相關(guān)聯(lián)的幾何邊界體;
[0017]如果檢測到對象中的動態(tài)變化,那么針對每個動態(tài)變化了的對象,利用指配給當前圖像幀的模板值來將對象的幾何邊界體渲染至模板緩存;[0018]應用模板測試以確定幀中具有非零模板值的區(qū)域;
[0019]將與已經(jīng)重繪了的先前圖像幀中的區(qū)域和需要覆蓋繪制(overdraw)的當前圖像幀中的區(qū)域相關(guān)的顏色緩存清空。
[0020]利用模板測試來將圖像幀渲染至顏色緩存,使得只重繪幀中具有非零模板值的區(qū)域;以及
[0021]從模板緩存中去除先前圖像幀的模板值。
[0022]在一個實施例中,場景圖中的每個對象具有相關(guān)聯(lián)的變換矩陣,檢測對象中的動態(tài)變化的步驟包括檢測對象的變換矩陣是否變化。
[0023]在一個實施例中,在單緩存渲染的情況下,從模板緩存中去除先前圖像幀的模板值的步驟包括去除前一圖像幀的模板值的步驟。
[0024]在該實施例中,將模板緩存中每個偶數(shù)圖像幀的模板值指配為1,并將每個奇數(shù)圖像幀的模板值指配為2。
[0025]具體說,從模板緩存中去除先前圖像幀的模板值的步驟包括將模板緩存中偶數(shù)圖像幀的值2替換為0,并將模板緩存中奇數(shù)圖像幀的值I替換為O。
[0026]在備選實施例中,在雙緩存渲染的情況下,從模板緩存中去除先前圖像幀的模板值的步驟包括去除被之前的兩個幀渲染了的幀的模板值的步驟。
[0027]在該實施例中,該方法包括將第一幀的模板值指配為1,將第二幀的模板值指配為2,將第三幀的模板值指配為3,然后對隨后的幀重復以上操作。
[0028]具體說,該方法包括提供兩個顏色緩存,即前顏色緩存和背顏色緩存,其中前顏色緩存朝向用戶,而背顏色緩存用于渲染背景中的圖像。
[0029]在一個實施例中,該方法包括一旦在背顏色緩存中完成渲染就交換顏色緩存,使得背顏色緩存變成前顏色緩存而前顏色緩存變成背顏色緩存,從而允許在背顏色緩存中進行下一個圖像幀的渲染。
[0030]在實施例中,對象是不透明的或是透明的。
[0031]根據(jù)本發(fā)明的第二方面,提供了一種包括處理器的圖像渲染系統(tǒng),以進行以下操作:
[0032]將當前圖像幀與先前圖像幀進行比較,以檢測圖像幀中對象的動態(tài)變化,其中每個圖像幀由場景圖定義,且每個對象具有相關(guān)聯(lián)的幾何邊界體;
[0033]如果檢測到對象中的動態(tài)變化,那么針對每個動態(tài)變化了的對象,利用指配給當前圖像幀的模板值來將對象的幾何邊界體渲染至模板緩存;
[0034]應用模板測試以確定幀中具有非零模板值的區(qū)域;
[0035]將與已經(jīng)重繪了的先前圖像幀中的區(qū)域和需要覆蓋繪制(overdraw)的當前圖像幀中的區(qū)域相關(guān)的顏色緩存清空。
[0036]利用模板測試來將圖像幀渲染至顏色緩存,使得只重繪幀中具有非零模板值的區(qū)域;以及
[0037]從模板緩存中去除先前圖像幀的模板值。
[0038]在一個實施例中,場景圖中的每個對象具有相關(guān)聯(lián)的變換矩陣,處理器通過檢測對象的變換矩陣是否變化來檢測對象中的動態(tài)變化。
[0039]在一個實施例中,在單緩存渲染的情況下,處理器通過去除前一圖像幀的模板值來從模板緩存中去除先前圖像幀的模板值。
[0040]在該實施例中,將模板緩存中每個偶數(shù)圖像幀的模板值指配為1,并將每個奇數(shù)圖像幀的模板值指配為2。
[0041]具體說,處理器通過將模板緩存中偶數(shù)圖像幀的值2替換為O、并將模板緩存中奇數(shù)圖像幀的值I替換為O而從模板緩存中去除先前圖像幀的模板值。
[0042]在備選實施例中,在雙緩存渲染的情況下,處理器通過去除被之前的兩個幀渲染了的幀的模板值而從模板緩存中去除先前圖像幀的模板值。
[0043]在該實施例中,處理器指配第一幀的模板值為1,指配第二幀的模板值為2,指配第三幀的模板值為3,然后對隨后的幀重復以上操作。
[0044]具體說,提供兩個顏色緩存,即前顏色緩存和背顏色緩存,其中前顏色緩存朝向用戶,而背顏色緩存用于渲染背景中的圖像。
[0045]在一個實施例中,一旦在背顏色緩存中完成渲染,處理器就交換顏色緩存,使得背顏色緩存變成前顏色緩存而前顏色緩存變成背顏色緩存,從而允許在背顏色緩存中進行下一個圖像幀的渲染。
[0046]在一個實施例中,對象是不透明的或是透明的。
[0047]根據(jù)本發(fā)明的第三方面,提供了一種圖像渲染系統(tǒng),該系統(tǒng)包括:
[0048]中央處理單元,其運行存儲在存儲器中的應用程序;
[0049]圖形處理單元,其具有主機接口以接收原始圖形數(shù)據(jù)和中央處理單元的程序指令:
[0050]幀緩存器,其包括:深度緩存,其用于存儲幀中每個像素的深度信息;顏色緩存,其用于存儲每個像素的顏色信息;以及模板緩存,其具有針對每個像素的模板寄存器,幀緩存器通過幀緩存器接口與圖形處理單元交換數(shù)據(jù)。
[0051]中央處理單元設置為用以:
[0052]將當前圖像幀與先前圖像幀進行比較,以檢測圖像幀中對象的動態(tài)變化,其中每個圖像幀由場景圖限定,且每個對象具有相關(guān)聯(lián)的幾何邊界體;
[0053]如果檢測到對象中的動態(tài)變化,那么針對每個動態(tài)變化了的對象,利用指配給當前圖像幀的模板值來將對象的幾何邊界體渲染至模板緩存;
[0054]應用模板測試以確定幀中具有非零模板值的區(qū)域;
[0055]將與已經(jīng)重繪了的先前圖像幀中的區(qū)域和需要覆蓋繪制的當前圖像幀中的區(qū)域相關(guān)的顏色緩存清空。
[0056]利用模板測試來將圖像幀渲染至顏色緩存,使得只重繪幀中具有非零模板值的區(qū)域;以及
[0057]從模板緩存中去除先前圖像幀的模板值。
[0058]在一個實施例中,場景圖中的每個對象具有相關(guān)聯(lián)的變換矩陣,中央處理單元通過檢測對象的變換矩陣是否變化來檢測對象中的動態(tài)變化。
[0059]在一個實施例中,在單緩存渲染的情況下,中央處理單元通過去除前一圖像幀的模板值來從模板緩存中去除先前圖像幀的模板值。
[0060]在該實施例中,將模板緩存中每個偶數(shù)圖像幀的模板值指配為1,并將每個奇數(shù)圖像幀的模板值指配為2。[0061]具體說,中央處理單元通過將模板緩存中每個偶數(shù)圖像幀的值2替換為O、將模板緩存中每個奇數(shù)圖像幀的值I替換為O而從模板緩存中去除先前圖像幀的模板值。
[0062]在備選實施例中,在雙緩存渲染的情況下,中央處理單元通過去除被之前的兩個幀渲染了的幀的模板值而從模板緩存中去除先前圖像幀的模板值。
[0063]在該實施例中,中央處理單元指配第一幀的模板值為1,指配第二幀的模板值為2,指配第三幀的模板值為3,然后對隨后的幀重復以上操作。
[0064]具體說,提供兩個緩存,即前顏色緩存和背顏色緩存,其中前顏色緩存朝向用戶,而背顏色緩存用于渲染背景中的圖像。
[0065]在一個實施例中,一旦在背顏色緩存中完成渲染,處理器就交換顏色緩存,使得背顏色緩存變成前顏色緩存而前顏色緩存變成背顏色緩存,從而允許在背顏色緩存中進行下一圖像幀的渲染。
[0066]在一個實施例中,對象是不透明的或是透明的。
[0067]根據(jù)本發(fā)明的第四方面,提供了一種其上存儲了一系列使處理器渲染圖像的計算機可讀指令的非暫時性計算機可讀介質(zhì),該指令包括以下計算機實現(xiàn)的步驟:
[0068]將當前圖像幀與先前圖像幀進行比較,以檢測圖像幀中對象的動態(tài)變化,其中每個圖像幀由場景圖限定,且每個對象具有相關(guān)聯(lián)的幾何邊界體;
[0069]如果檢測到對象中的動態(tài)變化,那么針對每個動態(tài)變化了的對象,利用指配給當前圖像幀的模板值來將對象的幾何邊界體渲染至模板緩存;
[0070]應用模板測試以確定幀中具有非零模板值的區(qū)域;
[0071]將與已經(jīng)重繪了的先前圖像幀中的區(qū)域和需要覆蓋繪制的當前圖像幀中的區(qū)域相關(guān)的顏色緩存清空。
[0072]利用模板測試來將圖像幀渲染至顏色緩存,使得只重繪幀中具有非零模板值的區(qū)域;以及
[0073]從模板緩存中去除先前圖像幀的模板值。
[0074]在一個實施例中,場景圖中的每個對象具有相關(guān)聯(lián)的變換矩陣,計算機實現(xiàn)的用以檢測對象的動態(tài)變化的步驟包括檢測對象的變換矩陣是否變化的步驟。
[0075]在一個實施例中,在單緩存渲染的情況下,計算機實現(xiàn)的用于從模板緩存中去除先前圖像幀的模板值的步驟包括去除前一圖像幀的模板值。
[0076]在該實施例中,將模板緩存中每個偶數(shù)圖像幀的模板值指配為1,并將每個奇數(shù)圖像幀的模板值指配為2。
[0077]具體說,計算機實現(xiàn)的用以從模板緩存中去除先前圖像幀的模板值的步驟包括將模板緩存中每個偶數(shù)圖像幀的值2替換為0,并將模板緩存中奇數(shù)圖像幀的值I替換為O。
[0078]在備選實施例中,在雙緩存渲染的情況下,計算機實現(xiàn)的用于從模板緩存中去除先前圖像幀的模板值的步驟包括去除被之前的兩個幀渲染了的幀的模板值的計算機實現(xiàn)的步驟。
[0079]在該實施例中,計算機實現(xiàn)的步驟進一步包括將第一幀的模板值指配為1,將第二幀的模板值指配為2,將第三幀的模板值指定為3,然后對隨后的幀重復以上操作。
[0080]具體說,計算機實現(xiàn)的步驟進一步包括提供兩個顏色緩存,即前顏色緩存和背顏色緩存,其中前顏色緩存朝向用戶,且背顏色緩存用于渲染背景中的圖像。[0081]在一個實施例中,計算機實現(xiàn)的步驟進一步包括一旦在背顏色緩存中完成渲染就交換顏色緩存,使得背顏色緩存變成前顏色緩存而前顏色緩存變成背顏色緩存,從而允許在背顏色緩存中發(fā)生下一圖像幀的渲染。
【專利附圖】
【附圖說明】
[0082]以下通過示例并參照附圖的方式描述本發(fā)明,附圖中:
[0083]圖1示出了包含根據(jù)本發(fā)明各個方面的原理的計算機系統(tǒng)。
[0084]圖2示出了表示根據(jù)本發(fā)明的一個實施例的圖像渲染方法的高級示意圖。
[0085]圖3A至圖3D示出了四個連續(xù)圖像幀,其用以說明本發(fā)明在使用時的實施例的圖像渲染方法的示例,但具體地示出了利用兩個緩存的局部渲染。
【具體實施方式】
[0086]首先參照圖1,其顯示了實現(xiàn)本發(fā)明的原理的計算機系統(tǒng)10的簡化框圖。計算機系統(tǒng)10包括圖形處理單元12,其集成了具有主機接口 /前端14的電路。主機接口 /前端14接收原始圖形數(shù)據(jù)和來自中央處理單元16的程序指令,中央處理單元16運行存儲在存儲器18中的應用程序??蓮挠嬎銠C可讀介質(zhì)20輸入的應用程序使得計算機系統(tǒng)10能夠?qū)崿F(xiàn)本發(fā)明的原理。
[0087]主機接口 /前端14緩存輸入信息并向幾何引擎22提供原始圖形信息。幾何引擎22可經(jīng)由幀緩存接口 26訪問幀緩存器24。幾何引擎22產(chǎn)生、縮放、轉(zhuǎn)動存儲在幀緩存器24中的“模型”坐標下的圖元的三維頂點,并將其投影到二維幀緩存坐標中。
[0088]幀緩存器24包括:用于存儲各個像素的深度信息的深度緩存28 ;用于存儲各個像素的顏色信息的顏色緩存30 ;和具有針對各個像素的模板寄存器的模板緩存32。之前已經(jīng)描述了模板緩存32的用途。然而,為了說明目的,將會假設存儲器18中的應用程序?qū)嵤┲讳秩咀兓膱D像或片段的局部渲染例程。
[0089]將來自幾何引擎22的圖元的頂點的二維幀緩存坐標通過光柵器34。光柵器34識別圖元里的所有像素的位置。這通常是通過沿定義圖元的線之間延伸的光柵線(水平)而進行的。光柵器34的輸出稱為光柵化的像素數(shù)據(jù)。光柵化的像素數(shù)據(jù)應用于利用著色程序(指令序列)來處理輸入數(shù)據(jù)(代碼、位置、紋理、條件、常量等)從而產(chǎn)生輸出數(shù)據(jù)的著色器36上。
[0090]著色器36包括將光柵化的像素數(shù)據(jù)修改為具有所需紋理和視覺特征的紋理引擎38。能訪問存儲在幀緩存器24中的數(shù)據(jù)的紋理引擎38可采用高速處理大量數(shù)據(jù)的硬件管線來實現(xiàn)。然后,著色的像素數(shù)據(jù)發(fā)送到光柵操作處理器38,光柵操作處理器38可視情況針對著色的像素數(shù)據(jù)執(zhí)行包括模板處理的其他處理。最終的結(jié)果是通過幀緩存接口 26存儲在幀緩存器24中的像素數(shù)據(jù)。幀像素數(shù)據(jù)可用于各種處理,例如在顯示器40上顯示圖像。
[0091]在使用中,當開始的時候,將顏色緩存和模板緩存清空。下面參照圖2,所顯示的圖像渲染方法100包括將當前圖像幀與先前圖像幀進行比較以檢測圖像幀中對象的動態(tài)變化的步驟,如框102所示。
[0092]眾所周知,各圖像幀由場景圖限定,并且各對象具有相關(guān)聯(lián)的幾何邊界體。在一個實施例中,場景圖中的各個對象具有相關(guān)聯(lián)的變換矩陣,檢測圖像幀中圖像的變化的步驟102包括檢測對象的變換矩陣是否變化。作為備選或者作為此處理的一部分,在通常情況下,這可包括確定先前幀之后影響對象的視覺外觀(或位置或空間的方向)的任何屬性值是否改變。如果是的話,對象應視為已發(fā)生變化。
[0093]如果檢測到對象中的動態(tài)變化,那么針對各個動態(tài)變化的對象將對象的幾何邊界體渲染至模板緩存,如框104所示。這通常通過利用指配給當前圖像幀的模板值來完成。
[0094]之后,應用模板測試以確定幀中具有非零模板值的區(qū)域,如框106所示。
[0095]如框108所示,將與先前圖像幀中被重繪的區(qū)域和當前幀中需要覆蓋繪制的區(qū)域相關(guān)的顏色緩存清空。這通過應用模板測試來完成,使得只有模板值不同于零的區(qū)域被清空。
[0096]然后,如框110所示,方法100包括利用模板測試來將圖像幀渲染至顏色緩存。結(jié)果是,只重繪具有非零模板值的區(qū)域。因此,GPU將丟棄未通過模板測試的片段或?qū)ο蟮倪M
一步處理。
[0097]方法100結(jié)束于從模板緩存中去除先前圖像幀的模板值,如框112所示。如下更詳細解釋的,在單緩存渲染的情況下(其中只有單個顏色緩存),這意味著去除先前圖像幀的模板值;在雙緩存(或通常情況下的N個緩存)的情況下,去除第二個前一幀(或通常情況下第N個前一幀)的模板值。
[0098]如前一段落所述,在單緩存的情況下,從模板緩存中去除先前圖像幀的模板值的步驟包括去除前一圖像幀的模板值。在該實施例中,將模板緩存中每個偶數(shù)圖像幀的模板值指配為1,并將每個奇數(shù)圖像幀的模板值指配為2。具體而言,從模板緩存中去除先前圖像幀的模板值的步驟包括將模板緩存中每個偶數(shù)圖像幀的值2替換為0,并將模板緩存中每個奇數(shù)圖像幀的值I替換為O。通過改變每個偶數(shù)幀和奇數(shù)幀的模板值,可以在只渲染動態(tài)變化了的區(qū)域的同時從舊幀中清空結(jié)果。
[0099]參考圖3A至圖3D,最佳地描述了雙緩存的備選實施例。雙緩存在這些附圖中顯示為包括兩個顏色緩存。但是在此應用的方法可簡單地延伸到N緩存(即N個顏色緩存)。
[0100]圖3A至圖3D示出了四個連續(xù)幀,即圖3A中的幀01、圖3B中的幀02、圖3C中的幀03和圖3D中的幀04。具體而言,提供兩個顏色緩存200、202,即前顏色緩存和背顏色緩存。前顏色緩存朝向(exposed to)用戶,背顏色緩存用于渲染背景中的圖像。另外,本發(fā)明的方案包括一旦在背顏色緩存中完成渲染就交換顏色緩存200、202,使得背顏色緩存變成前顏色緩存而前顏色緩存變成背顏色緩存,從而允許在背顏色緩存中進行下一圖像幀的渲染。因此,在幀01 (圖3A)中,“顏色緩存01”200是激活的,在幀02 (圖3B)中,“顏色緩存02”202是激活的,在幀03 (圖3C)中,“顏色緩存01”200是激活的,在幀04 (圖3D)中,“顏色緩存02” 202是激活的。
[0101]在該實施例中,方法包括將第一幀的模板值指定為1,將第二幀的模板值指定為2,將第三幀的模板值指定為3,然后重復以上操作。
[0102]因此,在“渲染通道01”204中,對象的幾何邊界體渲染至模板緩存206 (如參照圖2中的方法步驟104時所述)。然后,在“渲染通道02” 208中,當前圖像幀的幾何圖像渲染至(激活的)“顏色緩存01”200。
[0103]在幀02 (圖3B)中,在“渲染通道01” 204中,對象的幾何邊界體渲染至模板緩存206。然后,在“渲染通道02”208中,當前圖像幀的幾何圖形渲染至(激活的)“顏色緩存02”202。
[0104]在幀03 (圖3C)中,在“渲染通道01” 204中,將對象的幾何邊界體渲染至模板緩存206。然后,在“渲染通道02”208中,將與兩個先前幀的經(jīng)過渲染的幾何邊界體有關(guān)的顏色緩存清空(即激活的顏色緩存01)。這可通過利用模板測試來渲染黑色全屏四方體(blackfull screen quad)而完成,其中在模板測試中,如果模板緩存中的值為非零的值,則渲染幾何圖形。然后,在“渲染通道03”210中,利用模板測試將當前幀的幾何圖形渲染至激活的“顏色緩存01”,即如果模板緩存中的值是3 (在本情況下),那么渲染幾何圖形。最后,在“渲染通道04”212中,將兩個先前幀渲染后的幀的模板值清除,這可通過利用模板測試來渲染全屏空鉛而完成。
[0105]最后,如之前所述,除了模板參考值恢復為1,幀04 (圖3D)基本上與幀03 (圖3C)類似,并且現(xiàn)在“顏色緩存2”是激活的顏色緩存。
[0106]為對雙緩存進行總結(jié),如下給出了雙緩存局部渲染的算法:
[0107]一利用該圖像幀的模板值將當前變化的對象的模板掩模(S卩如之前所述的幾何邊界體)渲染至模板緩存;
[0108]一將模板緩存中具有不同于零的模板值O的顏色緩存中的片段清空;
[0109]一清除在當前圖像幀之前繪制了兩個幀的模板掩模(通常情況下,如果是N個緩存渲染,清除在當前圖像幀之前繪制了 N個幀的模板掩模)。
[0110]為進一步解釋該算法,考慮以下情況:在當前幀處,圖像幀被繪到N個顏色緩存(考慮N緩存渲染的情況)中的一個特定顏色緩存。然后,交換顏色緩存。在N個幀后將場景渲染至相同的特定緩存,針對該特定緩存應當保留模板掩模,并且因為對于此特定的緩存來說,之前使用了 I個模板值,對于其它N-1個緩存使用了 N-1個模板值,因此局部渲染應當針對當前幀使用第N+1個模板值來渲染模板掩膜。對于當前幀而言,這種局部渲染方式即具有N個先前幀的移動對象的模板掩模也具有當前幀的模板掩模,因此它能夠有效地清除在該特定的緩存中移動對象的先前圖像,并針對當前幀渲染新圖像。
[0111]本發(fā)明所提供的方案整體上增加了結(jié)合圖形硬件的填充率(fill -rate boundgraphics hardware)方面的性能,尤其是與圖文大小相比動態(tài)區(qū)域相對較小時,更為如此。另外,所提出的方案通過對每個動態(tài)變化了的對象將場景圖渲染至模板緩存,從而減少了用于完成場景圖的GPU片段處理。
[0112]可結(jié)合以下示范性的方面來說明本發(fā)明的實施例:
[0113]方面1,一種圖像渲染方法,該方法包括:將當前圖像幀與先前圖像幀進行比較,以檢測圖像幀中對象的動態(tài)變化,其中每個圖像幀由場景圖限定,且每個對象具有相關(guān)聯(lián)的幾何邊界體;如果檢測到對象中的動態(tài)變化,那么針對每個動態(tài)變化了的對象,利用指配給當前圖像幀的模板值來將對象的幾何邊界體渲染至模板緩存;應用模板測試以確定幀中具有非零模板值的區(qū)域;將與已經(jīng)重繪了的先前圖像幀中的區(qū)域和需要覆蓋繪制的當前圖像幀中的區(qū)域有關(guān)的顏色緩存清空。利用模板測試來將圖像幀渲染至顏色緩存,使得只有那些具有非零模板值的區(qū)域被重繪;以及從模板緩存中去除先前圖像幀的模板值。
[0114]方面2,方面I的圖像渲染方法,其中,場景圖中的每個對象具有相關(guān)聯(lián)的變換矩陣,檢測對象中的動態(tài)變化的步驟包括檢測對象的變換矩陣是否變化。[0115]方面3,如方面1、2的圖像渲染方法,其中,在單緩存渲染的情況下,從模板緩存中去除先前圖像幀的模板值的步驟包括去除前一圖像幀的模板值的步驟。
[0116]方面4,如方面3的圖像渲染方法,其中,將模板緩存中每個偶數(shù)圖像幀的模板值指配為1,并將每個奇數(shù)圖像幀的模板值指配為2。
[0117]方面5,如方面4的圖像渲染方法,其中,從模板緩存中去除先前圖像幀的模板值的步驟包括將模板緩存中偶數(shù)圖像幀的值2替換為0,并將模板緩存中奇數(shù)圖像幀的值I替換為O。
[0118]方面6,如之前任一方面所述的圖像渲染方法,其中,在雙緩存渲染的情況下,從模板緩存中去除先前圖像幀的模板值的步驟包括去除之前的兩個幀渲染的幀的模板值的步驟。
[0119]方面7,如方面6的圖像渲染方法,其中,所述方法包括將第一幀的模板值指配為I,將第二幀的模板值指配為2,將第三幀的模板值指配為3,然后對隨后的幀重復以上操作。
[0120]方面8,如方面7的圖像渲染方法,其中,所述方法包括提供兩個顏色緩存,即前顏色緩存和背顏色緩存,其中前顏色緩存朝向用戶,且背顏色緩存用于渲染背景中的圖像。
[0121]方面9,如方面8的圖像渲染方法,其中,所述方法包括一旦在背顏色緩存中完成渲染就交換顏色緩存,使得背顏色緩存變成前顏色緩存而前顏色緩存變成背顏色緩存,從而允許在背顏色緩存中進行下一個圖像幀的渲染。
[0122]方面10,如之前任一方面所述的圖像渲染方法,其中,對象是不透明的或是透明的。
[0123]方面11,一種包括處理器的圖像渲染系統(tǒng):將當前圖像幀與先前圖像幀進行比較,以檢測圖像幀中對象的動態(tài)變化,其中每個圖像幀由場景圖定義,且每個對象具有相關(guān)聯(lián)的幾何邊界體;如果檢測到對象中的動態(tài)變化,那么針對每個動態(tài)變化了的對象,利用指配給當前圖像幀的模板值來將對象的幾何邊界體渲染至模板緩存;應用模板測試以確定幀中具有非零模板值的區(qū)域;將與已經(jīng)重繪了的先前圖像幀中的區(qū)域和需要覆蓋繪制的當前圖像幀中的區(qū)域相關(guān)的顏色緩存清空。利用模板測試來將圖像幀渲染至顏色緩存,使得只重繪具有非零模板值的區(qū)域;以及從模板緩存中去除先前圖像幀的模板值。
[0124]方面12,如方面11的圖像渲染系統(tǒng),其中,場景圖中的每個對象具有相關(guān)聯(lián)的變換矩陣,處理器通過檢測對象的變換矩陣是否變化來檢測對象中的動態(tài)變化。
[0125]方面13,如方面11、12的圖像渲染系統(tǒng),其中,在單緩存渲染的情況下,處理器通過去除前一圖像幀的模板值來從模板緩存中去除先前圖像幀的模板值。
[0126]方面14,如方面13的圖像渲染系統(tǒng),其中,將模板緩存中的每個偶數(shù)圖像幀的模板值指配為1,并將每個奇數(shù)圖像幀的模板值指配為2。
[0127]方面15,如方面14的圖像渲染系統(tǒng),其中,處理器通過將模板緩存中偶數(shù)圖像幀的值2替換為0,并將模板緩存中奇數(shù)圖像幀的值I替換為O而從模板緩存中去除先前圖像幀的模板值。
[0128]方面16,如方面11-15中任何一個的圖像渲染系統(tǒng),其中,在雙緩存渲染的情況下,處理器通過去除被之前的兩個幀渲染了的幀的模板值而從模板緩存中去除先前圖像幀的模板值。[0129]方面17,如方面14的圖像渲染系統(tǒng),其中,處理器指配第一幀的模板值為1,指配第二幀的模板值為2,指配第三幀的模板值為3,然后對隨后的幀重復以上操作。
[0130]方面18,如方面14的圖像渲染系統(tǒng),其中,提供兩個顏色緩存,即前顏色緩存和背顏色緩存,其中前顏色緩存朝向用戶,而背顏色緩存用于渲染背景中的圖像。
[0131]方面19,如方面14的圖像渲染系統(tǒng),其中,一旦在背顏色緩存中完成渲染,處理器就交換顏色緩存,使得背顏色緩存變成前顏色緩存而前顏色緩存變成背顏色緩存,從而允許在背顏色緩存中進行下一圖像幀的渲染。
[0132]方面20,一種圖像渲染系統(tǒng),其包括:運行存儲在存儲器中的應用程序的中央處理單元;圖形處理單元,具有主機接口以接收原始圖形數(shù)據(jù)和中央處理單元的程序指令;以及幀緩存器,其包括:深度緩存,其用于存儲幀中每個像素的深度信息的;顏色緩存,其用于存儲每個像素的顏色信息;以及模板緩存,其具有針對每個像素的模板寄存器,幀緩存器通過幀緩存接口與圖形處理單元交換數(shù)據(jù)。中央處理單元設置為用以:將當前圖像幀與先前圖像幀進行比較,以檢測圖像幀中的對象的動態(tài)變化,其中每個圖像幀由場景圖定義,且每個對象具有相關(guān)聯(lián)的幾何邊界體;如果檢測到對象中的動態(tài)變化,那么針對每個動態(tài)變化了的對象,利用指配給當前圖像幀的模板值來將對象的幾何邊界體渲染至模板緩存;應用模板測試以確定幀中具有非零模板值的區(qū)域;將與已經(jīng)重繪了的先前圖像幀中的區(qū)域和需要覆蓋繪制的當前圖像幀中的區(qū)域相關(guān)的顏色緩存清空。利用模板測試來將圖像幀渲染至顏色緩存,使得只重繪非零模板值的區(qū)域;以及從模板緩存中去除先前圖像幀的模板值。
[0133]方面21,如方面20的圖像渲染系統(tǒng),其中,場景圖中的每個對象具有相關(guān)聯(lián)的變換矩陣,中央處理單元通過檢測對象的變換矩陣是否變化來檢測對象中的動態(tài)變化。
[0134]方面22,如方面20、21的圖像渲染系統(tǒng),其中,在單緩存渲染的情況下,中央處理單元通過去除前一圖像幀的模板值來從模板緩存中去除先前圖像幀的模板值。
[0135]方面23,如方面22的圖像渲染系統(tǒng),其中,將模板緩存中每個偶數(shù)圖像幀的模板值指配為1,并將每個奇數(shù)圖像幀的模板值指配為2。
[0136]方面24,如方面23的圖像渲染系統(tǒng),其中,中央處理單元通過將模板緩存中每個偶數(shù)圖像幀的值2替換為O、將模板緩存中每個奇數(shù)圖像幀的值I替換為O而從模板緩存中去除先前圖像幀的模板值。
[0137]方面25,如方面20-24中任何一個的圖像渲染系統(tǒng),其中,在雙緩存渲染的情況下,中央處理單元通過去除之前的兩個幀渲染的幀的模板值而從模板緩存中去除先前圖像幀的模板值。
[0138]方面26,如方面25的圖像渲染系統(tǒng),其中,中央處理單元將第一幀的模板值指配為1,將第二幀的模板值指配為2,將第三幀的模板值指配為3,然后對隨后的幀重復以上操作。
[0139]方面27,如方面26的圖像渲染系統(tǒng),其中,提供兩個緩存,即前顏色緩存和背顏色緩存,其中前顏色緩存朝向用戶,且背顏色緩存用于渲染背景中的圖像。
[0140]方面28,如方面27的圖像渲染系統(tǒng),其中,一旦在背顏色緩存中完成渲染,中央處理單元就交換顏色緩存,使得背顏色緩存變成前顏色緩存而前顏色緩存變成背顏色緩存,從而允許在背顏色緩存中進行下一個圖像幀的渲染。[0141]方面29,提供了一種其上存儲了一系列用于使處理器渲染圖像的計算機可讀指令的非暫時性計算機可讀介質(zhì),該指令包括以下計算機實現(xiàn)的步驟:將當前圖像幀與先前圖像幀進行比較,以檢測圖像幀中的對象的動態(tài)變化,其中每個圖像幀由場景圖定義,且每個對象具有相關(guān)聯(lián)的幾何邊界體;如果檢測到對象中的動態(tài)變化,那么針對每個動態(tài)變化了的對象,利用指配給當前圖像幀的模板值來將對象的幾何邊界體渲染至模板緩存;應用模板測試以確定幀中具有非零模板值的區(qū)域;將與已經(jīng)重繪了的先前圖像幀中的區(qū)域和需要覆蓋繪制的當前圖像幀中的區(qū)域有關(guān)的顏色緩存清空;利用模板測試來將圖像幀渲染至顏色緩存,使得只重繪非零模板值的區(qū)域;以及從模板緩存中去除先前圖像幀的模板值。
[0142]方面30,如方面29的非暫時性計算機可讀介質(zhì),其中,場景圖中的每個對象具有相關(guān)聯(lián)的變換矩陣,檢測對象中的動態(tài)變化的計算機實現(xiàn)的步驟包括檢測對象的變換矩陣是否變化。
[0143]方面31,如方面29、30的非暫時性計算機可讀介質(zhì),其中,在單緩存渲染的情況下,從模板緩存中去除先前圖像幀的模板值的計算機實現(xiàn)的步驟包括去除前一圖像幀的模板值。
[0144]方面32,如方面31的非暫時性計算機可讀介質(zhì),其中,將模板緩存中每個偶數(shù)圖像幀的模板值指配為1,并將每個奇數(shù)圖像幀的模板值指配為2。
[0145]方面33,如方面32的非暫時性計算機可讀介質(zhì),其中,從模板緩存中去除先前圖像幀的模板值的計算機實現(xiàn)的步驟包括將模板緩存中每個偶數(shù)圖像幀的值2替換為0,并將模板緩存中每個奇數(shù)圖像幀的值I替換為O。
[0146]方面34,如方面29-33中任何一個的非暫時性計算機可讀介質(zhì),其中,在雙緩存渲染的情況下,從模板緩存中去除先前圖像幀的模板值的計算機實現(xiàn)的步驟包括去除被之前的兩個幀渲染了的幀的模板值。
[0147]方面35,如方面34的非暫時性計算機可讀介質(zhì),其包括將第一幀的模板值指定為1,將第二幀的模板值指定為2,將第三幀的模板值指定為3,然后對隨后的幀重復以上操作。
[0148]方面36,如方面35所述的非暫時性計算機可讀介質(zhì),包括提供兩個顏色緩存,即前顏色緩存和背顏色緩存,其中前顏色緩存曝光用戶,而背顏色緩存用于渲染背景中的圖像。
[0149]方面37,如方面36的非暫時性計算機可讀介質(zhì),其包括一旦在背顏色緩存中完成渲染就交換顏色緩存,使得背顏色緩存變成前顏色緩存而前顏色緩存變成背顏色緩存,從而允許在背顏色緩存中進行下一圖像幀的渲染。
[0150]應該理解的是,本發(fā)明所公開的實施例不限于這里所公開的特定結(jié)構(gòu)、處理步驟或材料,而應當延伸到相關(guān)領域的普通技術(shù)人員所理解的這些特征的等同替代。還應當理解的是,在此使用的術(shù)語僅用于描述特定實施例的目的,而并不意味著限制。
[0151 ] 說明書中提到的“ 一個實施例”或“實施例”意指結(jié)合實施例描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個實施例中。因此,說明書通篇各個地方出現(xiàn)的短語“一個實施例”或“實施例”并不一定均指同一個實施例。
[0152]為了方便,在此使用的多個項目、結(jié)構(gòu)單元、組成單元和/或材料可出現(xiàn)在共同列表中。然而,這些列表應解釋為該列表中的每個元素分別識別為單獨唯一的成員。因此,在沒有相反說明的情況下,該列表中沒有一個成員可僅基于它們出現(xiàn)在共同列表中而被解釋為相同列表的任何其它成員的實際等同物。另外,在此還可以連同針對各元件的替代一起來參照本發(fā)明的各種實施例和示例。應當理解的是,這些實施例、示例和替代并不解釋為彼此的等同物,而被認為是本發(fā)明的單獨自主的代表。
[0153]此外,所描述的特征、結(jié)構(gòu)或特性可以任何其他合適的方式結(jié)合到一個或多個實施例中。在下面的描述中,提供一些具體的細節(jié),例如長度、寬度、形狀等,以提供對本發(fā)明的實施例的全面理解。然而,相關(guān)領域的技術(shù)人員將明白,本發(fā)明無需上述一個或多個具體的細節(jié)便可實現(xiàn),或者也可采用其它方法、組件、材料等實現(xiàn)。在其它示例中,周知的結(jié)構(gòu)、材料或操作并未詳細示出或描述以免模糊本發(fā)明的各個方面。
[0154]雖然上述示例用于說明本發(fā)明在一個或多個應用中的原理,但對于本領域的技術(shù)人員來說,在不背離本發(fā)明的原理和思想的情況下,明顯可以在形式上、用法及實施的細節(jié)上作各種修改而不用付出創(chuàng)造性勞動。因此,本發(fā)明由所附的權(quán)利要求書來限定。
【權(quán)利要求】
1.一種圖像渲染方法,該方法包括: 將當前圖像幀與先前圖像幀進行比較,以檢測圖像幀中的對象的動態(tài)變化,每個圖像幀由場景圖限定,且每個對象具有相關(guān)聯(lián)的幾何邊界體; 如果檢測到對象中的動態(tài)變化,那么針對每個動態(tài)變化了的對象,利用指配給當前圖像幀的模板值將對象的幾何邊界體渲染至模板緩存; 應用模板測試以確定幀中具有非零模板值的區(qū)域; 將與已經(jīng)重繪了的先前圖像幀中的區(qū)域和需要重新繪制的當前圖像幀中的區(qū)域相關(guān)的顏色緩存清空。 利用模板測試來將圖像幀渲染至顏色緩存,使得只重繪幀中具有非零模板值的區(qū)域;以及 從模板緩存中去除先前圖像幀的模板值。
2.如權(quán)利要求1所述的圖像渲染方法,其中,場景圖中的每個對象具有相關(guān)聯(lián)的變換矩陣,檢測對象中的動態(tài)變化的步驟包括檢測對象的變換矩陣是否變化。
3.如權(quán)利要求1所述的圖像渲染方法,其中,在單緩存渲染的情況下,從模板緩存中去除先前圖像幀的模板值的步驟包括去除前一圖像幀的模板值的步驟。
4.如權(quán)利要 求3所述的圖像渲染方法,其中,將模板緩存中每個偶數(shù)圖像幀的模板值指配為1,并將每個奇數(shù)圖像幀的模板值指配為2。
5.如權(quán)利要求4所述的圖像渲染方法,其中,從模板緩存中去除先前圖像幀的模板值的步驟包括將模板緩存中每個偶數(shù)圖像幀的值2替換為O,并將模板緩存中每個奇數(shù)圖像幀的值I替換為O。
6.如權(quán)利要求1所述的圖像渲染方法,其中,在雙緩存渲染的情況下,從模板緩存中去除先前圖像幀的模板值的步驟包括去除被之前的兩個幀渲染了的幀的模板值的步驟。
7.如權(quán)利要求6所述的圖像渲染方法,其中,所述方法包括將第一幀的模板值指配為1,將第二幀的模板值指配為2,將第三幀的模板值指配為3,然后對隨后的幀重復以上操作。
8.如權(quán)利要求7所述的圖像渲染方法,其中,所述方法包括提供兩個顏色緩存,即前顏色緩存和背顏色緩存,其中前顏色緩存朝向用戶,而背顏色緩存用于渲染背景中的圖像。
9.如權(quán)利要求8所述的圖像渲染方法,其中,所述方法包括一旦在背顏色緩存中完成渲染就交換顏色緩存,使得背顏色緩存變成前顏色緩存而前顏色緩存變成背顏色緩存,從而允許在背顏色緩存中進行下一個圖像幀的渲染。
10.如權(quán)利要求1所述的圖像渲染方法,其中,所述對象是不透明的或是透明的。
11.一種圖像渲染系統(tǒng),所述系統(tǒng)包括: 中央處理單元,其運行存儲在存儲器中的應用程序; 圖形處理單元,其具有主機接口以接收原始圖像數(shù)據(jù)和中央處理單元的程序指令;幀緩存器,其包括:深度緩存,其用于存儲幀中每個像素的深度信息;顏色緩存,其用于存儲每個像素的顏色信息;以及模板緩存,其具有針對每個像素的模板寄存器,幀緩存器通過幀緩存器接口與圖形處理單元交換數(shù)據(jù), 所述中央處理單元設置為用以: 將當前圖像幀與先前圖像幀進行比較,以檢測圖像幀中對象的動態(tài)變化,其中每個圖像幀由場景圖限定,且每個對象具有相關(guān)聯(lián)的幾何邊界體; 如果檢測到對象中的動態(tài)變化,那么針對每個動態(tài)變化了的對象,利用指配給當前圖像幀的模板值將對象的幾何邊界體渲染至模板緩存; 應用模板測試以確定幀中具有非零模板值的區(qū)域; 將與已經(jīng)重繪了的先前圖像幀中的區(qū)域和需要覆蓋繪制的當前圖像幀中的區(qū)域相關(guān)的顏色緩存清空。 利用模板測試來將圖像幀渲染至顏色緩存,使得只重繪幀中具有非零模板值的區(qū)域;以及 從模板緩存中去除先前圖像幀的模板值。
12.如權(quán)利要求11所述的圖像渲染系統(tǒng),其中,場景圖中的每個對象具有相關(guān)聯(lián)的變換矩陣,所述中央處理單元通過檢測對象的變換矩陣是否變化來檢測對象中的動態(tài)變化。
13.如權(quán)利要求11所述的圖像渲染系統(tǒng),其中,在單緩存渲染的情況下,中央處理單元通過去除前一圖像幀的模板值來從模板緩存中去除先前圖像幀的模板值。
14.如權(quán)利要求13所述的圖像渲染系統(tǒng),其中,將模板緩存中每個偶數(shù)圖像幀的模板值指配為1,并將每個奇數(shù)圖像幀的模板值指配為2。
15.如權(quán)利要求14所述的圖像渲染系統(tǒng),其中,所述中央處理單元通過將模板緩存中每個偶數(shù)圖像幀的值2替換為O、將模板緩存中每個奇數(shù)圖像幀的值I替換為O而從模板緩存中去除先前圖像幀的模板值。
16.如權(quán)利要求11所述的圖像渲染系統(tǒng),其中,在雙緩存器渲染的情況下,所述中央處理單元通過去除被之前的兩個幀渲染了的幀的模板值移除而從模板緩存中去除先前圖像幀的模板值。
17.如權(quán)利要求16所述的圖像渲染系統(tǒng),其中,中央處理單元指配第一幀的模板值為1,指配第二幀的模板值為2,指配第三幀的模板值為3,然后對隨后的幀重復以上操作。
18.如權(quán)利要求17所述的圖像渲染系統(tǒng),其中,提供兩個緩存,即前顏色緩存和背顏色緩存,其中前顏色緩存朝向用戶,而背顏色緩存用于渲染背景中的圖像。
19.如權(quán)利要求18所述的圖像渲染系統(tǒng),其中,一旦在背顏色緩存中完成渲染,所述中央處理單元就交換顏色緩存,使得背顏色緩存變成前顏色緩存而前顏色緩存變成背顏色緩存,從而允許在背顏色緩存中進行下一圖像幀的渲染。
20.一種其上存儲了一系列計算機可讀指令的非暫時性計算機可讀介質(zhì),該指令用于使處理器渲染圖像,其包括以下計算機實現(xiàn)的步驟: 將當前圖像幀與先前圖像幀進行比較,以檢測圖像幀中的對象的動態(tài)變化,其中,每個圖像幀由場景圖限定,且每個對象具有相關(guān)聯(lián)的幾何邊界體; 如果檢測到對象中的動態(tài)變化,那么針對每個動態(tài)變化了的對象,利用指配給當前圖像幀的模板值來將對象的幾何邊界體渲染至模板緩存; 應用模板測試以確定幀中具有非零模板值的區(qū)域; 將與已經(jīng)重繪了的 先前圖像幀中的區(qū)域和需要覆蓋繪制的當前圖像幀中的區(qū)域相關(guān)的顏色緩存清空。 利用模板測試來將圖像幀渲染至顏色緩存,使得只重繪幀中具有非零模板值的區(qū)域;以及從模板緩存中去除先前圖像幀的模板值。
【文檔編號】G06T15/00GK103810742SQ201310538613
【公開日】2014年5月21日 申請日期:2013年11月4日 優(yōu)先權(quán)日:2012年11月5日
【發(fā)明者】托馬斯·沃洛蒂寧, 丹尼斯·庫金金 申請人:正謂有限公司