專利名稱:具有光照改變的幀的再渲染加速的制作方法
技術(shù)領(lǐng)域:
本文揭示的主題涉及計算機圖形渲染,且更特定來說涉及加速幀的再渲染。
背景技術(shù):
對于高質(zhì)量渲染,例如對于膠片視覺效果和/或動畫,單一幀的渲染可能花費許多分 鐘或甚至許多小時。在技術(shù)員需要對原本已完成的場景作出光照改變時的創(chuàng)造性過程中 可能發(fā)生顯著的瓶頸。由于對于每個改變(在何處放置光、光的顏色、光是否應(yīng)投射陰 影、陰影的模糊程度應(yīng)如何,等),必須針對將對光照技術(shù)員和/或引導(dǎo)者變?yōu)榭梢姷母?變執(zhí)行再渲染,所以此過程可能非常耗時。增加過程的耗時特性的是光照設(shè)計的重復(fù)特 性。作出改變,對幀進行再渲染,觀察結(jié)果,作出更多改變,對幀進行再渲染等,直到 光照技術(shù)員和/或引導(dǎo)者對結(jié)果滿意為止。因為每次渲染可能花費許多小時來完成,所以 光照過程可能非常耗時且低效。
發(fā)明內(nèi)容
無
在本說明書的結(jié)束部分特定指出并清楚地主張了主題。然而如果結(jié)合附圖閱讀,那 么通過參考以下具體實施方式
可最佳地理解關(guān)于操作的組織和方法兩者的所主張的主 題,以及其目的、特征和優(yōu)點,附圖中
圖1是包括圖形處理單元的計算平臺的示范性實施例的方框圖; 圖2是包括多個光源和多個三維對象的示范性場景的圖; 圖3是交互式再光照過程的示范性實施例的圖; 圖4是用于加速幀的再渲染的方法的示范性實施例的流程圖; 圖5是用于加速幀的再渲染的方法的額外示范性實施例的流程圖; 圖6是用于加速幀的再渲染的方法的額外示范性實施例的流程圖; 圖7是用于加速幀的再光照的方法的額外示范性實施例的流程圖; 圖8是用于加速幀的再光照的方法的示范性實施例的流程圖,所述方法包括將與幀 的渲染相關(guān)聯(lián)的對象信息存儲在對象索引化高速緩沖存儲器中;
圖9是描繪與對象上一點相關(guān)聯(lián)的多個光的信息塊的圖; 圖IO是柵格高速緩沖存儲器的示范性實施例的方框圖ll是用于確定與渲染操作相關(guān)聯(lián)的項目的優(yōu)先列表中哪些將被高速緩沖存儲的方
法的示范性實施例的流程圖12是用于再計算依據(jù)經(jīng)修改的外部文件的經(jīng)高速緩沖存儲的對象信息的方法的
示范性實施例的流程圖13是用于執(zhí)行較低保真度渲染的方法的示范性實施例的流程圖14是用于漸進精細(xì)化場景的渲染的方法的示范性實施例的流程圖15是描繪正通過較低保真度和較高保真度過程渲染的場景的示范性顯示的圖16是用于中斷幀的渲染的方法的示范性實施例的流程圖17是用于中斷幀的渲染并對幀進行再渲染的方法的示范性實施例的流程圖; 圖18是描繪包括光源和兩個對象的示范性場景的圖19是用于確定對象之間的光照相依性的方法的示范性實施例的流程圖; 圖20是用于加速響應(yīng)于景深改變而進行的幀的再渲染的方法的f范性實施例的流 程圖21是用于加速響應(yīng)于相機參數(shù)改變而進行的幀的再渲染的方法的示范性實施例 的流程圖22是用于加速響應(yīng)于相機位置改變而進行的幀的再渲染的方法的示范性實施例 的流程圖;以及
圖23是用于加速響應(yīng)于相機位置改變而進行的幀的再渲染的方法的另一示范性實 施例的流程圖。
具體實施例方式
在以下具體實施方式
中,陳述許多特定細(xì)節(jié)以提供對所主張主題的詳盡理解。然而, 所屬領(lǐng)域的技術(shù)人員將了解,可在沒有這些特定細(xì)節(jié)的情況下實踐所主張的主題。在其 它情況下,沒有詳細(xì)描述眾所周知的方法、程序、組件和/或電路。
如上文所指出,現(xiàn)有技術(shù)的難題,尤其是例如再光照領(lǐng)域中的難題,可包含對經(jīng)重 新光照的幀的非常耗時且低效的再渲染。因此,需要可加速對經(jīng)重新光照的幀的再渲染 的技術(shù)和/或系統(tǒng)。
根據(jù)用于加速具有光照改變的幀的再渲染的方法的實施例,對應(yīng)于幀的一個或一個 以上三維(3D)對象的信息可存儲在對象索引化高速緩沖存儲器中??墒?D對象離散
化為多個點。高速緩沖存儲器可包含在幀的再渲染中可使用的中間和/或最終遮影值。光 照改變可由用戶(例如,光照技術(shù)員)指定??纱_定所述多個點中哪些點(如果存在的 話)受到所指定的光照改變影響。對于受到光照改變影響的點,可確定將再計算哪些遮 影操作以便實施光照改變??墒褂迷儆嬎愕恼谟安僮髋c存儲在對象索引化高速緩沖存儲 器中的中間和/或最終遮影值的至少一子集的組合來對幀進行再渲染。
通過將中間遮影結(jié)果存儲在由對象索引化的高速緩沖存儲器中,且通過在適合于對 幀進行再渲染的地方使用中間遮影結(jié)果,可在再光照操作期間實現(xiàn)顯著的時間節(jié)省。顯 著的時間節(jié)省可提供明顯改進的交互式再光照過程,其可由動畫師、光照技術(shù)員等在較 大有利程度上加以使用。
本說明書中對"一個實施例"或"一實施例"的參考意味著結(jié)合實施例描述的特定 特征、結(jié)構(gòu)或特性包含在所主張的主題的至少一個實施例中。因此,短語"在一個實施 例中"和/或"一實施例"在本說明書中各處的出現(xiàn)不一定全都指代同一實施例。此外, 可在一個或一個以上實施例中組合特定特征、結(jié)構(gòu)和/或特性。
本文提及的"指令"涉及表示一個或一個以上邏輯運算的表達式。舉例來說,指令 可通過可由用于對一個或一個以上數(shù)據(jù)對象執(zhí)行一個或一個以上操作的機器(例如,處 理器)進行解譯而為"機器可讀的"。然而,這僅僅是指令的實例,且所主張的主題在此 方面不受限制。在另一實例中,本文提及的指令可涉及可由具有包含經(jīng)編碼命令的命令 集的處理器或其它處理電路執(zhí)行的經(jīng)編碼命令。此指令可以處理器或處理電路所理解的 機器語言的形式進行編碼。同樣,這些僅僅是指令的實例,且所主張的主題在這些方面 不受限制。
本文提到的"存儲媒體"涉及能夠維持可由一個或一個以上機器感知的表達式的媒 體。舉例來說,存儲媒體可包括用于存儲機器可讀指令和/或信息的一個或一個以上存儲 裝置。此類存儲裝置可包括包含例如磁性、光學(xué)和/或半導(dǎo)體存儲媒體的若干媒體類型中 的任一種。然而,這些僅僅是存儲媒體的實例,且所主張的主題在這些方面不受限制。
本文提到的"邏輯"涉及用于執(zhí)行一個或一個以上邏輯運算的結(jié)構(gòu)。舉例來說,邏 輯可包括至少部分基于一個或一個以上輸入信號而提供一個或一個以上輸出信號的電 路。此類電路可包括接收數(shù)字輸入信號并提供數(shù)字輸出信號的有限狀態(tài)機,或響應(yīng)于一 個或一個以上模擬輸入信號而提供一個或一個以上模擬輸出信號的電路??衫缭趯S?集成電路(ASIC)和/或現(xiàn)場可編程門陣列(FPGA)中提供此類電路。而且,邏輯可包 括存儲在存儲媒體中的機器可讀指令,所述存儲媒體與處理器或其它處理電路組合以執(zhí)
行此類機器可讀指令。然而,這些僅僅是可提供邏輯的結(jié)構(gòu)的實例,且所主張的主題在 這些方面不受限制。
除非另外具體規(guī)定,否則如從以下論述內(nèi)容中所明了,將了解本說明書中利用例如 "處理"、"計算"、"選擇"、"形成"、"啟用"、"抑制"、"識別"、"起始"、"詢問"、"獲 得"、"維持"、"表示"、"修改"、"接收"、"傳輸"、"存儲"、"認(rèn)證"、"授權(quán)"、"代管"、 "確定"和/或類似術(shù)語的術(shù)語的論述內(nèi)容涉及可由計算平臺(例如,計算機或類似的電 子計算裝置)執(zhí)行的動作和/或過程,所述計算平臺操縱和/或轉(zhuǎn)變所述計算平臺的處理器、 存儲器、寄存器和/或其它信息存儲、傳輸、接收和/或顯示裝置內(nèi)的表示為物理、電子和 /或磁性量和/或其它物理量的數(shù)據(jù)。因此,計算平臺是指包含處理和/或存儲信號形式的 數(shù)據(jù)的能力的系統(tǒng)或裝置。因此,在此上下文中,計算平臺可包括硬件、軟件、固件和/ 或其任何組合。此外,除非另外具體規(guī)定,否則本文中參看流程圖或以另外方式描述的 過程也可由計算平臺整體或部分地執(zhí)行和/或控制。
本文提及的"計算機程序"涉及指令的經(jīng)組織的列表,所述指令如果被執(zhí)行就會導(dǎo) 致或促使計算機、計算裝置和/或機器以特定方式運作。這里舉例來說,計算機程序可包 括可經(jīng)執(zhí)行以執(zhí)行一個或一個以上所需任務(wù)的機器可讀指令。在一個特定實施例中,盡 管所主張的主題在此方面不受限制,但計算機程序可定義輸入數(shù)據(jù)和輸出數(shù)據(jù),使得程 序的執(zhí)行可至少部分基于輸入數(shù)據(jù)而提供輸出數(shù)據(jù)。然而,這些僅僅是計算機程序的實 例,且所主張的主題在這些方面不受限制。
在以下描述和/或權(quán)利要求書中,可使用術(shù)語耦合和/或連接以及其派生詞。在特定實 施例中,連接可用于指示兩個或兩個以上元件彼此直接實體接觸和/或電接觸。耦合可表 示兩個或兩個以上元件直接實體接觸和/或電接觸。然而,耦合也可表示兩個或兩個以上 元件可能彼此沒有直接接觸,但仍可彼此協(xié)作和/或相互作用。
如本文所使用,術(shù)語"和/或"可表示"和",其可表示"或",其可表示"互斥或", 其可表示"一者",其可表示"某些但并非全部",其可表示"任一者均不",且/或其可 表示"兩者",但所主張的主題在此方面不受限制。
如本文所使用,術(shù)語"渲染"和/或"再渲染"表示包含用于基于存儲在計算平臺內(nèi) 的三維數(shù)據(jù)而產(chǎn)生圖像的各種各樣技術(shù)中的任一者。以上術(shù)語也可表示借助于軟件程序 從模型產(chǎn)生圖像的過程,但所主張的主題的范圍在此方面不受限制。模型可包括數(shù)據(jù)結(jié) 構(gòu)中3D對象的描述。模型可包括幾何形狀、視點、表面和/或光照信息。這些僅僅是模 型的實例,且所主張的主題的范圍在此方面不受限制。以上術(shù)語也可用于描述計算視頻
編緝文件中的效果以產(chǎn)生最終視頻輸出的過程。
此外,如本文所使用,術(shù)語"遮影器"和/或"遮影"可指代在3D計算機圖形中用 于確定對象或圖像的表面性質(zhì)的任何過程。遮影器可利用關(guān)于光吸收、漫射、紋理映射、 反射、折射、成影等的信息。"遮影"可進一步指代對象表面的顏色和亮度可如何隨著光 照而變化。這些僅僅是遮影的實例,且所主張的主題在此方面不受限制。
同樣,如本文所使用,術(shù)語"光柵化"可指代3D對象轉(zhuǎn)換為像素以最終輸出到顯示 裝置所借助的任何過程。對于一個或一個以上實施例,光柵化和/或再光柵化操作可由圖 形處理單元執(zhí)行,但所主張的主題在此方面不受限制。
另外,本文使用的術(shù)語"高速緩沖存儲器"表示包含能夠存儲在渲染過程中使用的 信息的任何數(shù)據(jù)結(jié)構(gòu)。"對象索引化"高速緩沖存儲器可包括可以逐個對象為基礎(chǔ)進行索 引化的數(shù)據(jù)結(jié)構(gòu)。也就是說,可根據(jù)信息與哪一對象相關(guān)聯(lián)來組織和/或存取存儲在高速 緩沖存儲器中的信息。如本文使用的對象索引化高速緩沖存儲器也可稱為"柵格高速緩 沖存儲器"。術(shù)語"柵格"可指代在鑲嵌或切割操作之后與對象相關(guān)聯(lián)的點的柵格。
對于一個或一個以上實施例,對象索引化高速緩沖存儲器可包括能夠保持渲染結(jié)果 (或許是對象遮影結(jié)果)的任何數(shù)據(jù)結(jié)構(gòu),其中每一結(jié)果可能伴隨有可能影響所述結(jié)果 的計算的零或更多輸入值的列表。如果針對與存儲在高速緩沖存儲器中的輸入值匹配的 輸入值,需要特定的渲染結(jié)果,那么可從高速緩沖存儲器快速檢索正確結(jié)果,因此節(jié)省 了再計算結(jié)果的時間。
對于一個或一個以上實施例,可不將存儲器査找操作高速緩沖存儲在對象索引化高 速緩沖存儲器中??筛咚倬彌_存儲最終和/或中間渲染結(jié)果。對于一示范性實施例,對象 索引化高速緩沖存儲器可包括含有先前計算出的渲染結(jié)果的表。如果在幀的渲染期間需 要渲染結(jié)果,那么可確定所需要的結(jié)果是否存在于高速緩沖存儲器中。如果所需的結(jié)果 存在,那么可比所需結(jié)果不存在時可能花費的時間更快地完成幀的渲染。如果所需的結(jié) 果不存在于高速緩沖存儲器中,那么可計算所需的結(jié)果并可將計算出的結(jié)果存儲在高速 緩沖存儲器中以供可能在后續(xù)渲染操作中使用。
對于一實施例,如果存儲器資源的情況是高速緩沖存儲器空間有限,那么可丟棄存 儲在高速緩沖存儲器中的較老的信息,以便存儲較新的信息。此外,對于一些實施例, 如果發(fā)生影響所存儲信息的有效性的事件,那么可使高速緩沖存儲器條目失效。可丟棄 失效的信息,且如果在后續(xù)渲染操作中需要,可再計算失效的信息。舉例來說,如果光 照參數(shù)改變,那么可丟棄受所述改變影響的高速緩沖存儲的結(jié)果。在光照參數(shù)改變之后
可發(fā)生再渲染,且可再計算先前丟棄的結(jié)果。對于一實施例,每一高速緩沖存儲器條目 可存儲對象名和對象渲染結(jié)果(例如,顏色),還有所述結(jié)果所依據(jù)的輸入信息的列表。 同樣,對于一個或一個以上實施例,含有計算出的渲染結(jié)果的對象索引化高速緩沖存儲 器可存儲在系統(tǒng)存儲器和/或圖形存儲器中。對象索引化高速緩沖存儲器也可存儲在非易 失性存儲裝置(例如,磁盤驅(qū)動器)上。以上僅僅是可如何組織對象索引化高速緩沖存 儲器和何種類型的信息可存儲在對象索引化高速緩沖存儲器上以及在渲染過程中可如何 利用此類信息的實例,且所主張的主題的范圍在這些方面不受限制。
圖l是計算平臺100的示范性實施例的方框圖。計算平臺100可包括CPU 110和耦 合到CPU 110的存儲器控制器集線器120。存儲器控制器集線器120進一步耦合到系統(tǒng) 存儲器130,耦合到圖形處理單元(GPU) 150,且耦合到輸入/輸出集線器140。 GPU 150 進一步耦合到顯示裝置160,顯示裝置160可包括CRT顯示器、平板LCD顯示器、投影 儀或其它類型的顯示裝置。圖形存儲器170也耦合到GPU 150。平臺100還可包括可能 耦合到輸入/輸出集線器140的一個或一個以上存儲媒體讀取裝置(未圖示)。
盡管示范性系統(tǒng)100圖示為具有組件的特定配置,但使用各種各樣配置中的任一種 的其它實施例是可能的。舉例來說,利用多個CPU和/或GPU的實施例是可能的。此外, 可在各種各樣電子裝置中的任一種中利用本文描述的示范性實施例,所述電子裝置包含 (但不限于)計算平臺、游戲控制臺和裝置等。此外,對于一些實施例,多個計算平臺 可經(jīng)耦合以共同操作來執(zhí)行本文描述的再光照加速技術(shù)。
圖2是包括光源220、 230和240以及多個三維對象250、 260和270的示范性場景 的圖。盡管場景200意圖表示3D圖像場景,但為了便于說明和簡化論述,在二維中說明 場景200。圖2中還描繪相機210 (表示觀看點)和圖像平面280, 3D對象可在光柵化過 程期間以算術(shù)方式投影到所述圖像平面280上。平截頭體線211意圖說明場景200的視 見平截頭體的邊界。
對于此示范性場景,可對3D對象250、 260和270進行鑲嵌(切割)以產(chǎn)生點的網(wǎng) 柵格。各個對象的點可稱為離散化的。圖2中描繪一些示范性點,包含點251、 262和 264。
一般來說,渲染可認(rèn)為是兩部分的過程。對于一個部分,可解決可見性問題。舉例 來說,對于給定的觀看點(對于此實例,由相機210說明), 一些對象或?qū)ο蟮牟糠挚赡?被阻擋。類似地,各個光源可能會或可能不會影響每一對象的每一點。解決可見性問題 可考慮對象和光源的位置及關(guān)系,以及觀看點。舉例來說,對象260上的若干點對于光
源中的一者或一者以上來說可能是不可見的。舉例來說,參看點262和264,其中點262 對光230來說不可見,而點264可見。如果光230從位置A移動到位置B,那么暴露于 所述光的點集合可能改變。如果光230處于位置B,那么點262對于光230來說可見, 而點264不可見。
對于此示范性場景,用虛線說明對象250、 260和270的從相機的觀看點被阻擋的部 分。類似地用虛線標(biāo)記對象的落在視見平截頭體外部的部分。還用虛線標(biāo)記光射線的由 對象阻斷的部分。
對于渲染過程的第二部分,可確定/計算每一像素(投影到圖像平面280上)的顏色。 遮影過程可考慮關(guān)于各個對象表面上的顏色和/或紋理圖案、強度、位置和顏色或光源、 對象的相對接近度等的信息。當(dāng)然,這些僅僅是在渲染過程中可使用的信息類型的實例。
圖3是交互式再光照過程的示范性實施例的圖。在方框310處,可對幀進行渲染。 在方框320處,可對幀作出修改,在此實例中可能為對一個或一個以上光照參數(shù)作出修 改。改變可由技術(shù)員指定,例如光照技術(shù)員、動畫師或其它用戶。在方框330處可進行 處理以準(zhǔn)備幀(包含經(jīng)修改的光照參數(shù))來進行渲染,且在方框310處可使用經(jīng)修改、 經(jīng)處理的光信息進行新的渲染。所述循環(huán)可視需要重復(fù)許多次,直到技術(shù)員對結(jié)果滿意 為止。
圖4是用于加速幀的再光照的方法的示范性實施例的流程圖。在方框410處,可發(fā) 生幀的渲染。此渲染可包括幀的初始渲染。對于初始渲染,可確定哪一對象或?qū)ο蟮哪?些部分可見以及執(zhí)行其它渲染操作。初始渲染也可包括場景數(shù)據(jù)的初始導(dǎo)入。初始渲染 的一些或全部結(jié)果可存儲在一個或一個以上柵格高速緩沖存儲器450中。
在方框420處,可對一個或一個以上光照參數(shù)作出修改。在方框430處可進行處理 以在方框440處準(zhǔn)備幀來進行再渲染。然而,對于再渲染,如果僅一個或一些光被移動 或以另外的方式改變,那么僅再執(zhí)行受所述改變影響的計算。對于未受光照改變影響的 計算,使用存儲在柵格高速緩沖存儲器450中的一者或一者以上中的信息,借此顯著減 少執(zhí)行再渲染所需的計算量。舉例來說,因為改變僅涉及一個或一個以上光(相機未移 動),所以不必要再執(zhí)行在初始渲染時執(zhí)行的可見性操作。
因此,對于此示范性實施例和其它示范性實施例,通過僅再發(fā)送用于再渲染的光(不 再導(dǎo)出和再讀取整個場景),不考慮在初始渲染中不可見的對象(關(guān)于哪些對象可見和哪 些對象不可見的信息可存儲在一個或一個以上柵格高速緩沖存儲器中),以及高速緩沖存 儲各個遮影操作的值,使得僅需要再計算受光照改變影響的操作,且其它操作可再使用 其來自先前渲染的結(jié)果,可節(jié)省工作和時間。以此方式,具有顯著改進的性能和/或效率 的完全特征化的、很大程度上為交互式的再渲染是可能的。對于此實施例和其它實施例, 經(jīng)加速的再渲染在像素與像素之間可與完全渲染相同(所得的圖像可能相同)。
圖5是用于加速幀的再光照的方法的額外示范性實施例的流程圖。對于此示范性實 施例,在方框510處可讀取場景數(shù)據(jù)。在方框520處,可對場景的對象執(zhí)行切割(鑲嵌) 操作。在方框530處,可執(zhí)行遮影操作,且在方框540處可對圖像進行光柵化。在方框 550處,可指定對一個或一個以上光照或遮影參數(shù)的改變。接著處理可返回方框530。不 是再執(zhí)行步驟530的全部內(nèi)容,而是再執(zhí)行因改變的參數(shù)而成為必要的操作,因此節(jié)省 了時間并改進了效率。根據(jù)所主張的主題的實施例可包含方框510-550的全部、多于全 部或少于全部。此外,方框510-550的次序僅僅是一種示范性次序,且所主張的主題的 范圍在此方面不受限制。
圖6是用于加速幀的再渲染的方法的示范性實施例的流程圖。在方框610處,可將 與幀的渲染相關(guān)聯(lián)的對象信息存儲在對象索引化高速緩沖存儲器中,且在方框620處, 可修改光照參數(shù)。在方框630處,可使用存儲在對象索引化高速緩沖存儲器中的對象信 息的至少一子集來對幀進行再渲染。根據(jù)所主張的主題的實施例可包含方框610-630的 全部、多于全部或少于全部。此外,方框610-630的次序僅僅是一種示范性次序,且所 主張的主題的范圍在此方面不受限制。
圖7是用于加速幀的再光照和再渲染的方法的額外示范性實施例的流程圖。在方框 710處,可使多個點離散化,其中所述多個點對應(yīng)于幀的一個或一個以上對象。在方框 720處,可修改光照參數(shù)。在方框730處,可確定所述多個點中哪些點受到光照參數(shù)的 修改影響,且在方框740處,可確定針對受影響的點而再計算哪些操作。在方框750處, 可對幀進行再光柵化。根據(jù)所主張的主題的實施例可包含方框710-750的全部、多于全 部或少于全部。此外,方框710-750的次序僅僅是一種示范性次序,且所主張的主題的 范圍在此方面不受限制。
圖8是用于加速幀的再光照的方法的示范性實施例的流程圖,所述方法包括將與幀 的渲染相關(guān)聯(lián)的對象信息存儲在對象索引化高速緩沖存儲器中。在方框810處,可將對 象信息存儲在對象索引化高速緩沖存儲器中。對象信息可包括中間遮影結(jié)果。在方框820 處,可修改光照參數(shù)。在方框830處,可再計算受到光照參數(shù)的修改影響的對象信息。 在方框840處,可使用再計算出的對象信息與經(jīng)高速緩沖存儲的中間遮影結(jié)果的組合來 對幀進行再渲染。根據(jù)所主張的主題的實施例可包含方框810-840的全部、多于全部或
少于全部。此外,方框810-840的次序僅僅是一種示范性次序,且所主張的主題的范圍 在此方面不受限制。
圖9是描繪與對象上一點相關(guān)聯(lián)的多個光的示范性信息塊的圖。對于此示范性實施 例,示范性點包括點251。圖9中描繪的信息塊表示可存儲在高速緩沖存儲器中的與對 象250 (且特定來說,點251)相關(guān)聯(lián)的可能的信息。方框910可包括表面圖案信息。光 方框920可包括與光源220有關(guān)的信息,光方框930可包括與光源230有關(guān)的信息,且 光方框940可包括與光源240有關(guān)的信息。光源中的每一者均可具有與其相關(guān)聯(lián)的陰影 地圖信息??稍谟布④浖蛴布c軟件的組合中實施組合單元950。再次參看圖2,在 場景200的初始渲染之后,光源230可從位置A移動到位置B。對于此實例,在光改變 之后執(zhí)行場景的再渲染時,再計算受到光改變影響的點和計算。對于此實例,對于點251, 表面圖案信息和光220與240的信息沒有受到光照改變影響。因此,可將來自方框910、 920和940的信息提供到組合單元950。然而,與光源230相關(guān)聯(lián)的光方框930可包括受 到光照改變影響的信息,且可再計算存儲在方框930處的信息的至少一子集??蓪⒃儆?算的信息提供到組合單元950,組合單元950可產(chǎn)生點251的顏色數(shù)據(jù)。圖9中描繪的 示范性數(shù)據(jù)組織僅僅是示范性組織,且所主張的主題在此方面不受限制。
圖IO是柵格高速緩沖存儲器1000的示范性實施例的方框圖。如先前所提及,術(shù)語 "柵格高速緩沖存儲器"可指代可根據(jù)一個或一個以上對象和/或?qū)ο蟮狞c而索引化的數(shù) 據(jù)結(jié)構(gòu)。對于此實例,柵格高速緩沖存儲器1000可包括遮影器輸入數(shù)據(jù)1010和遮影器 輸出及中間結(jié)果數(shù)據(jù)1020。遮影器輸入數(shù)據(jù)1010可包括關(guān)于對象的位置、法線信息、 顏色參數(shù)等的信息。遮影器輸出及中間結(jié)果數(shù)據(jù)1020可包括顏色信息、光控制參數(shù)信息、 大量計算的結(jié)果、檢驗點(check-pointing)信息等。與本文描述的實施例有關(guān)的高速緩 沖存儲器可(例如)存儲在圖形存儲器、系統(tǒng)存儲器和/或非易失性存儲裝置(例如,硬 盤驅(qū)動器)中,或存儲在以上的組合中。當(dāng)然,這僅僅是柵格高速緩沖存儲器的一個可 能實例,且所主張的主題的范圍在此方面不受限制。
對于一實施例,除了高速緩沖存儲個別光和/或預(yù)光照表面圖案的最終結(jié)果外,還可 高速緩沖存儲個別遮影器操作的結(jié)果。另外,對于一示范性實施例,可由軟件開發(fā)商指 定將高速緩沖存儲的指令的種類。對于一些實施例,可由用戶指定將高速緩沖存儲的指 令的種類。關(guān)于將高速緩沖存儲哪些種類的指令的確定可基于用戶偏好和/或計算平臺資 源可用性(例如,可用的存儲器)。可預(yù)定所述確定,或可動態(tài)和/或自動地作出所述確 定,這可能取決于可用的資源。對于一些實施例,可能有利的是高速緩沖存儲因尤其耗
時且/或耗費資源而花費較多的指令。舉例來說,可高速緩沖存儲紋理査找操作的結(jié)果。 并且對于一些實施例,可高速緩沖存儲特定指令和/或特定參數(shù)。這些僅僅是可高速緩沖 存儲的信息種類和/或可如何作出確定的實例,且所主張的主題的范圍在這些方面不受限 制。
對于一個或一個以上實施例,可由通過串接?xùn)鸥顸c的指令的所有輸入?yún)?shù)產(chǎn)生的名 稱來識別高速緩沖存儲器和/或高速緩沖存儲器條目。然而,這僅僅是可如何識別高速緩 沖存儲器或高速緩沖存儲器條目的實例,且所主張的主題的范圍在此方面不受限制。
一些實施例可采用將高速緩沖存儲的操作的優(yōu)先列表。所述列表可在高優(yōu)先權(quán)操作 到低優(yōu)先權(quán)操作的范圍內(nèi)變動。高優(yōu)先權(quán)操作可包括計算時尤其耗時的那些操作,且低 優(yōu)先權(quán)操作可包括再計算時相對較快的那些操作。在高優(yōu)先權(quán)級與低優(yōu)先權(quán)級之間可能 存在各種各樣的中間優(yōu)先權(quán)級。此優(yōu)先操作的列表可包括高速緩沖存儲器的計算與存儲 器折衷的按比例增減。舉例來說,當(dāng)存儲器資源變得較為不足時,可自動再計算而不是 高速緩沖存儲較低優(yōu)先權(quán)操作中的較多者??勺詣哟_定再計算哪些操作和高速緩沖存儲 哪些操作,或者在其它實施例中,用戶可指定高速緩沖存儲以及再計算哪些優(yōu)先權(quán)級的 操作。可在軟件應(yīng)用程序中向用戶提供菜單項,通過所述菜單項用戶可指示他或她的關(guān) 于高速緩沖存儲哪些操作的偏好。
圖11是用于確定項目的優(yōu)先列表中哪些項目將被高速緩沖存儲的方法的示范性實施 例的流程圖。在方框1110處,確定與渲染操作相關(guān)聯(lián)的可能可高速緩沖存儲的項目的優(yōu) 先列表中哪些項目將被高速緩沖存儲。如上所述,所述確定可基于多種考慮,包含(但 不限于)計算平臺資源(例如存儲器)的可用性。此上下文中的術(shù)語"項目'"意圖包含 可存儲在高速緩沖存儲器中的任何信息,包含以上描述的信息類型?;ㄙM較多的操作(耗 時和/或耗費資源)可被給定頂級優(yōu)先權(quán),且可被高速緩沖存儲,而較低優(yōu)先權(quán)操作(可 容易地再計算的操作)在某些情況下(例如,在存儲器資源不足的情況下)可能不會被 高速緩沖存儲。
在方框1120處,將經(jīng)選擇用于高速緩沖存儲的優(yōu)先項目存儲在對象索引化高速緩沖 存儲器中。在方框1130處,可修改光照參數(shù),且在方框1140處,可使用存儲在對象索 引化高速緩沖存儲器中的項目的至少一子集來對幀進行再渲染。根據(jù)所主張的主題的實 施例可包含方框1110-1140的全部、多于全部或少于全部。此外,方框1110-1140的次序 僅僅是一種示范性次序,且所主張的主題的范圍在此方面不受限制。
在某些情況下高速緩沖存儲器和/或高速緩沖存儲器條目可(例如)至少部分依據(jù)外
部文件,例如陰影地圖。對于一實施例,如果外部文件經(jīng)修改,那么可自動再計算依據(jù) 所述外部文件的指令。
圖12是用于再計算依據(jù)經(jīng)修改的外部文件的對象信息的方法的示范性實施例的流 程圖。在方框1210處,可確定存儲在對象索引化高速緩沖存儲器中的對象信息是否依據(jù) 外部文件。如果無對象信息依據(jù)外部文件,那么處理進行到方框1240。如果存儲在對象 索引化高速緩沖存儲器中的對象信息確實依據(jù)外部文件,那么在方框1220處確定外部文 件是否己被修改。如果外部文件未被修改,那么處理進行到方框1240。如果外部文件己 被修改,那么在方框1230處再計算依據(jù)經(jīng)修改的文件的對象信息。在方框1240處,使 用經(jīng)再計算的遮影操作與存儲在高速緩沖存儲器中的信息的組合對幀進行再渲染。根據(jù) 所主張的主題的實施例可包含方框1210-1240的全部、多于全部或少于全部。此外,方 框1210-1240的次序僅是一種示范性次序,且所主張的主題的范圍在此方面不受限制。
當(dāng)光照技術(shù)員或其它用戶正對場景的光或其它元素作出改變時,常見的情況是,技 術(shù)員將在他或她對結(jié)果滿意之前對光或其它元素作出若干改變。如果技術(shù)員必須在改變 之間等待完全保真度,那么所述過程可能非常耗時。本文描述的再渲染加速技術(shù)和方法 可使所述過程耗時更少。對于一些實施例,可通過場景的漸進精細(xì)化而更進一步地加速 所述過程。如本文所使用,術(shù)語"漸進精細(xì)化"意謂包括用于初始地以小于完全保真度 顯示場景,接著進行場景的較高保真度或完全保真度表現(xiàn)的技術(shù)。利用漸進精細(xì)化,技 術(shù)員可能能夠從場景的較低保真度型式中確定最近的變化是否可能令人滿意。這一確定 可以非常及時的方式進行,而不是等待較高保真度或完全保真度型式。
對于一示范性實施例,與完全保真度渲染的可能的情況相比,較低保真度表現(xiàn)可基 于已被更粗略地切割的場景。換句話說,與完全保真度渲染的將出現(xiàn)的情況相比,用于 較低保真度表現(xiàn)的場景的每一對象可被離散化為較少的點。對于一實施例,較低保真度 場景的最終光柵化可以完全像素分辨率發(fā)生。對于其它實施例,可通過限制像素分辨率 和/或通過消除例如防混疊和/或模糊的一些功能來進一步加速較低分辨率渲染。通過維持 較低保真度渲染的完全像素分辨率,可避免較低像素分辨率顯示器的固有斑駁外觀,從 而為技術(shù)員提供對完全保真度渲染可能外觀的更好主意。
對于一些實施例,可顯示較低保真度渲染,且隨后可將較高保真度渲染疊加在較低 保真度顯示之上。較高保真度渲染可隨著較高保真度區(qū)域變得可用而逐個區(qū)域地代替較 低保真度型式,直到已以較高保真度型式更新整個顯示為止。舉例來說,在一個實施例 中,可從頂部向底部、或從底部向頂部、或從左向右、或從右向左更新顯示,或者可首
先在由技術(shù)員指定的區(qū)域發(fā)生更新。當(dāng)然,這些僅是可如何以較高保真度顯示更新較低 保真度顯示的實例,且所主張的主題的范圍在這些方面不受限制。此外,對于一些實施 例,用戶可在任何點中斷再渲染過程(不管是較低保真度還是較高保真度)。
如本文所使用,術(shù)語"區(qū)域"意謂指代場景、幀和/或顯示的任何子集。區(qū)域可包括 各種各樣的形狀和/或大小中的任一者。區(qū)域可包括像素、對象和/或其它數(shù)據(jù)結(jié)構(gòu)。
對于一些實施例,用戶可指定首先再渲染場景或幀的哪些區(qū)域。舉例來說,用戶可 指定首先再渲染幀的矩形部分?;蛘?,在另一實施例中,用戶可指定幀的坐標(biāo)(也許通 過使用指點裝置選擇顯示器上的一點),且可渲染緊鄰圍繞選定的坐標(biāo)的區(qū)域,且接著可 渲染從所述坐標(biāo)以螺旋樣式延伸出的幀的其它區(qū)域。對于一個實施例,可針對整個幀執(zhí) 行幀的較低優(yōu)先權(quán)渲染,接著可在用戶指定的區(qū)域或點處開始幀的較高優(yōu)先權(quán)渲染。然 而,這些僅是幀的區(qū)域可被渲染的次序的實例,且所主張的主題的范圍在這些方面不受 限制。
為了利用通過本文描述的技術(shù)和方法而成為可能的再渲染加速特性,可存儲任何特 定場景的兩個副本。 一個副本可表示場景的較低保真度型式,且另一副本可表示較高和/ 或完全保真度型式。所述副本中的每一者可維持如上所述的對象索引化高速緩沖存儲器 以實現(xiàn)場景的加速再渲染。
"盡管對于以上示范性實施例,論述了兩個保真度級別(以及兩個相應(yīng)的場景副本), 但所主張的主題的范圍并不限于此,且其它實施例可利用少于或多于兩個保真度級別。
圖13是執(zhí)行較低保真度渲染的方法的示范性實施例的流程圖。在方框1310處,將 與幀的較低保真度渲染相關(guān)聯(lián)的對象信息存儲在第一對象索引化高速緩沖存儲器中。在 方框1320處,可將與幀的較高保真度渲染相關(guān)聯(lián)的對象信息存儲在第二對象索引化高速 緩沖存儲器中。在方框1330處,可修改光照參數(shù),且在方框1340處,可使用存儲在第 一對象索引化高速緩沖存儲器中的對象信息的至少一子集來執(zhí)行幀的較低保真度渲染。 根據(jù)所主張的主題的實施例可包含方框1310-1340的全部、多于全部或少于全部。此外, 方框1310-1340的次序僅是一種示范性次序,且所主張的主題的范圍在此方面不受限制。
圖14是漸進地使場景的渲染精細(xì)化的方法的示范性實施例的流程圖。在方框1410 處,存儲場景的較低保真度和較高保真度型式。可將與場景的所述兩種型式相關(guān)聯(lián)的對 象信息存儲在對象索引化高速緩沖存儲器中。在方框1420處,可從用戶接收顯示區(qū)域優(yōu) 先權(quán)信息。來自用戶的優(yōu)先權(quán)信息可包括關(guān)于將首先以較高保真度渲染哪個或哪些區(qū)域 的指示。上文描述了用于對區(qū)域區(qū)分優(yōu)先的一些可能的方案,但所主張的主題的范圍在
這些方面不受限制。在方框1430處,可執(zhí)行場景的較低保真度渲染,且在方框1440處, 可以較高保真度渲染最高優(yōu)先權(quán)區(qū)域。在方框1450處,可同樣以較高保真度渲染下一較 低優(yōu)先權(quán)區(qū)域。在方框1460處,可確定是否已渲染最后的區(qū)域。如果沒有,那么處理返 回方框1450,其中渲染下一較低優(yōu)先權(quán)區(qū)域。如果已渲染最后的區(qū)域,那么處理結(jié)束。 根據(jù)所主張的主題的實施例可包含方框1410-1460的全部、多于全部或少于全部。此外, 方框1410-1460的次序僅是一種示范性次序,且所主張的主題的范圍在此方面不受限制。
如上所述,對于一些實施例,用戶可指示首先渲染場景的哪個區(qū)域,或哪些區(qū)域具 有較高優(yōu)先權(quán)。對于一些實施例,用戶可中斷渲染并選擇和/或再選擇接著要渲染的區(qū)域。 舉例來說,用戶可對光照參數(shù)作出改變,且用戶可能希望在幀的特定區(qū)域中看到光照改 變的效果。用戶可初始地選擇要首先渲染的區(qū)域。對于一些實施例,用戶也可稍后選擇 幀的接著要渲染的另一區(qū)域。也就是說,用戶可中斷當(dāng)前渲染操作,并對幀的各個區(qū)域 將發(fā)生渲染的次序再區(qū)分優(yōu)先。
除了對幀的各個區(qū)域?qū)l(fā)生渲染的次序再區(qū)分優(yōu)先外,對于一個或一個以上實施例, 用戶可在任何點中斷渲染并對光照參數(shù)作出改變。接著對于一些實施例,渲染操作可自 動重新開始,或在其它實施例中可手動重新開始,且再次,用戶可具有對幀的區(qū)域?qū)⒈?渲染的次序區(qū)分優(yōu)先的能力。
對于一示范性實施例,可在任何點中斷幀的渲染(不論是初始渲染還是再渲染)。舉 例來說,對于一些實施例,可在幀的初始渲染期間初始化一個或一個以上對象索引化高 速緩沖存儲器。對于一示范性實施例,用戶可在初始渲染期間在己創(chuàng)建所有高速緩沖存 儲器之前作出光照改變。響應(yīng)于光照參數(shù)的變化,可使用在幀的初始渲染(此實例中為 部分渲染)期間創(chuàng)建的高速緩沖存儲器而發(fā)生再渲染操作。再渲染操作也可初始化在幀 的初始渲染期間未被初始化的額外高速緩沖存儲器。
對于一個實例,幀的渲染(可以是初始渲染或再渲染)可以場景的較低保k度表現(xiàn)
開始,如上所述。用戶可能能夠從較低保真度顯示中辨別出可能需要光照改變。用戶可 在不等待完全保真度渲染完成的情況下作出所述改變。對于一實施例,用戶可每當(dāng)需要 時中斷幀的渲染,且渲染操作可響應(yīng)于光照參數(shù)的改變而自動重新開始。對于一實施例, 渲染操作可手動重新開始。對于一些實施例且如上所述,可確定哪些操作受到光照參數(shù) 改變的影響,且可對那些操作進行再計算,同時可從適當(dāng)高速緩沖存儲器中檢索未受影 響的操作的結(jié)果。在一些情況下,如果用戶在已針對一個或一個以上操作創(chuàng)建高速緩沖 存儲器之前中斷渲染,那么也可計算那些操作并創(chuàng)建適當(dāng)?shù)膶ο笏饕咚倬彌_存儲器。
當(dāng)然,這些僅是中斷幀的渲染的實例,且所主張的主題的范圍在這些方面不受限制。
圖15是描繪通過較低保真度和較高保真度過程渲染的場景的示范性顯示1500的圖。 對于此實例,也許根據(jù)上述實施例,場景已初始地使用較低保真度過程進行了渲染。可 執(zhí)行此實例的較高保真度渲染,其在場景的頂部處開始并沿著顯示向下進行,如圖中由 水平虛線1515和相關(guān)聯(lián)的箭頭所描繪。對于此實例,線1515上方的區(qū)域1510已以較高 保真度進行了再渲染。線1515下方的區(qū)域1520表示先前己以較低保真度渲染且正等待 較高保真度渲染的區(qū)域。顯示1500的交叉影線部分意謂描繪具有由較高保真度渲染產(chǎn)生 的增加的表面細(xì)節(jié)的區(qū)域。
如先前所論述,對于一些實施例,用戶可對渲染過程再區(qū)分優(yōu)先或中斷渲染過程。 舉例來說,用戶可對一個或一個以上光照參數(shù)作出改變。對于此實例,當(dāng)前處理中的渲 染可停止并響應(yīng)于光照參數(shù)的改變而重新開始?;蛘?,作為另一實例,用戶可能需要集 中于顯示的特定區(qū)域,且可在渲染剩余區(qū)域之前引導(dǎo)對所述區(qū)域執(zhí)行較高保真度渲染。 對于圖15中描繪的實例,當(dāng)較高保真度渲染正在進行時,用戶可選擇區(qū)域1522。可將 區(qū)域1522視為高優(yōu)先權(quán)區(qū)域,且可在低保真度顯示區(qū)域1520內(nèi)的剩余區(qū)域之前對區(qū)域 1522進行處理。 一旦己以較高保真度渲染區(qū)域1522,那么對于此實例,渲染過程可繼續(xù) 其從頂部向底部模式。用戶接著可能需要再次中斷從頂部向底部模式,且可選擇接下來 處理區(qū)域1524。用戶可繼續(xù)中斷渲染過程任何次數(shù),以對參數(shù)范圍(包含但不限于光照 參數(shù))中的任一者作出改變,或?qū)︼@示的區(qū)域?qū)⒈讳秩镜拇涡蛟賲^(qū)分優(yōu)先。
盡管圖15的實例描繪對區(qū)域進行從頂部向底部處理,且盡管用戶選擇的高優(yōu)先權(quán)區(qū) 域展示為矩形區(qū)域,但這些僅是實例,且所主張的主題的范圍在這些方面不受限制。
圖16是中斷幀的渲染的方法的示范性實施例的流程圖。在方框1610處,可將與幀 的渲染相關(guān)聯(lián)的對象信息存儲在對象索引化高速緩沖存儲器中-在方框1620處,可中斷 渲染過程,且在方框1630處,可使用存儲在對象索引化高速緩沖存儲器中的對象信息的 至少一子集來對幀進行再渲染。根據(jù)所主張的主題的實施例可包含方框1610-1630的全 部、多于全部或少于全部。此外,方框1610-1630的次序僅是一種示范性次序,且所主 張的主題的范圍在此方面不受限制。
圖17是中斷幀的渲染并對幀進行再渲染的方法的示范性實施例的流程圖。對于此實 例,處理可開始于方框1705處,其中如所指示,可為當(dāng)前區(qū)域'分配高速緩沖存儲器。對 于此實例,可將待渲染的場景劃分為許多區(qū)域。所述區(qū)域的每一者可具有與其相關(guān)聯(lián)的 一個或一個以上(或無)對象。對象索引化高速緩沖存儲器可與所述對象相關(guān)聯(lián),如先前所論述。對于此實例,可能需要為幀的初始渲染分配高速緩沖存儲器(在幀的初始渲 染之前可能未建立高速緩沖存儲器)。在方框1710處,作為渲染過程的一部分,可計算 對象信息(也許包含中間遮影結(jié)果和/或其它信息)并將其存儲在一個或一個以上高速緩 沖存儲器中。在方框1715處,可確定是否已渲染所有區(qū)域。如果是,那么處理結(jié)束。如 果有區(qū)域剩余,那么處理可進行到方框1725,其中可確定用戶是否已請求中斷渲染操作。 如果渲染尚未中斷,那么在方框1720處,處理可針對下一區(qū)域開始,且圖17的示范性 過程可返回方框1705。
對于此實例,如果用戶己請求中斷渲染操作(例如,不論是對光照參數(shù)作出改變和/ 或是對區(qū)域?qū)⒈讳秩镜拇涡蛟賲^(qū)分優(yōu)先),那么在方框1727處可從用戶接收光照參數(shù)和/ 或區(qū)域優(yōu)先權(quán)信息,且在方框1730處可開始再渲染過程,其中可針對最高優(yōu)先權(quán)區(qū)域進 行處理。最高優(yōu)先權(quán)區(qū)域可以是預(yù)定的,或可由用戶選擇,或可以是先前中斷的渲染過 程中待渲染的下一區(qū)域。當(dāng)然,這些僅是可如何確定最高優(yōu)先權(quán)區(qū)域的實例,且所主張 的主題的范圍在這些方面不受限制。
在方框1735處,對于當(dāng)前區(qū)域,如果先前未分配高速緩沖存儲器或如果需要額外的 高速緩沖存儲器,那么可分配高速緩沖存儲器。如先前所論述,高速緩沖存儲器可包括 對象索引化高速緩沖存儲器。在方框1740處,可使用經(jīng)高速緩沖存儲的對象信息和/或 再計算的信息來渲染/再渲染當(dāng)前區(qū)域,且在方框1745處,可將計算和/或再計算的信息 高速緩沖存儲在一個或一個以上先前分配的對象索引化高速緩沖存儲器中。在方框1750 處,如果有剩余區(qū)域要渲染,那么可在方框1755處開始下一區(qū)域的處理,且可在方框 1735處繼續(xù)渲染操作。如果沒有剩余區(qū)域要渲染,那么處理結(jié)束。根據(jù)所主張的主題的 實施例可包含方框1705-1750的全部、多于全部或少于全部。此外,方框1705-1750的次 序僅是一種示范性次序,且所主張的主題的范圍在此方面不受限制。
圖18是包括光源1820、對象1830和對象1840的示范性場景1800的方框圖。描繪 相機1810以便說明此實例的相機的可能的觀看點。場景1800意謂表示3D圖形場景,其 具有包括球體的對象1830和1840,但當(dāng)然,所主張的主題的范圍在此方面不受限制。
對于示范性場景1800,光源1820對于對象1840來說可能是可見的(即,為其提供 光)。并且對于此實例,光源1820對于對象1830來說可能不可見。然而,對于此實例, 對象1830上可見到來自對象1840的反射1835。如上所述,響應(yīng)于光照參數(shù)的變化,可 進行場景的再渲染。對于一些實施例,可再計算受到光照參數(shù)改變影響的對象信息,且 在各種情況下,可從對象索引化高速緩沖存儲器中提取未受光照參數(shù)改變影響的對象信
息。對于圖18的實例,顯然,對光源1820的改變可影響與對象1840相關(guān)聯(lián)的對象信息。 然而,對于此實例,由于對象1830上的來自對象1840的反射的緣故,所以對象1830可 間接受到對光源1820的改變的影響。因此,對于一些實施例,可為場景的一些或全部對 象維持一相依性列表(或一個以上列表)。所述相依性列表可包括羅列哪些對象可將光反 射和/或折射到特定對象上的信息。對于一實施例,相依性列表可自動產(chǎn)生并得以維持, 而不需要用戶干涉。對于一些實施例,用戶可產(chǎn)生和/或修改相依性列表。
對于一實施例,可維持描述哪些對象可直接受到對各種光源的改變影響的一個或一 個以上列表。可維持描述哪些對象可間接受到對各種光源的改變影響的一個或一個以上 其它列表。這些列表可包含關(guān)于場景中各個對象之間的相依性的信息。對于示范性場景 1800,描述直接受到光源1820影響的對象的列表可包含識別對象1840的信息。描述間 接受到光源1820影響的對象的列表可包含識別對象1830的信息,且還可包含將對象1840 識別為對象1830獲得來自光源1820的光所依賴的對象的信息?;蛘撸瑢τ谝粚嵤├?, 不同于描述間接受到特定光源影響的對象的列表或除所述列表以外,可為每一對象維持 包含識別特定對象所依賴的其它對象的信息的列表。因此,對于此與對象1830相關(guān)聯(lián)的 示范性列表,可識別出對象1840。此外,對于一些,施例, 一個或一個以上對象可具有 與其相關(guān)聯(lián)的所述對象反射和/或折射光于其上的吝它對象的列表。舉例來說,與對象 1840相關(guān)聯(lián)的這種列表可包含識別對象1830的信息。上述用于產(chǎn)生和/或維持與對象之 間的光照相依性有關(guān)的信息的技術(shù)和/或方法僅是實例,且所主張的主題的范圍在這些方 面不受限制。
對于一個或一個以上實施例,如果改變光照參數(shù)從而影響一個或一個以上對象,那 么可確定其它對象是否可能通過反射和/或折射光的方式而間接受到光照改變的影響。這 種確定可基于(至少部分)如上所述的包括相依性信息的列表。如果確定存在這些間接 影響,那么可作為再渲染過程的一部分而再計算受到間接影響的對象的受影響對象信息。 以此方式,對于此實例,如果作出影響對象1840的光照改變,那么可再計算與對象1830 相關(guān)聯(lián)的對象信息。對于一個或一個以上實施例,用戶可選擇啟用或禁用對間接受影響 對象信息的再計算。
盡管本文描述的用于辨別光照相依性的實施例論述以逐個對象為基礎(chǔ)存儲信息,但 所主張的主題的范圍在此方面不受限制。舉例來說,用于辨別場景的對象之間的光照相 依性的實施例可實施在利用可經(jīng)像素索引化的緩沖器的再光照引擎中。這些緩沖器可為 一個或一個以上像素存儲關(guān)于哪些對象與特定像素相關(guān)聯(lián)的信息。根據(jù)所主張的主題的
像素索引化緩沖器的實施例可維持描述場景的對象之間的光照相依性的一個或一個以上 列表。
圖19是確定對象之間的光照相依性的方法的示范性實施例的流程圖。在方框1910 處,可修改光照參數(shù)。在方框1920處,可確定多個對象中哪些可直接受到對光照參數(shù)的 修改影響。對于一實施例,如果對象對于正被修改的光源為可見的,那么可認(rèn)為所述對 象直接受到對光照參數(shù)的修改影響。在方框1930處,可確定所述多個對象中的哪些對象 間接受到對光照參數(shù)的修改影響。對于一實施例,如果對象從直接受到對光照參數(shù)的修 改影響的對象接收反射和/或折射光,那么可認(rèn)為所述對象間接受到對光照參數(shù)的修改影 響。然而,"直接受影響"和"間接受影響"的這些描述僅是實例,且所主張的主題的范 圍在這些方面不受限制。在方框1940處,可再計算與直接和間接受影響的對象相關(guān)聯(lián)的 對象信息。根據(jù)所主張的主題的實施例可包含方框1910-1940的全部、多于全部或少于 全部。此外,方框1910-1940的次序僅是一種示范性次序,且所主張的主題的范圍在此 方面不受限制。
對于上述實施例中的至少一些實施例,可對光照參數(shù)作出改變,且可使用存儲在一 個或一個以上對象索引化高速緩沖存儲器中的對象信息與受到光照參數(shù)改變影響的對象 的再計算的信息的組合對幀進行再渲染。通過利用存儲在高速緩沖存儲器中的信息,可 加速再渲染過程,如上所述。也可能有利的是,在場景的景深或其它相機/鏡頭參數(shù)改變 的情況下提供加速再渲染。經(jīng)加速的響應(yīng)于例如景深的相機參數(shù)改變的再渲染可為技術(shù) 員或其它用戶提供快速反饋,且可增加技術(shù)員的生產(chǎn)力以及消耗較少的計算平臺資源。
當(dāng)用戶改變場景的景深時提供某種程度的交互式用戶體驗的現(xiàn)有嘗試可包含也許 通過改變各個像素的模糊度以試圖以景深來近似完全渲染可能呈現(xiàn)的外觀,來操縱二維 圖像的顯示。如之前所論述,現(xiàn)有系統(tǒng)的完全保真度渲染可能非常耗時且/或耗費資源。
根據(jù)所主張的主題實施的實施例可將三維對象數(shù)據(jù)存儲在對象索引化高速緩沖存儲 器中,如上所述。對于一個或一個以上實施例,當(dāng)對相機參數(shù)作出改變時,可使用經(jīng)高 速緩沖存儲的信息中的一些或全部,借此大大減少執(zhí)行再渲染所需的計算量。此外,因 為可針對光柵化操作優(yōu)化圖形處理單元,所以可以加速方式執(zhí)行以新的相機參數(shù)進行的 完全保真度再渲染,借此為技術(shù)員或其它用戶提供更具交互性的體驗。
圖20是加速響應(yīng)于景深的變化而進行的幀的再渲染的方法的示范性實施例的流程 圖。圖20可與圖5享有一些類似之處。可在方框2010處讀取場景數(shù)據(jù)。在方框2020處, 可對場景的對象執(zhí)行切割(鑲嵌)操作。在方框2030處,可執(zhí)行遮影操作,且在方框
2040處,可對圖像進行光柵化。對于一個或一個以上實施例,遮影操作中的至少一些的 結(jié)果可存儲在一個或一個以上對象索引化高速緩沖存儲器中。此外,對于一實施例,光 柵化可由GPU執(zhí)行,但所主張的主題的范圍在此方面不受限制。在方框2050處,可對 場景的景深作出改變。不是例如如上文結(jié)合圖5描述返回遮影操作,而是處理可返回方 框2040且可以更新的景深對幀進行再光柵化。因為對于此實施例不再執(zhí)行切割和遮影操 作,所以至少在先前遮影結(jié)果存儲在一個或一個以上對象索引化高速緩沖存儲器中的程 度上,可對幀進行快速再渲染。對于一些實施例,可針對結(jié)果先前未存儲在對象索引化 高速緩沖存儲器中的那些操作再計算一些遮影操作。根據(jù)所主張的主題的實施例可包含 方框2010-2050的全部、多于全部或少于全部。此外,方框2010-2050的次序僅是一種示 范性次序,且所主張的主題的范圍在此方面不受限制。
圖21是加速響應(yīng)于相機參數(shù)修改而進行的幀的再渲染的方法的示范性實施例的流 程圖。在方框2110處,可將與幀的渲染相關(guān)聯(lián)的對象信息存儲在對象索引化高速緩沖存 儲器中,且在方框2120處,可修改相機參數(shù)。對于一實施例,相機參數(shù)可包括景深。在 方框2130處,可使用存儲在對象索引化高速緩沖存儲器中的對象信息的至少一子集來對 幀進行再渲染。根據(jù)所主張的主題的實施例可包含方框2110-2130的全部、多于全部或 少于全部。此外,方框2110-2130的次序僅是一種示范性次序,'且所主張的主題的范圍 在此方面不受限制。
除了加速響應(yīng)于對相機參數(shù)的改變而執(zhí)行的再渲染操作外,可能還需要加速響應(yīng)于 相機位置的改變而執(zhí)行的再渲染操作。對于一些示范性實施例,相機位置可能與相機定 向和/或視場相關(guān),但所主張的主題的范圍在此方面不受限制。如上所述,渲染過程的一 部分可涉及確定從相機的視角來看哪些對象或?qū)ο笊夏男c是可見的。如果相機移動, 那么可見點的集合可能變化。對于在相機移動之前可能已被隱藏而現(xiàn)在可見的點,先前 不會已高速緩沖存儲任何信息,且因此可執(zhí)行額外操作以分配高速緩沖存儲器(如果先 前未執(zhí)行),計算遮影操作,且/或?qū)⒂嬎憬Y(jié)果存儲在分配的高速緩沖存儲器中。
圖22是加速響應(yīng)于相機位置的改變而進行的幀的再渲染的方法的示范性實施例的 流程圖??稍诜娇?210處讀取場景數(shù)據(jù)。在方框2220處,可對場景的對象執(zhí)行切割(鑲 嵌)操作。在方框2230處,可執(zhí)行遮影操作,且在方框2240處,可對圖像進行光柵化。 對于一個或一個以上實施例,遮影操作中的至少一些的結(jié)果可存儲在一個或一個以上對 象索引化高速緩沖存儲器中。此外,對于一實施例,光柵化可由GPU執(zhí)行,但所主張的 主題的范圍在此方面不受限制。在方框2250處,可對場景的相機位置作出改變。為了再
渲染場景,處理可返回方框2220。在方框2220處,可確定哪些先前隱藏的點現(xiàn)在是可 見的且哪些先前可見的點現(xiàn)在被隱藏。在方框2230處,可針對對于相機來說現(xiàn)在是可見 的先前隱藏的點執(zhí)行遮影操作,且可將遮影結(jié)果存儲在對象索引化高速緩沖存儲器中。 在方框2230處,也可再計算受到相機移動影響的其它點的遮影結(jié)果。在方框2240處, 可使用新近可見的點和受到相機移動影響的其它點的計算出的遮影結(jié)果與先前高速緩沖 存儲在一個或一個以上對象索引化高速緩沖存儲器中的對象信息的組合來對幀進行再光 柵化。對于一個或一個以上實施例,再光柵化可由GPU執(zhí)行。通過計算受到相機移動影 響的點的遮影結(jié)果并使用高速緩沖存儲的信息(在可能的情況下),可大大加速響應(yīng)于相 機位置的改變而進行的幀的再渲染。可通過使用一個或一個以上GPU執(zhí)行光柵化操作來 進一步加速再渲染。根據(jù)所主張的主題的實施例可包含方框2210-2250的全部、多于全 部或少于全部。此外,方框2210-2250的次序僅是一種示范性次序,且所主張的主題的 范圍在此方面不受限制。
圖23是加速響應(yīng)于相機位置的改變而進行的幀的再渲染的方法的示范性實施例的 流程圖。在方框2310處,可將與幀的渲染相關(guān)聯(lián)的對象信息存儲在對象索引化高速緩沖 存儲器中,且在方框2320處,可修改相機位置。方框2330處,可使用存儲在對象索引 化高速緩沖存儲器中的對象信息的至少一子集來對幀進行再渲染。根據(jù)所主張的主題的 實施例可包含方框2310-2330的全部、多于全部或少于全部。此外,方框2310-2330的次 序僅是一種示范性次序,且所主張的主題的范圍在此方面不受限制。
在以上描述內(nèi)容中,已描述所主張的主題的各個方面。出于闡釋的目的,陳述了系 統(tǒng)和配置以提供對所主張的主題的詳盡理解。然而,得到本揭示案的益處的所屬領(lǐng)域的 技術(shù)人員應(yīng)了解,可在沒有特定細(xì)節(jié)的情況下實踐所主張的主題。在其它情況下,省略 和/或簡化了眾所周知的特征以免混淆所主張的主題。雖然本文已說明和/或描述了某些特 征,但所屬領(lǐng)域的技術(shù)人員現(xiàn)將構(gòu)想出許多修改、替代、變化和/或等效物。因此,應(yīng)了 解,所附權(quán)利要求書希望涵蓋在所主張的主題的真實精神內(nèi)的所有此類修改和/或變化。
權(quán)利要求
1.一種方法,其包括將與幀的渲染相關(guān)聯(lián)的對象信息存儲在對象索引化高速緩沖存儲器中;修改光照參數(shù);以及使用存儲在所述對象索引化高速緩沖存儲器中的對象信息的至少一子集來再渲染所述幀。
2. 根據(jù)權(quán)利要求1所述的方法,其中將與幀的渲染相關(guān)聯(lián)的對象信息存儲在對象索引 化高速緩沖存儲器中包括存儲中間遮影結(jié)果。
3. 根據(jù)權(quán)利要求l所述的方法,其進一步包括再計算受到所述光照參數(shù)的修改影響的 對象信息。
4. 根據(jù)權(quán)利要求1所述的方法,其中再渲染所述幀進一步包括使用所述再計算的對象 信息來再渲染所述幀。
5. 根據(jù)權(quán)利要求1所述的方法,其中再計算受到所述光照參數(shù)的修改影響的對象信息 包括確定一個或一個以上對象的多個點中的哪些點受到所述光照參數(shù)的修改影響。
6. 根據(jù)權(quán)利要求l所述的方法,其中再渲染所述幀包括使用圖形處理單元對所述幀進 行再光柵化。
7. 根據(jù)權(quán)利要求1所述的方法,其中存儲與幀的渲染相關(guān)聯(lián)的對象信息包括存儲與幀 的初始渲染相關(guān)聯(lián)的對象信息。
8. 根據(jù)權(quán)利要求1所述的方法,其中將與幀的渲染相關(guān)聯(lián)的對象信息存儲在對象索引 化高速緩沖存儲器中包括存儲最終遮影結(jié)果。
全文摘要
本發(fā)明揭示用于加速圖形幀的再渲染的實施例。
文檔編號G06T1/60GK101178807SQ20071013004
公開日2008年5月14日 申請日期2007年7月25日 優(yōu)先權(quán)日2006年7月25日
發(fā)明者丹尼爾·埃利奧特·韋克斯勒, 埃里克·B·恩德爾頓, 拉多米爾·梅奇, 拉里·I·格里茨, 約翰·F·施拉克, 菲利普·A·內(nèi)梅茨 申請人:輝達公司