亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

3D圖形渲染方法和設(shè)備與流程

文檔序號(hào):11922530閱讀:847來源:國知局
3D圖形渲染方法和設(shè)備與流程

技術(shù)領(lǐng)域

以下描述涉及執(zhí)行三維(3D)渲染的圖像處理技術(shù)。



背景技術(shù):

在三維(3D)計(jì)算機(jī)圖形中,圖形管線(graphics pipeline)或渲染管線(rendering pipeline)表示被配置為通過分階段或管線方法將3D圖像產(chǎn)生為二維(2D)光柵圖像或光柵化圖像信息的一個(gè)或更多個(gè)處理器。

圖形管線包括被配置為對(duì)3D對(duì)象的頂點(diǎn)信息執(zhí)行數(shù)學(xué)運(yùn)算以向3D對(duì)象提供特殊效果的頂點(diǎn)著色器以及被配置為計(jì)算每個(gè)像素的顏色的像素著色器。頂點(diǎn)著色器可基于頂點(diǎn)信息執(zhí)行例如將3D對(duì)象改變到特殊位置和改變紋理或顏色的操作。像素著色器可應(yīng)用例如從紋理讀取顏色、施加光以及對(duì)陰影、反射光或透明度進(jìn)行處理的復(fù)雜操作。



技術(shù)實(shí)現(xiàn)要素:

提供本發(fā)明內(nèi)容以用簡化的形式介紹對(duì)在下面的具體實(shí)施方式中進(jìn)一步描述的構(gòu)思的選擇。本發(fā)明內(nèi)容不是旨在確定所要求保護(hù)主題的關(guān)鍵特征或必要特征,也不是意圖被用作幫助確定所要求保護(hù)主題的范圍。

在一個(gè)總體的方面,一種用于渲染三維(3D)場景的3D渲染方法,所述方法包括:確定3D場景中將被執(zhí)行著色的所選著色點(diǎn),對(duì)所確定的著色點(diǎn)執(zhí)行著色,并基于對(duì)所確定的著色點(diǎn)執(zhí)行著色的結(jié)果來確定3D場景的著色信息。

確定3D場景中將被執(zhí)行著色的所選著色點(diǎn)的步驟可以基于針對(duì)3D場景的區(qū)域的所確定的著色級(jí)別,并且與確定針對(duì)3D場景的另一區(qū)域的所選著色點(diǎn)的步驟不同。

確定3D場景中將被執(zhí)行著色的所選著色點(diǎn)的步驟導(dǎo)致不同數(shù)量的著色點(diǎn)可根據(jù)以下事項(xiàng)而被確定:代表不同著色復(fù)雜度的多個(gè)著色級(jí)別中的哪個(gè)著色級(jí)別根據(jù)對(duì)3D場景的區(qū)域的時(shí)間分析和/或空間分析被確定為所述針對(duì)3D場景的區(qū)域的所確定的著色級(jí)別。

確定3D場景中將被執(zhí)行著色的所選著色點(diǎn)的步驟可包括:將少于3D場景的區(qū)域的全部頂點(diǎn)的頂點(diǎn)確定為被執(zhí)行著色的著色點(diǎn)。

將少于3D場景的區(qū)域的全部頂點(diǎn)的頂點(diǎn)確定為被執(zhí)行著色的著色點(diǎn)的步驟還可包括:將3D場景的區(qū)域中的3D對(duì)象上的至少一個(gè)非頂點(diǎn)點(diǎn)確定為也被執(zhí)行著色的著色點(diǎn)。

將少于3D場景的區(qū)域的全部頂點(diǎn)的頂點(diǎn)確定為被執(zhí)行著色的著色點(diǎn)的步驟可包括:確定3D場景的區(qū)域中沒有頂點(diǎn)被選為著色點(diǎn)。

將少于3D場景的區(qū)域的全部頂點(diǎn)的頂點(diǎn)確定為被執(zhí)行著色的著色點(diǎn)的步驟可包括:確定著色點(diǎn)包括3D場景的區(qū)域的至少一個(gè)頂點(diǎn)。

確定著色點(diǎn)包括3D場景的區(qū)域的至少一個(gè)頂點(diǎn)的步驟可包括:確定著色點(diǎn)包括3D場景的區(qū)域的全部頂點(diǎn)。

所述方法還可包括:基于對(duì)少于3D場景的區(qū)域的全部頂點(diǎn)的所述頂點(diǎn)的一個(gè)或更多個(gè)著色的結(jié)果,針對(duì)除少于3D場景的區(qū)域的全部頂點(diǎn)的所述頂點(diǎn)之外的3D場景的區(qū)域的其余頂點(diǎn)對(duì)著色值進(jìn)行插值,并通過從所確定的3D場景的著色信息確定像素顏色值來渲染圖像。

確定3D場景中將被執(zhí)行著色的所選著色點(diǎn)的步驟可包括:將3D場景中的3D對(duì)象的全部頂點(diǎn)和3D對(duì)象上另外的點(diǎn)確定為將被執(zhí)行著色的所選著色點(diǎn)。

確定3D場景中將被執(zhí)行著色的所選著色點(diǎn)的步驟可基于對(duì)3D場景的空間特征和時(shí)間特征的多個(gè)分析中的至少一個(gè)分析。

確定3D場景中將被執(zhí)行著色的所選著色點(diǎn)的步驟還可包括:基于以下項(xiàng)中的至少一項(xiàng)來確定所選著色點(diǎn):與虛擬光源關(guān)聯(lián)的信息、與虛擬相機(jī)關(guān)聯(lián)的信息、與3D場景中的3D對(duì)象關(guān)聯(lián)的信息以及對(duì)先前圖像幀執(zhí)行著色的結(jié)果。

與虛擬光源關(guān)聯(lián)的信息可包括與虛擬光源的位置、顏色、亮度、方向、角度和移動(dòng)速度中的至少一個(gè)相關(guān)的信息,與虛擬相機(jī)關(guān)聯(lián)的信息可包括與虛擬相機(jī)的位置、方向、角度和移動(dòng)速度中的至少一個(gè)相關(guān)的信息,與3D對(duì)象關(guān)聯(lián)的信息可包括與3D對(duì)象的形狀、顏色和材料中的至少一個(gè)相關(guān)的信息。

確定3D場景中將被執(zhí)行著色的所選著色點(diǎn)的步驟還可包括:將3D場景中的頂點(diǎn)分組成不同的頂點(diǎn)組,并針對(duì)每個(gè)頂點(diǎn)組確定至少一個(gè)所選著色點(diǎn)。

將3D場景中的頂點(diǎn)分組成不同的頂點(diǎn)組的步驟可包括:基于以下項(xiàng)中的至少一項(xiàng)將頂點(diǎn)分組成不同的頂點(diǎn)組:頂點(diǎn)各自的位置、頂點(diǎn)各自的法線、對(duì)先前圖像幀執(zhí)行著色的結(jié)果以及哪些頂點(diǎn)用于相同的3D對(duì)象。

確定3D場景中將被執(zhí)行著色的所選著色點(diǎn)的步驟還可包括基于以下項(xiàng)中的至少一項(xiàng)針對(duì)所述不同的頂點(diǎn)組中的每個(gè)頂點(diǎn)組確定著色級(jí)別:虛擬光源的移動(dòng)、虛擬相機(jī)的移動(dòng)、3D對(duì)象的移動(dòng)、鄰近頂點(diǎn)之間的亮度差以及頂點(diǎn)組中的頂點(diǎn)的位置。

確定3D場景中將被執(zhí)行著色的所選著色點(diǎn)的步驟還可包括:基于針對(duì)每個(gè)頂點(diǎn)組分別確定的著色級(jí)別,確定每個(gè)頂點(diǎn)組的將被執(zhí)行著色的各個(gè)著色點(diǎn)。

將3D場景中的頂點(diǎn)分組成不同的頂點(diǎn)組的步驟可包括:針對(duì)每個(gè)頂點(diǎn)組確定與頂點(diǎn)關(guān)聯(lián)的各自的層次結(jié)構(gòu)信息,其中,每個(gè)層次結(jié)構(gòu)信息表示針對(duì)每個(gè)頂點(diǎn)組的多個(gè)不同復(fù)雜度級(jí)別,針對(duì)每個(gè)頂點(diǎn)組確定至少一個(gè)所選著色點(diǎn)的步驟可包括:基于從所述各自的層次結(jié)構(gòu)信息分別確定了哪個(gè)復(fù)雜度級(jí)別來對(duì)每個(gè)頂點(diǎn)組進(jìn)行著色,針對(duì)每個(gè)頂點(diǎn)組選擇各自不同的著色點(diǎn)。

確定3D場景的著色信息的步驟可包括:通過對(duì)被執(zhí)行著色以確定它們各自的著色值的著色點(diǎn)的各自的著色值之中的著色值進(jìn)行插值,來確定與被執(zhí)行著色以確定它們各自的著色值的著色點(diǎn)鄰近的頂點(diǎn)的著色值,而無需執(zhí)行著色。

所述方法還可包括:通過對(duì)所確定的著色點(diǎn)的著色值進(jìn)行插值來確定通過渲染3D場景所獲得的圖像中的像素的顏色值,作為在確定三維場景的著色信息的步驟中所確定的。

確定三維場景的著色信息的步驟可包括:將著色點(diǎn)各自的著色值和頂點(diǎn)的著色值存儲(chǔ)在紋理緩沖器中。

所述方法還可包括:使用存儲(chǔ)在紋理緩沖器中的著色值來執(zhí)行像素著色操作,以確定圖像中的像素的顏色值從而渲染圖像。

對(duì)確定的著色點(diǎn)執(zhí)行著色的步驟可包括:基于直接光源和間接光源中的至少一個(gè)的照明效果,確定所選著色點(diǎn)的顏色值,其中,照明效果可包括遮擋的陰影效果。

在另一總體的方面,一種非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可存儲(chǔ)當(dāng)被處理器執(zhí)行時(shí)使得處理器執(zhí)行這里描述的一個(gè)或更多個(gè)或全部方法的指令。

在另一總體的方面,一種三維(3D)渲染設(shè)備可包括至少一個(gè)處理器,所述至少一個(gè)處理器被配置為:確定3D場景中將被執(zhí)行著色的所選著色點(diǎn);對(duì)所確定的著色點(diǎn)執(zhí)行著色;并基于對(duì)所確定的著色點(diǎn)執(zhí)行著色的結(jié)果來確定3D場景的著色信息。

所述設(shè)備還可包括:至少一個(gè)存儲(chǔ)器,存儲(chǔ)用于使所述至少一個(gè)處理器實(shí)施以下操作的計(jì)算機(jī)可讀指令:確定3D場景中將被執(zhí)行著色的所選著色點(diǎn)的操作、對(duì)所確定的著色點(diǎn)執(zhí)行著色的操作以及基于對(duì)所確定的著色點(diǎn)執(zhí)行著色的結(jié)果來確定三維場景的著色信息的操作,其中,所述至少一個(gè)處理器被配置為執(zhí)行指令。

處理器可被配置為執(zhí)行指令,使得處理器還被配置為:基于當(dāng)前頂點(diǎn)與屏幕之間的距離以及當(dāng)前頂點(diǎn)是否位于陰影區(qū)域內(nèi)中的至少一項(xiàng),確定是否在后續(xù)圖像幀中更新當(dāng)前頂點(diǎn)的著色值。

確定3D場景中將被執(zhí)行著色的所選著色點(diǎn)的操作可包括:在不對(duì)與均被執(zhí)行著色以確定它們各自的著色值的所確定的著色點(diǎn)和另一非頂點(diǎn)著色點(diǎn)鄰近的至少一個(gè)頂點(diǎn)執(zhí)行著色的情況下,通過對(duì)所述各自的著色值中的著色值進(jìn)行插值,確定所述至少一個(gè)頂點(diǎn)的著色值。

確定3D場景中將被執(zhí)行著色的所選著色點(diǎn)的操作可包括;將3D場景中的頂點(diǎn)分組成頂點(diǎn)組,并基于著色級(jí)別,針對(duì)每個(gè)頂點(diǎn)組確定至少一個(gè)著色點(diǎn)。

在另一總體的方面,一種三維(3D)渲染設(shè)備可包括:圖形管線,包括頂點(diǎn)著色器和像素著色器;著色點(diǎn)著色器,被配置為:確定3D場景中將被執(zhí)行著色的所選著色點(diǎn),對(duì)所確定的著色點(diǎn)執(zhí)行著色,并基于對(duì)所確定的著色點(diǎn)執(zhí)行著色的結(jié)果來確定3D場景的著色信息。

著色點(diǎn)著色器可將著色信息存儲(chǔ)在紋理緩沖器中,像素著色器可基于存儲(chǔ)在紋理緩沖器中的著色信息產(chǎn)生像素顏色信息以渲染圖像。

著色點(diǎn)著色器可從3D場景的由頂點(diǎn)著色器針對(duì)著色點(diǎn)著色器所識(shí)別的頂點(diǎn)之中確定所選著色點(diǎn)。

通過下面的具體實(shí)施方式、附圖和權(quán)利要求書,其他特征和方面將是清楚的。

附圖說明

圖1是示出用于解釋一個(gè)或更多個(gè)實(shí)施例的三維(3D)場景和3D場景中的頂點(diǎn)結(jié)構(gòu)的示例的示圖。

圖2是示出3D渲染方法的示例的流程圖。

圖3是示出確定著色點(diǎn)的方法的示例的流程圖。

圖4是示出確定著色點(diǎn)的示例的示圖。

圖5是示出基于著色級(jí)別來確定著色點(diǎn)的示例的示圖。

圖6是示出基于對(duì)著色點(diǎn)執(zhí)行著色的結(jié)果來確定頂點(diǎn)的著色值的示例的示圖。

圖7是示出基于著色點(diǎn)的著色值確定渲染后的圖像的像素值的示例的示圖。

圖8A和圖8B是示出直接光源與間接光源之間的關(guān)系的示例的示圖。

圖9是示出3D渲染設(shè)備的示例的示圖。

圖10A和圖10B是示出3D渲染設(shè)備的的示例的示圖。

貫穿附圖和具體實(shí)施方式,相同的附圖參考標(biāo)記表示相同或相似的元件。附圖可不按比例,并且為了清楚、說明和方便,附圖中的元件的相對(duì)大小、比例和描述可被夸大。

具體實(shí)施方式

提供以下具體描述以幫助讀者獲得對(duì)這里描述的方法、設(shè)備和/或系統(tǒng)的全面理解。然而,在理解本申請(qǐng)的公開之后,這里描述的方法、設(shè)備和/或系統(tǒng)的各種變形、修改和等同形式將是顯而易見的。例如,這里描述的操作順序僅僅是示例,并不限于這里闡述的這些,而是除了必須以特定順序發(fā)生的操作以外,可如在理解本申請(qǐng)的公開之后將顯而易見的那樣被改變。此外,為了更加清楚和簡明起見,對(duì)本領(lǐng)域已知的功能的描述可被省略。

這里描述的特征可以以不同的形式實(shí)現(xiàn),并且不被解釋為受限于這里所描述的示例。相反,已經(jīng)提供了這里描述的示例僅為了示出在理解本申請(qǐng)的公開之后將顯而易見的實(shí)施這里描述的方法、設(shè)備和/或系統(tǒng)的多種可行方式中的一些方式。

這里使用的術(shù)語僅是用于描述特定示例的目的,而不是用于限制本公開。如這里所使用,除非上下文明確地另有指示,否則單數(shù)形式也意圖包括復(fù)數(shù)形式。如這里所使用,術(shù)語“和/或”包括相關(guān)列出項(xiàng)中的任意一項(xiàng)或任意兩項(xiàng)或更多項(xiàng)的任意組合。如這里所使用,術(shù)語“包括”、“包含”和“具有”表明描述的特征、數(shù)字、操作、元件、組件和/或其組合的存在,但不排除一個(gè)或更多個(gè)其他特征、數(shù)字、操作、元件、組件和/或其組合的存在或添加。

此外,諸如第一、第二、A、B、(a)和(b)等的術(shù)語可在這里用來描述組件。這些術(shù)語中的每一個(gè)術(shù)語不用于定義相應(yīng)組件的本質(zhì)、順序或次序,而是僅用于將相應(yīng)組件與其他組件區(qū)分開。

這里描述的示例的特征可如在理解本申請(qǐng)的公開之后將顯而易見的那樣以各種方式進(jìn)行組合。此外,雖然這里描述的示例具有各種各樣的配置,但是其他配置如在理解本申請(qǐng)的公開之后將顯而易見的那樣是可能的。

可應(yīng)用以下將進(jìn)行描述的示例,以通過使用相應(yīng)配置的一個(gè)或更多個(gè)處理器渲染(即,渲染處理)三維(3D)場景來從3D信息(諸如虛擬對(duì)象或捕獲的真實(shí)世界的對(duì)象)產(chǎn)生、創(chuàng)建或轉(zhuǎn)換渲染后的圖像或渲染后的圖像的信息。3D場景的渲染可包括基于從向3D場景提供照明效果的虛擬光源輻射的光來確定3D對(duì)象的顏色的著色(shading)處理。

圖1是示出3D場景110和3D場景110的頂點(diǎn)結(jié)構(gòu)140的示例的示圖。

在基于頂點(diǎn)的光著色中,僅作為示例,當(dāng)例如按照頂點(diǎn)級(jí)別對(duì)3D對(duì)象的頂點(diǎn)執(zhí)行著色時(shí),可通過在執(zhí)行著色之后對(duì)頂點(diǎn)的著色值進(jìn)行插值來隨后確定3D對(duì)象的像素的顏色值。僅作為示例,一個(gè)或更多個(gè)實(shí)施例的圖形管線可包括頂點(diǎn)著色器(例如,在圖形管線中的可選光柵化器前面),所述頂點(diǎn)著色器被配置為對(duì)或?yàn)?D對(duì)象的頂點(diǎn)或頂點(diǎn)信息執(zhí)行數(shù)學(xué)運(yùn)算,并還可例如用于按照頂點(diǎn)級(jí)別向最終渲染的3D對(duì)象提供特殊效果。3D圖形信息可被頂點(diǎn)著色器獲得或被提供給頂點(diǎn)著色器,頂點(diǎn)著色器可被配置為產(chǎn)生或確定頂點(diǎn),或者頂點(diǎn)信息中的一些或全部頂點(diǎn)信息可被頂點(diǎn)著色器獲得/被提供給頂點(diǎn)著色器。圖形管線還可包括被配置為計(jì)算每個(gè)像素(例如,諸如由這樣的光柵化器產(chǎn)生、識(shí)別或輸出的像素或從3D對(duì)象的頂點(diǎn)信息識(shí)別/確定的像素)的顏色的像素著色器。圖形管線可以是處理器或硬件處理元件或者處理器或硬件處理元件的組合。此外,根據(jù)實(shí)施例,可能存在可同步和/或異步運(yùn)行的許多圖形管線。圖形管線中的一些或全部圖形管線還可被并行地配置。

頂點(diǎn)著色器可被配置為基于頂點(diǎn)信息執(zhí)行例如按照頂點(diǎn)級(jí)別將3D對(duì)象的位置改變到諸如歸一化空間的空間中的特殊位置中的操作。通常,頂點(diǎn)著色器可被配置為執(zhí)行一個(gè)或更多個(gè)另外的計(jì)算操作(諸如,添加和/或改變3D對(duì)象的紋理或顏色,或者針對(duì)按照頂點(diǎn)級(jí)別進(jìn)行光著色的選擇性的照明計(jì)算)。同樣,通常像素著色器可被配置為基于圖形管線中的先前運(yùn)算的結(jié)果,實(shí)現(xiàn)例如按照像素級(jí)別從設(shè)置或確定的紋理讀取顏色的一個(gè)或更多個(gè)復(fù)雜運(yùn)算,以最終計(jì)算場景、幀、地區(qū)、區(qū)域、對(duì)象或?qū)ο蟛糠种械拿總€(gè)像素的顏色。例如,典型像素著色器還可被配置為從定義的光源選擇性地施加光,并對(duì)陰影、反射光或透明度進(jìn)行處理,以最終計(jì)算每個(gè)像素的顏色。此外,根據(jù)實(shí)施例,圖形管線還可包括光柵化器,或者相同的操作可通過圖形管線的另一著色器階段或者頂點(diǎn)著色器或像素著色器二者擇一來實(shí)現(xiàn)。光柵化是指計(jì)算機(jī)或計(jì)算技術(shù)中的表示圖像信息的類型或方式,并可包括產(chǎn)生和/或輸出例如以預(yù)設(shè)間隔組織或排序的二維布置的像素。作為示例,可對(duì)3D圖形信息執(zhí)行光柵化以產(chǎn)生或輸出這樣的像素,使得隨后能夠按照像素級(jí)別執(zhí)行另外的操作,其中,3D圖形信息可能不是像素格式的。在一個(gè)或更多個(gè)實(shí)施例中,圖形管線中的光柵化器可對(duì)因由例如至少一個(gè)頂點(diǎn)著色器所執(zhí)行的操作而產(chǎn)生的頂點(diǎn)信息或頂點(diǎn)執(zhí)行光柵化。僅作為非限制性的示例,圖9示出示例頂點(diǎn)著色器910和像素著色器920。

針對(duì)典型頂點(diǎn)著色器,由頂點(diǎn)著色器產(chǎn)生的頂點(diǎn)結(jié)構(gòu)的復(fù)雜度可得自于原始或輸入的3D圖形信息的每個(gè)區(qū)域的幾何復(fù)雜度,所以當(dāng)通常由頂點(diǎn)著色器執(zhí)行光著色或按照頂點(diǎn)級(jí)別執(zhí)行光著色時(shí),所得著色復(fù)雜度可因著色的復(fù)雜度或因是否施加了特殊效果(例如,鏡面反射和漫反射)而產(chǎn)生。因此,在這樣的典型的基于頂點(diǎn)的著色或按照頂點(diǎn)級(jí)別執(zhí)行的光著色中,圖1的3D場景110中的每個(gè)區(qū)域的幾何復(fù)雜度可不對(duì)應(yīng)于著色復(fù)雜度。例如,當(dāng)執(zhí)行這樣的典型的基于頂點(diǎn)的著色時(shí),盡管需要或期望高著色復(fù)雜度(諸如基于典型發(fā)光效果的數(shù)量或位置),但由于所得頂點(diǎn)的數(shù)量因低幾何復(fù)雜度而較少,因此圖像質(zhì)量可能在區(qū)域120中發(fā)生劣化。這可被稱為作為結(jié)果的頂點(diǎn)復(fù)雜度方面的欠采樣。可選擇地,在頂點(diǎn)的數(shù)量因高幾何復(fù)雜度而較大且需要或期望低著色復(fù)雜度的區(qū)域130中,典型的另外的每個(gè)頂點(diǎn)著色操作可能是不必要的。這可被稱為作為結(jié)果的頂點(diǎn)復(fù)雜度方面的過采樣。這還與當(dāng)由典型像素著色器執(zhí)行典型著色操作時(shí)的情況類似,其中,在該情況下,由于可按照像素級(jí)別執(zhí)行著色,因此可能存在不必要數(shù)量的被執(zhí)行的典型著色操。這里,僅作為示例,不必要術(shù)語可表示被典型執(zhí)行的下述一些操作或處理量:如果所述一些操作或處理量未被執(zhí)行,則整體處理能夠耗費(fèi)更少的時(shí)間或更少的處理功率,能夠使用更少的能量消耗而被執(zhí)行,或者能夠?qū)崿F(xiàn)整體增加的渲染幀率。

一個(gè)或更多個(gè)實(shí)施例包括3D渲染方法和設(shè)備,所述3D渲染方法和設(shè)備可基于3D場景110的空間特征或時(shí)間特征適應(yīng)性地確定將被執(zhí)行著色的所選著色采樣點(diǎn)(也被稱為著色點(diǎn)),并對(duì)確定的著色采樣點(diǎn)執(zhí)行著色以在不降低渲染后的圖像的質(zhì)量的情況下促使更快的著色(諸如,具有使上述過采樣和欠采樣最小化的自適應(yīng)能力)。例如,在頂點(diǎn)的數(shù)量與著色復(fù)雜度相比較大的區(qū)域(例如,區(qū)域130)中,3D渲染方法和/或設(shè)備的一個(gè)或更多個(gè)實(shí)施例可降低或選擇降低著色采樣點(diǎn)的密度,以例如與典型地針對(duì)每個(gè)頂點(diǎn)執(zhí)行著色相比降低執(zhí)行著色的次數(shù),并由此提高渲染處理的速度。此外,在頂點(diǎn)的數(shù)量與著色復(fù)雜度相比較低的區(qū)域(例如,區(qū)域120)中,3D渲染方法和/或設(shè)備的一個(gè)或更多個(gè)實(shí)施例可增加或選擇增加著色采樣點(diǎn)的密度,以例如與典型地僅針對(duì)每個(gè)頂點(diǎn)執(zhí)行著色相比增加執(zhí)行著色的次數(shù),并由此提高渲染處理的圖像質(zhì)量。

如上面所提到的,可與圖形管線結(jié)合(諸如,與任意的著色器處理器結(jié)合)例如作為單個(gè)處理器,或作為分開的自適應(yīng)著色器處理元件或處理器,來執(zhí)行自適應(yīng)著色。在示例中,諸如圖9中所示出的,可通過作為與一個(gè)或更多個(gè)圖形管線并行的另一處理器或處理元件的一個(gè)或更多個(gè)著色點(diǎn)著色器來執(zhí)行自適應(yīng)著色。在示例中,圖9的一個(gè)或更多個(gè)著色點(diǎn)著色器930和/或圖形管線可被配置為單個(gè)處理器、具有多個(gè)核的單個(gè)處理器或可被可變地設(shè)計(jì)為包括著色點(diǎn)著色器930和圖形管線的這樣的處理元件的一個(gè)或更多個(gè)這樣的處理器。關(guān)于圖9,一個(gè)或更多個(gè)頂點(diǎn)著色器910和/或一個(gè)或更多個(gè)像素著色器920可如上所述被配置并與著色點(diǎn)著色器930的自適應(yīng)光著色相協(xié)作地分別進(jìn)行操作。在示例中,一個(gè)或更多個(gè)頂點(diǎn)著色器910和/或一個(gè)或更多個(gè)像素著色器920可被配置或通過例如固件而被控制以如這里所描述的與一個(gè)或更多個(gè)相應(yīng)著色點(diǎn)著色器930相協(xié)作地進(jìn)行操作。

例如,正如下面將進(jìn)一步更詳細(xì)地解釋的那樣,當(dāng)著色復(fù)雜度使得例如在頂點(diǎn)中的一個(gè)或更多個(gè)頂點(diǎn)或全部頂點(diǎn)被用作著色采樣點(diǎn)的情況下需要或期望比頂點(diǎn)更多的著色采樣點(diǎn),或者在頂點(diǎn)中的一個(gè)或更多個(gè)頂點(diǎn)之間的區(qū)域中或頂點(diǎn)中的一個(gè)或更多個(gè)頂點(diǎn)附近的區(qū)域中期望更多的著色采樣點(diǎn)時(shí),例如,所述一個(gè)或更多個(gè)著色點(diǎn)著色器930可確定頂點(diǎn)之間或除頂點(diǎn)以外的另外著色采樣點(diǎn),從而單獨(dú)或者結(jié)合全部或所選頂點(diǎn)著色采樣點(diǎn)使用以執(zhí)行光著色。這里,這樣的示例需要或期望相同、更多還是更少的著色復(fù)雜度可基于3D場景的所確定的空間特征和/或所確定的時(shí)間特征,或幀內(nèi)或幀之間的相應(yīng)比較,因而場景、幀、地區(qū)、區(qū)域、對(duì)象或?qū)ο蟛糠值匿秩究杀蛔赃m應(yīng)執(zhí)行以促進(jìn)更有效的渲染(諸如,與前述僅典型頂點(diǎn)著色器或僅典型像素著色器著色方法相比,在不降低渲染后的圖像的質(zhì)量的情況下渲染更快)。

雖然上面已經(jīng)討論了特定實(shí)施例或示例,但是應(yīng)充分主張這樣的實(shí)施例或示例僅為了示例目的,并不意圖限制本公開,另外和/或可選實(shí)施例也是可用的。

圖2是示出3D渲染方法的示例的流程圖。3D渲染方法可由3D渲染設(shè)備(例如,圖9中示出的3D渲染設(shè)備900以及圖10A和圖10B中示出的3D渲染設(shè)備1010和3D渲染設(shè)備1015)執(zhí)行,注意實(shí)施例不限于此。因此。下面雖然將通過參照各個(gè)3D渲染設(shè)備對(duì)圖2的方法以及圖3至圖8B的各個(gè)方法進(jìn)行解釋,但是實(shí)施例可包括(但不限于)這里描述的3D渲染設(shè)備中的任意設(shè)備或任意組合。

參照?qǐng)D2,在操作210中,3D渲染設(shè)備確定3D場景中將被執(zhí)行著色的著色點(diǎn)(即,上述著色采樣點(diǎn))。3D渲染設(shè)備可將3D場景中的任意點(diǎn)確定為著色點(diǎn)。例如,3D渲染設(shè)備可將3D場景中的3D對(duì)象的頂點(diǎn)所位于的點(diǎn)還有頂點(diǎn)所不位于的點(diǎn)確定為將被執(zhí)行著色的著色點(diǎn)。著色點(diǎn)可基于3D場景的空間特征和時(shí)間特征中的至少一個(gè)來確定。將被執(zhí)行著色的點(diǎn)可基于3D場景的空間特征或時(shí)間特征而變化。例如,在一些地區(qū)或區(qū)域中,著色點(diǎn)可被確定為僅與諸如由頂點(diǎn)著色器在當(dāng)前幀或先前幀中預(yù)定義或確定的相應(yīng)頂點(diǎn)中的一個(gè)或更多個(gè)頂點(diǎn)或者全部頂點(diǎn)對(duì)應(yīng),著色點(diǎn)可被確定為與另外的非頂點(diǎn)著色點(diǎn)和頂點(diǎn)中的一些或全部對(duì)應(yīng),或者著色點(diǎn)可被確定為僅與另外的非頂點(diǎn)著色點(diǎn)對(duì)應(yīng)。

3D渲染設(shè)備可基于例如與被配置為提供照明效果的一個(gè)或更多個(gè)虛擬光源關(guān)聯(lián)的信息、與被配置為確定觀看3D對(duì)象的各個(gè)視點(diǎn)的一個(gè)或更多個(gè)虛擬相機(jī)關(guān)聯(lián)的信息、與3D場景中的3D對(duì)象關(guān)聯(lián)的信息以及先前圖像幀的著色信息來確定這樣的著色點(diǎn)。例如,與虛擬光源關(guān)聯(lián)的這樣的信息可包括與例如虛擬光源的位置、顏色、方向和移動(dòng)速度、虛擬光源與3D場景中的3D對(duì)象之間的距離以及在虛擬光源與3D對(duì)象之間形成的角度相關(guān)的信息。例如,與虛擬相機(jī)關(guān)聯(lián)的這樣的信息可包括與例如虛擬相機(jī)的位置、方向和移動(dòng)速度以及在虛擬相機(jī)與3D場景中的3D對(duì)象之間形成的角度相關(guān)的信息。例如,與3D對(duì)象關(guān)聯(lián)的這樣的信息可包括與例如3D對(duì)象的形狀、顏色和材料相關(guān)的信息,并且先前圖像幀的這樣的著色信息可包括先前圖像幀中使用的頂點(diǎn)的著色值。

在示例中,3D渲染設(shè)備可將頂點(diǎn)分組成多個(gè)頂點(diǎn)組,并針對(duì)將被分別執(zhí)行著色的每個(gè)頂點(diǎn)組確定一個(gè)或更多個(gè)著色點(diǎn)。例如,所述方法可包括:基于3D場景的空間特征或時(shí)間特征確定當(dāng)前場景、幀、地區(qū)、區(qū)域、對(duì)象、對(duì)象部分或相應(yīng)頂點(diǎn)組的著色復(fù)雜度。確定著色復(fù)雜度的步驟可包括:對(duì)這樣的場景、幀、地區(qū)、區(qū)域、對(duì)象、對(duì)象部分或相應(yīng)頂點(diǎn)組內(nèi)和/或之間的空間特征和/或時(shí)間特征進(jìn)行比較,以確定是期望細(xì)著色還是粗著色,或者是期望較大的著色復(fù)雜度還是較小的著色復(fù)雜度。例如,當(dāng)確定期望細(xì)著色時(shí),例如,除了包括在相應(yīng)頂點(diǎn)組中的頂點(diǎn)之外,3D渲染設(shè)備還可通過將3D場景中的另外的著色點(diǎn)另外確定為著色點(diǎn)來增加將被執(zhí)行著色的著色點(diǎn)的數(shù)量。當(dāng)確定期望粗著色或較小的著色復(fù)雜度時(shí),無論著色點(diǎn)是否是頂點(diǎn),3D渲染設(shè)備都可將包括在相應(yīng)頂點(diǎn)組中的頂點(diǎn)之中的僅僅一個(gè)或僅僅一些頂點(diǎn)或者3D場景中的至少一個(gè)著色點(diǎn)確定為著色點(diǎn)。當(dāng)被確定為必要的或所期望的時(shí),除3D場景中的3D對(duì)象的例如相應(yīng)頂點(diǎn)組的頂點(diǎn)之中的一些頂點(diǎn)之外,3D渲染設(shè)備還可將3D場景中的非頂點(diǎn)點(diǎn)確定為著色點(diǎn)。因此,例如,在無需如通過典型頂點(diǎn)著色器光著色方法或典型像素著色器光著色方法會(huì)分別執(zhí)行的那樣對(duì)3D場景中的3D對(duì)象的全部頂點(diǎn)或像素執(zhí)行著色的情況下,3D渲染設(shè)備可通過基于3D場景的空間特征或時(shí)間特征確定著色點(diǎn)來更加有效地執(zhí)行著色。將參照?qǐng)D3提供對(duì)通過3D渲染設(shè)備確定著色點(diǎn)的更加詳細(xì)的描述。

在操作220中,例如,在已經(jīng)確定了著色點(diǎn)之后,3D渲染設(shè)備對(duì)確定的著色點(diǎn)執(zhí)行著色。3D渲染設(shè)備可通過對(duì)著色點(diǎn)執(zhí)行著色來確定作為著色點(diǎn)的著色值的著色點(diǎn)的顏色值。例如,著色可基于至少一個(gè)虛擬光源的照明效果。照明效果可基于從虛擬光源發(fā)出的光的特征(例如,光的顏色和方向)和3D場景中的3D對(duì)象的特征(例如,3D對(duì)象的顏色和材料),并可包括遮擋的陰影效果。虛擬光源可包括被配置為直接向3D對(duì)象發(fā)出光的直接光源和被配置為從自直接光源發(fā)出的光被反射、衍射或折射的區(qū)域發(fā)出光的間接光源。

例如,圖8A和圖8B是示出直接光源與間接光源之間的關(guān)系的示例的示圖。直接光源和間接光源是向計(jì)算機(jī)圖形中的3D對(duì)象提供照明效果的虛擬光源。直接光源是被配置為直接向3D對(duì)象發(fā)出光的虛擬光源,間接光源是被配置為從自直接光源發(fā)出的光被反射、衍射或折射的區(qū)域發(fā)出光的虛擬光源。

圖8A示出3D模型中的3D對(duì)象820和3D對(duì)象830以及直接光源810。雖然出于描述的方便而在圖8A中示出單個(gè)直接光源,但是多個(gè)直接光源可出現(xiàn)在3D模型中。參照?qǐng)D8A,直接光源810直接向3D對(duì)象820發(fā)出光?;谥苯庸庠?10與3D對(duì)象820之間的位置關(guān)系,在3D對(duì)象820將被渲染的虛擬空間中確定亮區(qū)域和暗區(qū)域。從直接光源810發(fā)出的光可被3D對(duì)象820反射、衍射或折射。例如,如圖8A中所示,從直接光源810輸出的光840可被3D對(duì)象820反射,并再次被作為另一3D對(duì)象的3D對(duì)象830(例如,包圍3D對(duì)象820的墻)反射??砂凑仗摂M相機(jī)815的視點(diǎn)渲染3D對(duì)象820和3D對(duì)象830,并可將渲染后的圖像提供給用戶。

除從直接光源810輸出的光的直接照明效果之外,3D渲染設(shè)備還可施加從間接光源輸出的光的照明效果,并產(chǎn)生精細(xì)的渲染后的圖像。

在另一實(shí)施例中,3D渲染設(shè)備可通過在3D空間中除布置直接光源之外還布置間接光源來獲得更加逼真的照明效果。

例如,圖8B示出例如位于從直接光源810輸出的光840將被3D對(duì)象820反射的區(qū)域的間接光源855以及例如位于光840將被3D對(duì)象830反射的區(qū)域的間接光源850和間接光源860。在渲染3D對(duì)象820和3D對(duì)象830的操作中,除直接光源810的照明效果之外,間接光源850、間接光源855和間接光源860的照明效果可被施加到3D對(duì)象820和3D對(duì)象830。間接光源850、間接光源855和間接光源860可受直接光源810的影響,并還受間接光源850、間接光源855和間接光源860所位于的區(qū)域的特征的影響。例如,間接光源850、間接光源855和間接光源860的照明效果可受間接光源850、間接光源855和間接光源860中的每一個(gè)所位于的3D對(duì)象的表面的顏色或材料影響。

回到圖2,在操作230中,3D渲染設(shè)備基于操作220中執(zhí)行的著色的結(jié)果確定3D場景的著色信息。3D渲染設(shè)備可使用插值來確定3D場景的整體著色信息。例如,3D渲染設(shè)備可通過對(duì)操作220中確定的著色點(diǎn)的著色值進(jìn)行插值來確定與著色點(diǎn)鄰近的頂點(diǎn)(即,在操作220中未執(zhí)行著色的頂點(diǎn))的著色值。雖然將頂點(diǎn)與一個(gè)或更多個(gè)著色點(diǎn)中的每個(gè)著色點(diǎn)之間的距離應(yīng)用作為權(quán)值并執(zhí)行插值的重心插值(barycentric interpolation)可在這里被使用,但是插值不限于這樣的重心插值,而且各種類型的插值可被使用。

如上所述,3D渲染設(shè)備可存儲(chǔ)所確定的操作220中被執(zhí)行著色的著色點(diǎn)的著色值,并存儲(chǔ)通過操作230中的插值確定的頂點(diǎn)的著色值。著色點(diǎn)的著色值和頂點(diǎn)的著色值可被分別存儲(chǔ)在例如一個(gè)或更多個(gè)實(shí)施例的圖形處理器(GPU)的紋理緩沖器中,并且存儲(chǔ)的著色值可用于對(duì)后續(xù)圖像幀執(zhí)行的著色以及用于針對(duì)后續(xù)管線操作確定像素的顏色值。此外,著色點(diǎn)和頂點(diǎn)的位置和屬性可被存儲(chǔ)在紋理緩沖器中。使用存儲(chǔ)的著色值,3D渲染設(shè)備可減少用于著色操作的計(jì)算量或運(yùn)算量并減少閃爍的發(fā)生。在一個(gè)或更多個(gè)實(shí)施例中,作為非限制性的示例,GPU可由圖9的頂點(diǎn)著色器910和/或像素著色器920以及著色點(diǎn)著色器930中的一個(gè)或更多個(gè)的組合或圖10A或圖10B的處理器1020或處理器1020和存儲(chǔ)器1030的組合表示。這里,還注意到,圖9的頂點(diǎn)著色器910、像素著色器920和著色點(diǎn)著色器930中的每一個(gè)可分別或共同包括用于存儲(chǔ)或緩存操作之間的信息的存儲(chǔ)器(即,高速緩沖存儲(chǔ)器),CPU還可包括或訪問可存儲(chǔ)例如針對(duì)不同場景、幀或?qū)ο蟮挠糜趫D形處理并由GPU的圖形管線輸出的多種3D圖形信息的外部存儲(chǔ)器。

在示例中,3D渲染設(shè)備可自適應(yīng)地或選擇性地更新3D場景的連續(xù)圖像幀中的頂點(diǎn)的著色值。因此,圖像幀中的相應(yīng)頂點(diǎn)的著色值可根據(jù)不同的時(shí)間間隔來更新。著色值的更新可包括通過執(zhí)行著色來確定頂點(diǎn)的著色值。例如,3D渲染設(shè)備可通過對(duì)每個(gè)圖像幀執(zhí)行著色來更新靠近屏幕的頂點(diǎn)(例如,具有表示更加顯著或明顯的頂點(diǎn)的較小的深度或靠近的位置)的顏色值,并按照預(yù)設(shè)數(shù)量的圖像幀的間隔更新距屏幕遠(yuǎn)或陰影區(qū)域中出現(xiàn)的頂點(diǎn)(例如,具有表示不太顯著或明顯的頂點(diǎn)的遠(yuǎn)處位置或陰影區(qū)域位置)的顏色值,而不是針對(duì)每個(gè)圖像幀更新顏色值。按這種方式,與為了圖像質(zhì)量的目的而不管頂點(diǎn)的顯著度或明顯度將同時(shí)更新所有頂點(diǎn)的著色信息的典型頂點(diǎn)級(jí)別著色方法相比,通過觀察而可能更加顯著或明顯的頂點(diǎn)的著色值可比不太顯著或明顯的頂點(diǎn)的著色值被更頻繁地更新。

3D渲染方法還可基于3D場景的著色信息產(chǎn)生渲染后的圖像。3D渲染設(shè)備可基于著色點(diǎn)的著色值和通過插值確定的頂點(diǎn)中的任意一個(gè)頂點(diǎn)的著色值來確定包括在渲染后的圖像中的像素的顏色值。例如,3D渲染設(shè)備的著色點(diǎn)著色器或像素著色器可通過對(duì)一個(gè)或更多個(gè)著色點(diǎn)的著色值以及與正被渲染的特定像素鄰近的一個(gè)或更多個(gè)頂點(diǎn)的著色值進(jìn)行插值來確定當(dāng)前像素的像素值??蓪?duì)包括在渲染后的圖像中的每個(gè)像素重復(fù)地執(zhí)行這樣的插值,并可通過重復(fù)執(zhí)行插值來產(chǎn)生渲染后的圖像。在像素著色器為顏色值確定而執(zhí)行插值的示例中,由著色點(diǎn)著色器存儲(chǔ)到僅作為示例的紋理緩沖器中的著色值可被像素著色器訪問或被提供給像素著色器,或者所述著色值可在沒有存儲(chǔ)在這樣的紋理緩沖器中的情況下直接由著色點(diǎn)著色器提供。

圖3是示出確定著色點(diǎn)的方法的示例的流程圖。

參照?qǐng)D3,在操作310中,3D渲染設(shè)備可將3D場景中的頂點(diǎn)分組成多個(gè)頂點(diǎn)組。3D渲染設(shè)備可基于頂點(diǎn)各自的位置和屬性(例如,僅作為示例,基于頂點(diǎn)的法線和顏色,基于對(duì)先前圖像幀執(zhí)行的相應(yīng)著色的結(jié)果或基于頂點(diǎn)是否包括在同一3D對(duì)象中)將頂點(diǎn)分組成頂點(diǎn)組。作為示例,3D渲染設(shè)備可將頂點(diǎn)之中被估計(jì)為具有相似屬性的頂點(diǎn)設(shè)置為頂點(diǎn)組。

在示例中,3D渲染設(shè)備可將位置彼此鄰近并具有相似屬性(例如,法線、深度和顏色)的頂點(diǎn)分組到同一頂點(diǎn)組。3D渲染設(shè)備可基于初步的估計(jì)或?qū)ο惹皥D像幀執(zhí)行的著色的結(jié)果來確定被估計(jì)為具有相似屬性的頂點(diǎn)。例如,3D渲染設(shè)備可將先前圖像幀中具有相似顏色的頂點(diǎn)分組成當(dāng)前幀的同一頂點(diǎn)組。

在另一示例中,3D渲染設(shè)備可將包括在相同3D對(duì)象中的頂點(diǎn)或具有相似形狀特征的頂點(diǎn)分組成相同的頂點(diǎn)組。在又另一示例中,3D渲染設(shè)備可基于頂點(diǎn)的顏色隨時(shí)間(例如,在幀之間)的變化將顏色隨時(shí)間(例如,在幀之間)變?yōu)楸舜讼嗨频捻旤c(diǎn)分組成相同的頂點(diǎn)組,而不管彼此之間的空間分離。

3D渲染設(shè)備可針對(duì)每個(gè)頂點(diǎn)組確定與一個(gè)或更多個(gè)著色點(diǎn)關(guān)聯(lián)的層次結(jié)構(gòu)信息。層次結(jié)構(gòu)信息可基于將在操作320中被確定的著色級(jí)別來定義將被執(zhí)行著色的著色點(diǎn)的層次結(jié)構(gòu)。例如,層次結(jié)構(gòu)信息可以是將頂點(diǎn)組的頂點(diǎn)組織成一個(gè)或更多個(gè)不同的級(jí)別,其中,所述一個(gè)或更多個(gè)不同的級(jí)別基于確定的著色級(jí)別分別限定哪個(gè)頂點(diǎn)或非頂點(diǎn)點(diǎn)被確定為著色點(diǎn)或者頂點(diǎn)或非頂點(diǎn)點(diǎn)是否被確定為著色點(diǎn)。在實(shí)施例中,還可將層次結(jié)構(gòu)信息視為樹結(jié)構(gòu),例如,在所述樹結(jié)構(gòu)中,根據(jù)頂點(diǎn)被布置在樹結(jié)構(gòu)的哪個(gè)級(jí)別,可針對(duì)頂點(diǎn)和/或可能的一個(gè)或更多個(gè)非頂點(diǎn)著色點(diǎn)中的一個(gè)或更多個(gè)的最終著色確定著色采樣。因此,在下面,當(dāng)討論著色級(jí)別時(shí),正如低級(jí)別被理解為包括比另一級(jí)別更多的著色點(diǎn)的那樣,可理解高級(jí)別表示包括比另一級(jí)別更少的著色點(diǎn)的頂點(diǎn)著色點(diǎn)和/或非頂點(diǎn)著色點(diǎn)的著色采樣/集合。例如,當(dāng)著色級(jí)別被調(diào)高時(shí),頂點(diǎn)組中將確定的著色點(diǎn)的數(shù)量會(huì)減少。當(dāng)著色級(jí)別被調(diào)低時(shí),頂點(diǎn)組中將確定的著色點(diǎn)的數(shù)量會(huì)增加。作為供替代的選擇,一些高級(jí)別和低級(jí)別可表示采樣點(diǎn)的整體數(shù)量相同,但被確定為著色點(diǎn)的頂點(diǎn)的數(shù)量分別更少或更多,或者采樣點(diǎn)的整體數(shù)量相同但非頂點(diǎn)著色點(diǎn)的數(shù)量分別更少或更多。

在操作320中,3D渲染設(shè)備基于與著色點(diǎn)關(guān)聯(lián)的層次結(jié)構(gòu)信息針對(duì)每個(gè)頂點(diǎn)組確定著色級(jí)別。將被執(zhí)行著色的頂點(diǎn)組中的至少一個(gè)著色點(diǎn)可基于著色級(jí)別來確定。這里,包括在頂點(diǎn)組中的頂點(diǎn)中的一些頂點(diǎn)可被確定為著色點(diǎn),或者3D場景中不是頂點(diǎn)所位于的點(diǎn)的另一點(diǎn)可被確定為示例非頂點(diǎn)著色點(diǎn)。

3D渲染設(shè)備可基于所分析出的3D場景的時(shí)間特征(例如,虛擬光源、虛擬相機(jī)和3D對(duì)象基于時(shí)間的移動(dòng))或所分析出的3D場景的空間特征(例如,頂點(diǎn)的位置和相鄰頂點(diǎn)之間的亮度差)確定著色級(jí)別或著色級(jí)別的變化。這里,基于3D場景的時(shí)間特征和/或空間特征分析,可針對(duì)頂點(diǎn)組確定不同的著色級(jí)別,或可針對(duì)頂點(diǎn)組確定轉(zhuǎn)換到更高級(jí)別或更低級(jí)別的期望。

在時(shí)域中,當(dāng)虛擬光源、虛擬相機(jī)或3D對(duì)象的移動(dòng)速度大于各自的閾值時(shí),3D渲染設(shè)備可將著色級(jí)別調(diào)高以例如減少著色點(diǎn)的數(shù)量。因此,用于根據(jù)典型著色級(jí)別執(zhí)行著色所將花費(fèi)的時(shí)間量可被減少。當(dāng)選擇、需要或確定期望快速的渲染處理時(shí),3D渲染設(shè)備可將整體著色級(jí)別調(diào)高。相反地,當(dāng)虛擬光源、虛擬相機(jī)或3D對(duì)象的移動(dòng)速度小于這樣的閾值時(shí),3D渲染設(shè)備可為了更精細(xì)的表達(dá)而將著色級(jí)別調(diào)低以例如增加著色點(diǎn)的數(shù)量。這里,這樣的各自的移動(dòng)速度閾值可相同或不同,并可隨著移動(dòng)速度不同而線性或非線性地改變。

可基于3D場景的時(shí)間特征來自適應(yīng)地確定著色級(jí)別。例如,當(dāng)虛擬相機(jī)或3D對(duì)象的移動(dòng)速度較高時(shí)(例如,諸如在虛擬相機(jī)或3D對(duì)象被確定為與在先前幀之間相比在最新幀之間已經(jīng)移動(dòng)了更大的量的情況下),著色級(jí)別可被調(diào)高。相反地,當(dāng)虛擬相機(jī)或3D對(duì)象的移動(dòng)速度較低時(shí),著色級(jí)別可被調(diào)低。

3D渲染設(shè)備可使用先前圖像幀的顏色信息估計(jì)每個(gè)區(qū)域基于時(shí)間的亮度變化,并將亮度變化大的區(qū)域的著色級(jí)別調(diào)低且將亮度變化小的區(qū)域的著色級(jí)別調(diào)高。為了識(shí)別將著色級(jí)別調(diào)低或調(diào)高的充分度,所確定的亮度變化可與各自的可相同或不同并可隨著亮度級(jí)別不同而線性或非線性地改變的較低/較高的亮度變化閾值進(jìn)行比較。

當(dāng)頂點(diǎn)在空間域中位于屏幕的所確定的中心區(qū)域中或所確定的或用戶選擇的感興趣區(qū)域(ROI),或者當(dāng)相鄰頂點(diǎn)之間的亮度變化被確定為大時(shí),3D渲染設(shè)備可為了更精細(xì)的表達(dá)而將著色級(jí)別調(diào)低。相反,當(dāng)頂點(diǎn)被確定為位于屏幕的外圍,或相鄰頂點(diǎn)之間的亮度變化被確定為小時(shí),3D渲染設(shè)備可例如為了減少著色點(diǎn)的數(shù)量而將著色級(jí)別調(diào)高,并提高渲染處理的速度。這里,例如,在對(duì)當(dāng)前幀中的相鄰頂點(diǎn)執(zhí)行著色之前,3D渲染設(shè)備可使用先前圖像幀的著色信息估計(jì)當(dāng)前幀中的相鄰頂點(diǎn)之間的亮度差。

3D渲染設(shè)備還可針對(duì)例如自動(dòng)地或基于用戶交互或選擇而被確定或設(shè)置為聚焦的區(qū)域以及其余區(qū)域設(shè)置不同的著色級(jí)別,或者針對(duì)模糊效果被自動(dòng)設(shè)置或被用戶設(shè)置為應(yīng)用到的區(qū)域以及其余區(qū)域設(shè)置不同的著色級(jí)別。例如,在諸如頭戴式顯示器(HMD)的基于鏡頭的裝置中,通過用戶的眼睛看到的像素的大小和密度可不同。在這樣的示例中,3D渲染設(shè)備可在將被自動(dòng)聚焦的中心區(qū)域或檢測到目光的區(qū)域中將著色點(diǎn)的密度設(shè)置得相對(duì)較高,并針對(duì)包括中心區(qū)域或檢測到目光的區(qū)域的地區(qū)或區(qū)域?qū)⒅?jí)別調(diào)低。在這個(gè)示例中,3D渲染設(shè)備可在除中心區(qū)域或檢測到目光的區(qū)域之外的其余區(qū)域中將密度設(shè)置得相對(duì)低,并針對(duì)其余區(qū)域?qū)⒅?jí)別調(diào)高。

在示例中,3D渲染設(shè)備可例如從最高著色級(jí)別開始確定每個(gè)頂點(diǎn)組的最佳著色級(jí)別,并按照降序貫穿著色級(jí)別向最低著色級(jí)別進(jìn)行,其中,最高著色級(jí)別是最粗的著色級(jí)別。3D渲染設(shè)備可貫穿全部著色級(jí)別進(jìn)行或在到達(dá)最低著色級(jí)別之前在確定的最佳級(jí)別停止。例如,3D渲染設(shè)備可基于與著色點(diǎn)關(guān)聯(lián)的層次結(jié)構(gòu)信息,將基于第一著色級(jí)別執(zhí)行第一著色的結(jié)果與基于第二著色級(jí)別執(zhí)行第二著色的結(jié)果進(jìn)行比較,并可根據(jù)比較的結(jié)果基于第一著色與第二著色之間的著色級(jí)別的差來計(jì)算顏色值的差,其中,第一著色級(jí)別是最高著色級(jí)別,第二著色級(jí)別低于第一著色級(jí)別。由于根據(jù)與著色點(diǎn)關(guān)聯(lián)的層次結(jié)構(gòu)信息,第二著色級(jí)別低于第一著色級(jí)別,所以在第二著色級(jí)別,著色點(diǎn)的數(shù)量可大于在第一著色級(jí)別的著色點(diǎn)的數(shù)量。響應(yīng)于所計(jì)算的顏色值的差小于閾值,3D渲染設(shè)備可將作為當(dāng)前著色級(jí)別的第一著色級(jí)別確定為當(dāng)前頂點(diǎn)組的著色級(jí)別。相反地,響應(yīng)于所計(jì)算的顏色值的差大于或等于閾值,3D渲染設(shè)備可基于第二著色級(jí)別和第三著色級(jí)別計(jì)算顏色值的差,并可確定所計(jì)算的差是否小于閾值,其中,第三著色級(jí)別是低于第二著色級(jí)別的著色級(jí)別。響應(yīng)于所述差小于閾值,3D渲染設(shè)備可將第二著色級(jí)別確定為當(dāng)前頂點(diǎn)組的著色級(jí)別。3D渲染設(shè)備可用更低著色級(jí)別重復(fù)地執(zhí)行所計(jì)算出的顏色值的差的比較處理,直到將顏色值的差變得小于閾值的著色級(jí)別確定為將被應(yīng)用到當(dāng)前頂點(diǎn)組的最終著色級(jí)別為止,或者直到到達(dá)最低著色級(jí)別(在這種情況下,最低著色級(jí)別被設(shè)置為將被應(yīng)用到當(dāng)前頂點(diǎn)組的最終著色級(jí)別)為止。

從最高著色級(jí)別開始確定將被應(yīng)用到頂點(diǎn)組的最佳著色級(jí)別的操作可每當(dāng)圖像幀被渲染時(shí)被執(zhí)行,或可每當(dāng)相機(jī)視點(diǎn)、光源的位置或?qū)ο蟮奈恢酶淖儠r(shí)被執(zhí)行。在另一實(shí)施例中,從最高著色級(jí)別開始確定將被應(yīng)用到頂點(diǎn)組的最佳著色級(jí)別的操作可不每當(dāng)圖像幀被渲染時(shí)執(zhí)行,而可僅在相機(jī)視點(diǎn)、光源的位置或?qū)ο蟮奈恢酶淖儠r(shí)或當(dāng)預(yù)定數(shù)量的幀或時(shí)段已經(jīng)過去時(shí)被執(zhí)行。然而,示例的范圍不限于這里描述的示例。當(dāng)3D渲染設(shè)備確定相機(jī)視點(diǎn)、光源的位置或?qū)ο蟮奈恢玫淖兓谶B續(xù)圖像幀之間不夠大時(shí),針對(duì)當(dāng)前圖像幀確定著色級(jí)別的操作可被省略,并且在先前圖像幀中確定的著色級(jí)別可被應(yīng)用在當(dāng)前幀的著色中。變化的充分性可基于變化是否滿足變化閾值。

在操作330中,3D渲染設(shè)備可基于著色級(jí)別針對(duì)每個(gè)頂點(diǎn)組確定至少一個(gè)著色點(diǎn),例如,在實(shí)施例中,每個(gè)著色級(jí)別可包括至少一個(gè)著色點(diǎn),一些實(shí)施例使每個(gè)較低級(jí)別比較高級(jí)別具有更多數(shù)量的可確定的著色點(diǎn)。3D渲染設(shè)備可基于每個(gè)頂點(diǎn)組的層次結(jié)構(gòu)信息確定根據(jù)著色級(jí)別將被實(shí)際執(zhí)行著色操作的著色點(diǎn)。

更具體地,針對(duì)頂點(diǎn)組的每個(gè)著色級(jí)別,可根據(jù)以下項(xiàng)中的任意一項(xiàng)確定著色點(diǎn):(1)著色點(diǎn)可包括僅包括在當(dāng)前頂點(diǎn)組中的全部頂點(diǎn);(2)著色點(diǎn)可包括全部頂點(diǎn)以及一個(gè)或更多個(gè)另外的非頂點(diǎn)點(diǎn);(3)著色點(diǎn)可包括當(dāng)前頂點(diǎn)組的頂點(diǎn)中的僅一些頂點(diǎn);(4)著色點(diǎn)可包括頂點(diǎn)中的僅一些頂點(diǎn)以及一個(gè)或更多個(gè)另外的非頂點(diǎn)點(diǎn);(5)著色點(diǎn)可包括一個(gè)或更多個(gè)非頂點(diǎn)點(diǎn)而不包括頂點(diǎn);(6)針對(duì)當(dāng)前頂點(diǎn)組可不設(shè)置或確定著色點(diǎn),所以可能針對(duì)當(dāng)前頂點(diǎn)組可不執(zhí)行相應(yīng)的著色。例如,在整個(gè)3D場景中,針對(duì)對(duì)應(yīng)于頂點(diǎn)組的區(qū)域,包括在頂點(diǎn)組中的全部頂點(diǎn)可根據(jù)選項(xiàng)(1)被確定為著色點(diǎn)。針對(duì)對(duì)應(yīng)于另一頂點(diǎn)組的區(qū)域,不是包括在其他頂點(diǎn)組中的頂點(diǎn)的至少一個(gè)點(diǎn)可被確定為著色點(diǎn)。此外,如上面此所提到的,針對(duì)不同的頂點(diǎn)組可有所不同的確定著色級(jí)別。此外,作為示例,雖然在上面的選項(xiàng)(3)和選項(xiàng)(4)中,頂點(diǎn)中的僅一些頂點(diǎn)可被確定為著色點(diǎn),但是針對(duì)用于不同頂點(diǎn)組的選項(xiàng)(3)和選項(xiàng)(4),確定的頂點(diǎn)的數(shù)量或相對(duì)位置可不同,這正如針對(duì)用于不同頂點(diǎn)組的選項(xiàng)(2)、選項(xiàng)(4)和選項(xiàng)(5)中的任意一個(gè),選項(xiàng)(2)、選項(xiàng)(4)和選項(xiàng)(5)的非頂點(diǎn)點(diǎn)的數(shù)量或相對(duì)位置可不同。

圖4是示出確定著色點(diǎn)的示例的示圖。在圖4的示例中,參考標(biāo)記410表示包括多個(gè)頂點(diǎn)(例如,頂點(diǎn)422、頂點(diǎn)424、頂點(diǎn)426、頂點(diǎn)428、頂點(diǎn)430、頂點(diǎn)432和頂點(diǎn)434)的3D對(duì)象,參考標(biāo)記440表示針對(duì)3D對(duì)象410確定的多個(gè)著色點(diǎn)(例如,著色點(diǎn)422、著色點(diǎn)424、著色點(diǎn)430、著色點(diǎn)434、著色點(diǎn)450、著色點(diǎn)452、著色點(diǎn)454和著色點(diǎn)456)。

在典型的基于頂點(diǎn)的渲染方法中(例如,在僅在頂點(diǎn)著色器中典型地執(zhí)行光著色的情況下),將對(duì)3D對(duì)象410的頂點(diǎn)422至頂點(diǎn)434中的每個(gè)頂點(diǎn)執(zhí)行著色。然而,在一個(gè)或更多個(gè)實(shí)施例中,3D渲染設(shè)備可基于3D場景的時(shí)間特征和/或空間特征自適應(yīng)地確定將被執(zhí)行著色操作的那些點(diǎn)。如在圖4中所示,3D渲染設(shè)備確定3D對(duì)象410的頂點(diǎn)422至頂點(diǎn)434中的僅一些頂點(diǎn)將是將被執(zhí)行著色的著色點(diǎn),例如,將僅對(duì)頂點(diǎn)422、頂點(diǎn)424、頂點(diǎn)430和頂點(diǎn)434執(zhí)行著色,此外,3D渲染設(shè)備還確定也將對(duì)另外的非頂點(diǎn)點(diǎn)(例如,點(diǎn)450、點(diǎn)452、點(diǎn)454和點(diǎn)456)執(zhí)行著色。相應(yīng)地,根據(jù)所確定的這樣的所選頂點(diǎn)和另外的非頂點(diǎn)點(diǎn)的相應(yīng)著色級(jí)別,3D渲染設(shè)備可僅對(duì)點(diǎn)422、點(diǎn)424、點(diǎn)430、點(diǎn)434、點(diǎn)450、點(diǎn)452、點(diǎn)454和點(diǎn)456執(zhí)行著色。此后,3D渲染設(shè)備可使用來自對(duì)著色點(diǎn)422、著色點(diǎn)424、著色點(diǎn)430、著色點(diǎn)434、著色點(diǎn)450、著色點(diǎn)452、著色點(diǎn)454和著色點(diǎn)456執(zhí)行著色的結(jié)果來確定未被執(zhí)行著色的其余頂點(diǎn)(例如,頂點(diǎn)426、頂點(diǎn)428和頂點(diǎn)432)的著色值。例如,3D渲染設(shè)備可通過對(duì)已經(jīng)確定的著色點(diǎn)430、著色點(diǎn)452和著色點(diǎn)454的著色值進(jìn)行插值來確定頂點(diǎn)432的著色值。插值可基于設(shè)置或預(yù)定數(shù)量的最近相鄰著色點(diǎn)或?qū)⒈徊逯档狞c(diǎn)的設(shè)置距離內(nèi)的那些最近相鄰著色點(diǎn),或者二者方法的結(jié)合。

圖5是示出基于著色級(jí)別確定著色點(diǎn)的示例的示圖。

在圖5的示例中,參考標(biāo)記510表示包括多個(gè)頂點(diǎn)515的3D對(duì)象。3D渲染設(shè)備可產(chǎn)生與3D對(duì)象510的頂點(diǎn)515關(guān)聯(lián)的層次結(jié)構(gòu)信息(例如,將頂點(diǎn)515區(qū)分成代表不同的相應(yīng)著色復(fù)雜度和增量著色復(fù)雜度的兩個(gè)或更多個(gè)層次的著色級(jí)別),并基于層次結(jié)構(gòu)信息中所表示的層次著色級(jí)別中被確定的著色級(jí)別來確定執(zhí)行著色的著色點(diǎn)。將被執(zhí)行著色的著色點(diǎn)可在3D對(duì)象510中基于著色級(jí)別來確定。例如,當(dāng)著色級(jí)別被調(diào)低時(shí),將被執(zhí)行著色的著色點(diǎn)的數(shù)量可增加。

參照?qǐng)D5,在第一著色級(jí)別520,3D對(duì)象510的頂點(diǎn)515中的一些頂點(diǎn)522可被確定為著色點(diǎn)。在第一著色級(jí)別520,僅頂點(diǎn)522將被確定為著色點(diǎn),而頂點(diǎn)525將不會(huì)被確定為著色點(diǎn)。3D渲染設(shè)備可對(duì)作為著色點(diǎn)的頂點(diǎn)522執(zhí)行著色,以確定它們各自的著色值,然后通過分別使用頂點(diǎn)522的所選著色值進(jìn)行插值來確定其余頂點(diǎn)525的著色值/對(duì)其余頂點(diǎn)525的著色值進(jìn)行插值。在著色級(jí)別520的這個(gè)示例中,3D渲染設(shè)備可僅對(duì)頂點(diǎn)522執(zhí)行著色操作,而不是對(duì)全部頂點(diǎn)525執(zhí)行著色操作,這可造成比在全部頂點(diǎn)515被著色處理的情況下更快地執(zhí)行渲染。

僅作為插值的示例,3D渲染設(shè)備可對(duì)確定的著色點(diǎn)執(zhí)行Delaunay三角化,將區(qū)域分割成具有三角形形狀的子區(qū)域,并通過使用確定的著色點(diǎn)的著色值進(jìn)行插值確定非著色點(diǎn)頂點(diǎn)的著色值。

在另一示例中,3D渲染設(shè)備可基于地圖集(atlas)確定頂點(diǎn)點(diǎn)和/或非頂點(diǎn)著色點(diǎn),并對(duì)確定的頂點(diǎn)著色點(diǎn)和確定的非頂點(diǎn)著色點(diǎn)執(zhí)行著色,并通過使用確定的頂點(diǎn)著色點(diǎn)和確定的非頂點(diǎn)著色點(diǎn)的著色值進(jìn)行插值來對(duì)任意的其余非著色點(diǎn)頂點(diǎn)的著色值進(jìn)行確定/插值,其中,地圖集可以是相應(yīng)3D對(duì)象的未折疊的網(wǎng)格。

在第二著色級(jí)別530,3D對(duì)象510的頂點(diǎn)515都不被確定為著色點(diǎn),而是,非頂點(diǎn)點(diǎn)535被確定為著色點(diǎn)。3D渲染設(shè)備可對(duì)被確定為著色點(diǎn)的點(diǎn)535執(zhí)行著色,并通過對(duì)非頂點(diǎn)點(diǎn)535的著色的結(jié)果值進(jìn)行插值來確定頂點(diǎn)532的著色值。

在第三著色級(jí)別540,與第一著色級(jí)別520類似,3D對(duì)象510的頂點(diǎn)515之中的頂點(diǎn)542被確定為著色點(diǎn),導(dǎo)致頂點(diǎn)545不被確定為著色點(diǎn)。此外,3D對(duì)象510的區(qū)域中的非頂點(diǎn)點(diǎn)546可被另外地確定為著色點(diǎn)。

例如,非頂點(diǎn)點(diǎn)546的位置可被確定為與3D對(duì)象510中或3D對(duì)象510上的位置對(duì)應(yīng),或可基于使用3D對(duì)象510的區(qū)域的亮度值分布的概率值來確定。例如,當(dāng)3D對(duì)象510中或3D對(duì)象510上的點(diǎn)的亮度值增加時(shí),該點(diǎn)被確定為著色點(diǎn)的概率或概率值可增加。僅作為示例,如果亮度增加而超過閾值,或概率值大于閾值,則該點(diǎn)可被確定為著色點(diǎn)。亮度增加或概率值可基于例如來自先前幀的信息。3D渲染設(shè)備可對(duì)頂點(diǎn)542和非頂點(diǎn)點(diǎn)546執(zhí)行著色,然后通過對(duì)頂點(diǎn)542的著色和非頂點(diǎn)點(diǎn)546的著色的結(jié)果值進(jìn)行插值來對(duì)其余的非著色點(diǎn)頂點(diǎn)545的著色值進(jìn)行確定和插值。

在第四著色級(jí)別550,3D對(duì)象510的全部頂點(diǎn)515可被確定為著色點(diǎn),可對(duì)頂點(diǎn)515中的每個(gè)頂點(diǎn)執(zhí)行著色。在這個(gè)示例中,可不存在確定的非頂點(diǎn)著色點(diǎn)。

在第五著色級(jí)別560中,除3D對(duì)象510的頂點(diǎn)515之外,3D對(duì)象510的非頂點(diǎn)點(diǎn)565可被另外地確定為著色點(diǎn)。3D渲染設(shè)備可基于3D場景的代表3D對(duì)象510的時(shí)間特征或空間特征分別確定非頂點(diǎn)點(diǎn)565。例如,當(dāng)確定需要更精細(xì)的著色效果時(shí)(例如,當(dāng)確定照明效果復(fù)雜時(shí)),3D渲染設(shè)備可另外地確定3D對(duì)象510的區(qū)域中/上的將被執(zhí)行著色的非頂點(diǎn)點(diǎn)565。在示例中,非頂點(diǎn)點(diǎn)565可在3D對(duì)象510的區(qū)域中/上被隨機(jī)確定。3D渲染設(shè)備可隨后對(duì)頂點(diǎn)515以及非頂點(diǎn)點(diǎn)565執(zhí)行著色。在這個(gè)示例和第四著色級(jí)別550的示例中,由于對(duì)全部頂點(diǎn)515執(zhí)行著色,對(duì)其它點(diǎn)的進(jìn)一步的插值不是必要的。

圖6是示出基于對(duì)著色點(diǎn)執(zhí)行著色的結(jié)果確定頂點(diǎn)的著色值的示例的示圖。

在圖6的示例中,假設(shè)3D對(duì)象610包括多個(gè)頂點(diǎn)612至626。在示出的階段630中,3D渲染設(shè)備將將被執(zhí)行著色的著色點(diǎn)確定為包括頂點(diǎn)612至頂點(diǎn)622中的一些頂點(diǎn)(例如,頂點(diǎn)614、頂點(diǎn)616、頂點(diǎn)622和頂點(diǎn)624),并還包括3D對(duì)象610中的非頂點(diǎn)點(diǎn)(例如,非頂點(diǎn)點(diǎn)632、非頂點(diǎn)點(diǎn)634和非頂點(diǎn)點(diǎn)626)。3D渲染設(shè)備隨后對(duì)確定的著色點(diǎn)614、著色點(diǎn)616、著色點(diǎn)622、著色點(diǎn)624、著色點(diǎn)632、著色點(diǎn)634和著色點(diǎn)636執(zhí)行著色。3D渲染設(shè)備還基于著色值(例如,在執(zhí)行著色的操作中確定的著色點(diǎn)614、著色點(diǎn)616、著色點(diǎn)622、著色點(diǎn)624、著色點(diǎn)632、著色點(diǎn)634和著色點(diǎn)636的顏色值)確定非著色點(diǎn)頂點(diǎn)(例如,頂點(diǎn)612、頂點(diǎn)618、頂點(diǎn)620和頂點(diǎn)626)的著色值。例如,在示出的階段640中,3D渲染設(shè)備通過對(duì)與頂點(diǎn)626鄰近的著色點(diǎn)622、著色點(diǎn)624、著色點(diǎn)634和著色點(diǎn)636的著色值進(jìn)行插值來確定頂點(diǎn)626的著色值。類似地,3D渲染設(shè)備使用類似的上述插值處理來確定未被執(zhí)行著色的其余非著色點(diǎn)頂點(diǎn)(例如,頂點(diǎn)612、頂點(diǎn)618和頂點(diǎn)620)的著色值。著色點(diǎn)614、著色點(diǎn)616、著色點(diǎn)622、著色點(diǎn)624、著色點(diǎn)632、著色點(diǎn)634和著色點(diǎn)636的著色值以及通過插值確定的頂點(diǎn)612、頂點(diǎn)618、頂點(diǎn)620和頂點(diǎn)626的著色值可被存儲(chǔ)在諸如存儲(chǔ)器或紋理緩沖器中。存儲(chǔ)的著色值可隨后用于將對(duì)后續(xù)圖像幀執(zhí)行的著色。

圖7是示出基于著色點(diǎn)的著色值確定渲染后的圖像的像素值的示例的示圖。

在圖7的示例中,假設(shè)在示出的階段710中分別確定3D對(duì)象中/上的頂點(diǎn)(例如,頂點(diǎn)715、頂點(diǎn)720和頂點(diǎn)725)和非頂點(diǎn)點(diǎn)(例如,非頂點(diǎn)點(diǎn)730和非頂點(diǎn)點(diǎn)735)的著色值。在示出的階段740中,3D渲染設(shè)備通過針對(duì)每個(gè)像素基于頂點(diǎn)715、頂點(diǎn)720和頂點(diǎn)725以及非頂點(diǎn)點(diǎn)730和非頂點(diǎn)點(diǎn)735的著色值執(zhí)行顏色插值來確定像素的著色值。例如,如在圖7中所示,3D渲染設(shè)備通過對(duì)與像素750鄰近的頂點(diǎn)725的著色值以及點(diǎn)730和點(diǎn)735的顏色值進(jìn)行插值來確定像素750的顏色值。3D渲染設(shè)備可重復(fù)執(zhí)行上述內(nèi)容中描述的類似處理,并確定包括在渲染后的圖像中的像素的顏色值。

這里,在實(shí)施例中并僅作為示例,諸如基于由圖形管線的頂點(diǎn)著色器或圖形管線的可被布置在頂點(diǎn)著色器之后的細(xì)分曲面著色器(tessellation shader)確定的頂點(diǎn),3D渲染設(shè)備的光柵化器可從3D渲染設(shè)備的相應(yīng)圖形管線操作的先前階段的信息結(jié)果確定這樣的像素。諸如通過著色點(diǎn)著色器將頂點(diǎn)715、頂點(diǎn)720和頂點(diǎn)725以及非頂點(diǎn)點(diǎn)730和非頂點(diǎn)點(diǎn)735的著色值結(jié)果存儲(chǔ)在紋理存儲(chǔ)器或其他存儲(chǔ)器或緩沖器中,圖形管線的像素著色器可隨后被提供或獲得頂點(diǎn)715、頂點(diǎn)720和頂點(diǎn)725以及非頂點(diǎn)點(diǎn)730和非頂點(diǎn)點(diǎn)735的著色值結(jié)果,其中,所述著色點(diǎn)著色器與圖形管線分離且與圖形管線并行運(yùn)行并且執(zhí)行了確定頂點(diǎn)715、頂點(diǎn)720和頂點(diǎn)725以及非頂點(diǎn)點(diǎn)730和非頂點(diǎn)點(diǎn)735的著色值的操作。所述著色點(diǎn)著色器可實(shí)施確定著色點(diǎn)的步驟。這里,對(duì)頂點(diǎn)著色器、細(xì)分曲面著色器、光柵化器和/或像素著色器的這樣的引用僅是示例,實(shí)施例不限于此。

圖9是示出3D渲染設(shè)備900的示例的示圖。參照?qǐng)D9,3D渲染設(shè)備900可包括頂點(diǎn)著色器910、像素著色器920和著色點(diǎn)著色器930。在一個(gè)或更多個(gè)實(shí)施例中,頂點(diǎn)著色器910和像素著色器920可以是圖形管線的元件。例如,3D渲染設(shè)備900可包括多個(gè)這樣的圖形管線,其中,所述多個(gè)這樣的圖形管線中的一些或全部圖形管線還可被配置為并行運(yùn)行。此外,如上面提到的,這樣的圖形管線還可在頂點(diǎn)著色器910與像素著色器920之間包括細(xì)分曲面階段并在這樣的細(xì)分曲面階段(或細(xì)分曲面階段不存在時(shí)的頂點(diǎn)著色器910)與像素著色器920之間包括光柵化器。此外,為了說明的目的,簡單陳述以下關(guān)于頂點(diǎn)著色器910、像素著色器920和著色點(diǎn)著色器930的討論,注意到上述關(guān)于圖1至圖8B的這樣的頂點(diǎn)著色器、像素著色器以及著色點(diǎn)和著色值確定的討論通過引用而被包含并類似地應(yīng)用到圖9的頂點(diǎn)著色器910、像素著色器920和著色點(diǎn)著色器930。

因此,頂點(diǎn)著色器910可基于獲得的或提供的諸如頂點(diǎn)屬性信息的3D圖形數(shù)據(jù)對(duì)3D場景中的頂點(diǎn)執(zhí)行頂點(diǎn)變換,其中,頂點(diǎn)屬性信息可包括針對(duì)3D場景和針對(duì)3D場景中的一個(gè)或更多個(gè)對(duì)象的頂點(diǎn)的空間位置、顏色、法向量和紋理。僅作為非限制性的示例,頂點(diǎn)變換可包括變換頂點(diǎn)的位置、變換頂點(diǎn)的法向量、以及產(chǎn)生和變換紋理坐標(biāo)中的至少一個(gè)。在示例中,頂點(diǎn)變換可包括將頂點(diǎn)的位置變換到歸一化的坐標(biāo)空間(諸如與可最終顯示渲染后的圖像的屏幕坐標(biāo)空間對(duì)應(yīng)的歸一化坐標(biāo)空間)。

著色點(diǎn)著色器930執(zhí)行參照?qǐng)D1至圖8B描述的操作中的與著色處理關(guān)聯(lián)的操作。例如,著色點(diǎn)著色器930可將3D場景中的頂點(diǎn)分組成多個(gè)頂點(diǎn)組,并確定每個(gè)頂點(diǎn)組各自的著色級(jí)別。著色點(diǎn)著色器930可針對(duì)每個(gè)頂點(diǎn)組基于確定的著色級(jí)別確定將被執(zhí)行著色的一個(gè)或更多個(gè)著色點(diǎn),并對(duì)確定的著色點(diǎn)執(zhí)行著色。著色點(diǎn)著色器930還可通過經(jīng)由對(duì)被執(zhí)行著色的著色點(diǎn)的結(jié)果著色值執(zhí)行插值確定未經(jīng)著色處理的頂點(diǎn)(即,未被執(zhí)行著色的頂點(diǎn))的著色值來確定3D場景的著色信息。

著色點(diǎn)著色器930執(zhí)行頂點(diǎn)-單元顏色著色,這樣的顏色著色可與頂點(diǎn)著色器910和像素著色器920各自的渲染處理分開執(zhí)行。例如,由著色點(diǎn)著色器930執(zhí)行的著色可作為與頂點(diǎn)著色器910和像素著色器920的圖形管線分開的處理而被執(zhí)行。因此,頂點(diǎn)和著色點(diǎn)的著色值可被著色點(diǎn)著色器930存儲(chǔ)在諸如3D渲染設(shè)備900的紋理緩沖器或其他存儲(chǔ)器中以用于圖形管線的隨后使用,或者著色點(diǎn)著色器930可在不進(jìn)行存儲(chǔ)的情況下將確定的著色值發(fā)送到圖形管線的一個(gè)或更多個(gè)階段。諸如當(dāng)著色點(diǎn)著色器930確定頂點(diǎn)組中的一些頂點(diǎn)不需要每幀被更新時(shí),存儲(chǔ)的著色值還可被用于確定后續(xù)圖像幀的著色信息,因此,與針對(duì)每幀單獨(dú)在頂點(diǎn)著色器中對(duì)全部頂點(diǎn)典型地執(zhí)行光著色的典型方法相比,圖像幀之間的相關(guān)性可增加,閃爍的發(fā)生可被降低,并且計(jì)算量可被降低。

在示例中,例如,著色點(diǎn)著色器930可基于先前幀中的頂點(diǎn)組或另一頂點(diǎn)組的著色結(jié)果確定每個(gè)頂點(diǎn)組的著色級(jí)別。著色點(diǎn)著色器930還可基于按不同的著色級(jí)別提供的所確定的顏色值的差來確定將被應(yīng)用到每個(gè)頂點(diǎn)組的最佳著色級(jí)別。例如,著色點(diǎn)著色器930可通過對(duì)基于當(dāng)前著色級(jí)別執(zhí)行著色的結(jié)果與基于低于當(dāng)前著色級(jí)別的著色級(jí)別執(zhí)行著色的結(jié)果進(jìn)行比較,來計(jì)算基于著色級(jí)別差的顏色值的差,并可響應(yīng)于顏色值的差大于或等于閾值而調(diào)整當(dāng)前著色級(jí)別。著色點(diǎn)著色器930可針對(duì)不同的著色級(jí)別(例如,隨著著色復(fù)雜度增加的著色級(jí)別遞增)重復(fù)地執(zhí)行這個(gè)處理,并可將基于著色級(jí)別差的顏色值的差小于閾值的著色級(jí)別最終確定為將被應(yīng)用到頂點(diǎn)組的最佳著色級(jí)別。僅作為示例,最佳著色級(jí)別確定處理可持續(xù)直到顏色的差第一次小于閾值為止,或者最佳級(jí)別確定處理可持續(xù)至超出顏色的差小于閾值的第一著色至少一個(gè)著色級(jí)別。

在一個(gè)或更多個(gè)實(shí)施例中,當(dāng)3D場景的著色信息被確定時(shí),著色點(diǎn)著色器930可將著色信息傳遞到像素著色器920,或僅將著色信息存儲(chǔ)在可用于像素著色器920的紋理緩沖器中。像素著色器920可隨后基于獲得或提供的著色信息對(duì)每個(gè)像素執(zhí)行顏色插值。像素著色器920諸如通過圖形管線的光柵化器階段或像素著色器920的光柵化操作,使用形成像素被確定為所屬的多邊形(例如,三角形)的頂點(diǎn)的顏色值和被執(zhí)行著色的著色點(diǎn)的顏色值來執(zhí)行顏色插值,因此,渲染后的圖像中的每個(gè)像素的顏色值被確定。此外,像素著色器920可執(zhí)行紋理映射來表現(xiàn)3D對(duì)象的紋理,其中,在紋理映射中,紋理被施加到虛擬3D對(duì)象。

在另一示例中,3D渲染設(shè)備900還包括被配置為對(duì)諸如上面關(guān)于圖8B描述的間接光源進(jìn)行采樣的間接光源采樣器940,其中,在圖8B中,至少反射或折射是用間接光源表示。著色點(diǎn)著色器930可除使用直接光源的照明信息之外還使用間接光源的照明信息執(zhí)行上述著色,因此,間接光源被間接光源采樣器940采樣。將對(duì)間接光源執(zhí)行的采樣可包括在3D空間布置間接光源。間接光源采樣器940通過調(diào)節(jié)間接光源將被布置的區(qū)域或調(diào)節(jié)將被布置在3D空間中的間接光源的數(shù)量來控制將被施加到3D對(duì)象的間接照明效果。

例如,間接光源采樣器940對(duì)因光視圖渲染(light view rendering)而產(chǎn)生的圖像中的間接光源進(jìn)行采樣,或使用被應(yīng)用到光的光線追蹤方法對(duì)間接光源進(jìn)行采樣。例如,間接光源采樣器940可基于因光視圖渲染而產(chǎn)生的圖像的亮度分布來產(chǎn)生與亮度成比例的概率圖,并將間接光源布置在基于概率圖確定的位置。針對(duì)另一示例,間接光源采樣器940可基于光線追蹤方法確定光與3D對(duì)象碰撞的區(qū)域,并將間接光源布置在確定的區(qū)域中。

圖10A是示出3D渲染設(shè)備1010的示例的示圖。參照?qǐng)D10A,3D渲染設(shè)備1010包括至少一個(gè)處理器1020和至少一個(gè)存儲(chǔ)器1030。

處理器1020執(zhí)行參照?qǐng)D1至圖9描述的至少一個(gè)或更多個(gè)操作或全部操作。例如,處理器1020可包括圖9的3D渲染設(shè)備900中的一個(gè)或更多個(gè),并能夠執(zhí)行另外的操作。例如,處理器1020確定3D場景中將被執(zhí)行著色的所選著色點(diǎn),并對(duì)所確定的著色點(diǎn)執(zhí)行選擇性的著色以及選擇性地不對(duì)一個(gè)或更多個(gè)頂點(diǎn)執(zhí)行著色。確切地說,未被執(zhí)行著色的頂點(diǎn)的著色值可通過基于確定的著色點(diǎn)的著色結(jié)果的插值來確定。處理器1020將3D場景中的頂點(diǎn)分組成頂點(diǎn)組,并可基于由處理器1020針對(duì)每個(gè)頂點(diǎn)組分別確定的著色級(jí)別來確定一個(gè)或更多個(gè)著色點(diǎn)。處理器1020基于對(duì)著色點(diǎn)執(zhí)行著色的結(jié)果來確定3D場景的著色信息,并基于著色信息產(chǎn)生渲染后的圖像。渲染后的圖像可作為像素信息而被存儲(chǔ)在存儲(chǔ)器中和/或被輸出到與3D渲染設(shè)備1010連接的顯示器。用戶接口還被提供連接到3D渲染設(shè)備1010。

處理器1020可被實(shí)現(xiàn)為本領(lǐng)域普通技術(shù)人員所理解的邏輯門的陣列或另一類型的硬件。例如,處理器1020可代表被配置為實(shí)施上面描述的操作中的任意操作或任意組合以及固定或移動(dòng)裝置的另外操作的一個(gè)或更多個(gè)處理器。例如,為了實(shí)施上面描述的著色操作中的任意操作或任意組合,處理器1020可包括用于對(duì)3D對(duì)象執(zhí)行渲染的至少一個(gè)GPU。與頂點(diǎn)和著色點(diǎn)關(guān)聯(lián)的著色信息可被存儲(chǔ)在GPU的紋理緩沖器中,存儲(chǔ)的著色信息可用于對(duì)后續(xù)圖像幀執(zhí)行著色。

存儲(chǔ)器1030存儲(chǔ)用于執(zhí)行參照?qǐng)D1至圖9描述的至少一個(gè)操作的指令,和/或存儲(chǔ)在3D渲染設(shè)備正運(yùn)行的同時(shí)獲得的數(shù)據(jù)和結(jié)果。在一些示例中,存儲(chǔ)器1030可包括非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)(例如,高速隨機(jī)存取存儲(chǔ)器)和/或非易失計(jì)算機(jī)可讀介質(zhì)(例如,至少一個(gè)盤存儲(chǔ)裝置、閃速存儲(chǔ)器裝置和其他非易失性固態(tài)存儲(chǔ)器裝置)。

圖10B是示出3D渲染設(shè)備1015的示例的示圖。參照?qǐng)D10B,3D渲染設(shè)備1015與圖10A類似地包括至少一個(gè)處理器1020和至少一個(gè)存儲(chǔ)器1030,并還包括至少一個(gè)顯示器1040和用戶接口1050。例如,處理器1020可代表被配置為實(shí)施上面描述的操作中的任意操作或任意組合以及固定或移動(dòng)裝置的另外操作的單個(gè)處理器。例如,處理器1020可代表包括圖形處理器(GPU)的兩個(gè)或更多個(gè)處理器以及被配置為執(zhí)行固定或移動(dòng)裝置的另外操作的至少一個(gè)其他處理器,其中,圖形處理器(GPU)包括圖9的圖形管線、著色點(diǎn)著色器和間接光源采樣器中的一個(gè)或更多個(gè)。處理器1020可即基于上面的著色操作將確定的像素顏色信息提供給顯示器1040。顯示器1040上的渲染后的圖像可響應(yīng)于通過用戶接口1050與3D渲染設(shè)備1015進(jìn)行的交互而被改變或自動(dòng)改變。

通過被配置為執(zhí)行本申請(qǐng)中描述的由硬件組件執(zhí)行的操作的硬件組件來實(shí)現(xiàn)使用圖1至圖10B描述的執(zhí)行本申請(qǐng)中的描述的操作的頂點(diǎn)著色器和頂點(diǎn)著色器910、像素著色器和像素著色器920、光柵化器、著色點(diǎn)著色器和著色點(diǎn)著色器930、間接光源采樣器940、處理器、核、處理元件和處理器1020、存儲(chǔ)器、高速緩沖存儲(chǔ)器和存儲(chǔ)器1030、顯示器1040、用戶接口1050以及3D渲染設(shè)備、3D渲染設(shè)備1010和3D渲染設(shè)備1015。可用于執(zhí)行本申請(qǐng)中描述的操作的硬件組件的示例在適當(dāng)情況下包括控制器、傳感器、生成器、驅(qū)動(dòng)器、存儲(chǔ)器、比較器、算術(shù)邏輯單元、加法器、減法器、乘法器、除法器、積分器以及被配置為執(zhí)行本申請(qǐng)中描述的操作的任意其他電子組件。在其他示例中,通過計(jì)算硬件(例如,通過一個(gè)或更多個(gè)處理器或計(jì)算機(jī))來實(shí)現(xiàn)執(zhí)行本申請(qǐng)中描述的操作的一個(gè)或更多個(gè)硬件組件??赏ㄟ^一個(gè)或更多個(gè)處理元件(諸如,邏輯門的陣列、控制器和算術(shù)邏輯單元、數(shù)字信號(hào)處理器、微型計(jì)算機(jī)、可編程邏輯控制器、現(xiàn)場可編程門陣列、可編程邏輯陣列、微處理器或被配置為以限定的方式響應(yīng)并執(zhí)行指令以獲得期望結(jié)果的任意其他裝置或裝置的組合)來實(shí)現(xiàn)處理器或計(jì)算機(jī)。在一個(gè)示例中,處理器或計(jì)算機(jī)包括或被連接到存儲(chǔ)由處理器或計(jì)算機(jī)執(zhí)行的指令或軟件的一個(gè)或更多個(gè)存儲(chǔ)器。通過處理器或計(jì)算機(jī)實(shí)現(xiàn)的硬件組件可執(zhí)行指令或軟件(諸如,操作系統(tǒng)(OS))和在OS上運(yùn)行的一個(gè)或更多個(gè)軟件應(yīng)用,以執(zhí)行本申請(qǐng)中描述的操作。硬件組件也可響應(yīng)于指令或軟件的執(zhí)行而訪問、操控、處理、創(chuàng)建和存儲(chǔ)數(shù)據(jù)。為了簡單,單數(shù)術(shù)語“處理器”或“計(jì)算機(jī)”可用于本申請(qǐng)中描述的示例的描述,但在其他示例中,多個(gè)處理器或計(jì)算機(jī)可被使用,或者處理器或計(jì)算機(jī)可包括多個(gè)處理元件或多種類型的處理元件或二者。例如,可通過單個(gè)處理器或者兩個(gè)或更多個(gè)處理器或者處理器和控制器來實(shí)現(xiàn)單個(gè)硬件組件或者兩個(gè)或更多個(gè)硬件組件??赏ㄟ^一個(gè)或更多個(gè)處理器或者處理器和控制器來實(shí)現(xiàn)一個(gè)或更多個(gè)硬件組件,可通過一個(gè)或更多個(gè)其他處理器或者另一處理器和另一控制器來實(shí)現(xiàn)一個(gè)或更多個(gè)其他硬件組件。一個(gè)或更多個(gè)處理器或者處理器和控制器可實(shí)現(xiàn)單個(gè)硬件組件或者兩個(gè)或更多個(gè)硬件組件。硬件組件可具有不同處理配置中的任意一個(gè)或多個(gè),其示例包括單個(gè)處理器、獨(dú)立處理器、并行處理器、單指令單數(shù)據(jù)(SISD)多處理、單指令多數(shù)據(jù)(SIMD)多處理、多指令單數(shù)據(jù)(MISD)多處理和多指令多數(shù)據(jù)(MIMD)多處理。

通過計(jì)算硬件(例如,通過一個(gè)或更多個(gè)處理器或計(jì)算機(jī))來執(zhí)行圖1至圖8中示出的執(zhí)行本申請(qǐng)中描述的操作的方法,其中,計(jì)算硬件被實(shí)現(xiàn)為如上面描述的執(zhí)行指令或軟件以執(zhí)行本申請(qǐng)中描述的由方法執(zhí)行的操作。例如,可通過單個(gè)處理器或者兩個(gè)或更多個(gè)處理器或者處理器和控制器來執(zhí)行單個(gè)操作或者兩個(gè)或更多個(gè)操作??赏ㄟ^一個(gè)或更多個(gè)處理器或者處理器和控制器來執(zhí)行一個(gè)或更多個(gè)操作,可通過一個(gè)或更多個(gè)其他處理器或者另一處理器和另一控制器來執(zhí)行一個(gè)或更多個(gè)其他操作。一個(gè)或更多個(gè)處理器或者處理器和控制器可執(zhí)行單個(gè)操作或者兩個(gè)或更多個(gè)操作。

用于控制計(jì)算硬件(例如,一個(gè)或更多個(gè)處理器或計(jì)算機(jī))實(shí)現(xiàn)硬件組件并且執(zhí)行如上面描述的方法的指令或軟件可被寫為計(jì)算機(jī)程序、代碼段、指令或其任意組合,以單獨(dú)地或共同地指示或配置所述一個(gè)或更多個(gè)處理器或計(jì)算機(jī)如機(jī)器或?qū)S糜?jì)算機(jī)那樣操作,以執(zhí)行由硬件組件執(zhí)行的操作和如上面描述的方法。在一個(gè)示例中,所述指令或軟件包括直接由所述一個(gè)或更多個(gè)處理器或計(jì)算機(jī)執(zhí)行的機(jī)器代碼(諸如,由編譯器產(chǎn)生的機(jī)器代碼)。在另一示例中,所述指令或軟件包括由一個(gè)或更多個(gè)處理器或計(jì)算機(jī)使用解釋器執(zhí)行的更高級(jí)代碼??苫诟綀D中示出的框圖和流程圖以及說明書中的相應(yīng)描述使用任意的編程語言來編寫指令或軟件,其中,說明書中的相應(yīng)描述公開了用于執(zhí)行由硬件組件執(zhí)行的操作和如上所述的方法的算法。

用于控制計(jì)算硬件(例如,一個(gè)或更多個(gè)處理器或計(jì)算機(jī))實(shí)現(xiàn)硬件組件并且執(zhí)行如上所述的方法的指令或軟件以及任何相關(guān)聯(lián)的數(shù)據(jù)、數(shù)據(jù)文件以及數(shù)據(jù)結(jié)構(gòu)可被記錄、存儲(chǔ)或固定在一個(gè)或更多個(gè)非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,或被記錄、存儲(chǔ)或固定在一個(gè)或更多個(gè)非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上。非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例包括:只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、閃存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁帶、軟盤、磁光數(shù)據(jù)存儲(chǔ)裝置、光學(xué)數(shù)據(jù)存儲(chǔ)裝置、硬盤、固態(tài)盤和被配置為進(jìn)行以下操作的任意其它裝置:以非暫時(shí)性的方式存儲(chǔ)指令或軟件以及任何相關(guān)聯(lián)的數(shù)據(jù)、數(shù)據(jù)文件以及數(shù)據(jù)結(jié)構(gòu),并將指令或軟件以及任何相關(guān)聯(lián)的數(shù)據(jù)、數(shù)據(jù)文件以及數(shù)據(jù)結(jié)構(gòu)提供給一個(gè)或更多個(gè)處理器或計(jì)算機(jī),以便所述一個(gè)或更多個(gè)處理器或計(jì)算機(jī)能執(zhí)行指令。在一個(gè)示例中,所述指令或軟件以及任何相關(guān)聯(lián)的數(shù)據(jù)、數(shù)據(jù)文件以及數(shù)據(jù)結(jié)構(gòu)被分布在聯(lián)網(wǎng)的計(jì)算機(jī)系統(tǒng)上,使得所述指令和軟件以及任何相關(guān)聯(lián)的數(shù)據(jù)、數(shù)據(jù)文件以及數(shù)據(jù)結(jié)構(gòu)通過一個(gè)或更多個(gè)處理器或計(jì)算機(jī)以分布式的方式被存儲(chǔ)、訪問和執(zhí)行。

僅作為非窮舉的示例,如這里所述以及如在圖9和圖10A至圖10B中所示的3D渲染設(shè)備可代表移動(dòng)裝置(諸如,蜂窩電話、智能電話、可穿戴智能裝置(諸如,戒指、手表、一副眼鏡、手鐲、腳鐲、腰帶、項(xiàng)鏈等)、便攜式個(gè)人計(jì)算機(jī)(PC)(諸如,膝上型計(jì)算機(jī)、筆記本電腦、小型筆記本電腦、上網(wǎng)本或超移動(dòng)PC(UMPC)、平板PC(平板電腦)、平板手機(jī)、個(gè)人數(shù)字助理(PDA)、數(shù)碼相機(jī)、便攜式游戲機(jī)、MP3播放器、便攜式/個(gè)人多媒體播放器(PMP)、手持電子書、全球定位系統(tǒng)(GPS)導(dǎo)航裝置)或傳感器或固定裝置(諸如,臺(tái)式PC、高清電視(HDTV)、DVD播放器、藍(lán)光播放器、機(jī)頂盒、或家電)、或被配置為執(zhí)行無線通信或網(wǎng)絡(luò)通信的任意其他移動(dòng)或固定裝置。在一個(gè)示例中,可穿戴裝置是被設(shè)計(jì)為可直接安裝在用戶的身體上的裝置(諸如,一副眼鏡或手鐲)。在另一示例中,可穿戴裝置是使用附接裝置安裝在用戶的身體上的任意裝置(諸如,使用臂帶附著到用戶的胳膊或使用系索環(huán)掛在用戶的脖子的智能電話或平板電腦)。

雖然本公開包括特定示例,但是在理解本申請(qǐng)的公開之后將清楚的是:在不脫離權(quán)利要求和它們的等同物的范圍的情況下,可對(duì)這些示例進(jìn)行形式和細(xì)節(jié)上的各種改變。在此描述的示例應(yīng)僅在描述意義上考慮,而非為了限制的目的。在每個(gè)示例中的特征或方面的描述將被視為可被應(yīng)用于其它示例中的相似特征或方面。如果以不同的順序執(zhí)行描述的技術(shù),和/或如果描述的系統(tǒng)、架構(gòu)、裝置或電路中的組件以不同方式被組合和/或被其它組件或其等同物替代或補(bǔ)充,則可實(shí)現(xiàn)合適的結(jié)果。因此,本公開的范圍并非由具體實(shí)施方式限定,而是由權(quán)利要求和它們的等同物所限定,并且在權(quán)利要求和它們的等同物的范圍內(nèi)的所有變化將被解釋為被包括在本公開中。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1