專利名稱:用于低頻照明環(huán)境的光自轉移的圖形圖像演示方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及計算機圖形圖像演示技術,并且更多側重涉及于在所演示圖像上模型化物體的照明和變暗。
背景技術:
從區(qū)域源,軟陰影,和相互反射的照明在現(xiàn)實圖像合成中具有重要的作用。不幸的是,在大規(guī)模照明環(huán)境(包括蒙特卡洛光線追蹤,光能傳遞,或在多點光源集合的多通路演示)中合成的一般方法在實時演示時是不實際的。(蒙特卡洛光線追蹤由除了Cook,R,Porter,T和Carpenter,L的分布式的光線追蹤,SIGGRAPH’84,137-146描述外,還有Jensen,H,的采用光子圖的綜合照明,對于演示的歐洲圖形專題研究小組1996,21-30;和Kajiya,J的演示方程式,SIGGRAPH’86,143-150)(光能傳遞技術在Cohen,M和Wallace,J的光能傳遞和現(xiàn)實圖像合成,職業(yè)學術出版業(yè),劍橋,1993中得以描述)(各種各樣的多通路演示技術由除了Haeberli,P,和Akeley,K,的堆積緩沖器;高質(zhì)量演示的硬件支持,SIGGRAPH’90,309-318描述外;還有Keller,A,的即時光能傳遞SIGGRAPH’97,49-56;和Segal,M,Korobkin,C,van Widenfelt,R,F(xiàn)oran,J,和Haeberli,P,的采用結構映射來快速變暗和照明作用,SIGGRAPH’92,249-252.)實時的、現(xiàn)實的綜合照明面臨三個困難-它必須將真實物質(zhì)(BRDF復雜性)模擬成復雜的、空間變化的、雙方向反射系數(shù)分配函數(shù)(BRDFs),它需要在各個點的照明方向半球的綜合(光綜合),它必須導致跳躍/阻塞的作用,如陰影,由于從源到接收器沿著光的路徑的干涉原因(光傳遞的復雜性),很多研究集中在擴充BRDF復雜性上(比如,平滑的和各向異性不均的反射),通過將入射光表示為方向或點的和來解決光綜合的問題,光的綜合因此易處理地簡化成在一些點上采樣一個解析的或列表的BRDF,但對大光源來說就不易處理了。研究的第二方法采樣光并預先將它卷積成不同尺寸的核。(見,如Cabral,B,Olano,M,和Nemec,P,的基于演示的反射空間圖像,SIGGRAPH’99,165-170;Greene,N,的環(huán)境映射和世界投影的其他應用,IEEE CG&A,6(11)21-29,1986;Heidrich,W,Seidel H,的硬件加速的照明和變暗SIGGRAPH’99,171-178;Kautz,J,Vazquez,P,Heidrich,W,和Seidel,H,的預先過濾環(huán)境映射的一體化方案,對于演示的歐洲圖形專題研究小組2000,185-196;和Ramamoorthi,R,和Hanrahan,P,的對光環(huán)境映射的一個有效表示,SIGGRAPH’01,497-500.)它解決了光的綜合問題但忽視了光傳送的復雜性如陰影,由于卷積假設成入射光是不閉塞和不分散的。最終,精巧的技術作為擴充光傳送的復雜性,特別是陰影的存在。光的綜合成為了問題;幾乎所有的這些技術多不適合非常大的光源。
發(fā)明內(nèi)容
在這里描述的一個實時的圖像演示技術較好的解決了實時的光綜合和光傳送的復雜性。表示這個環(huán)境。本技術側重于低頻照明環(huán)境,采用低次序球形諧函數(shù)(SH)基礎來不需要偽信號使用的高效地表示這一環(huán)境。本技術的一個方面用來顯示一個物體怎樣分散這光線到它本身或它的鄰居空間,在某種程度上從折射光線上減弱分散。例如,圖8將一個模型人頭的一個非遮蔽圖像和在這里描述的通過光自動轉移所產(chǎn)生的一個圖像作了對比。
為了簡單的總結所描述的技術,初始假設我們有一個凸起的,散開的被一個無限遠的環(huán)境映射點亮的物體。物體對它環(huán)境的遮蔽”反應”能被看成一個轉移函數(shù),映射導入的到流出的光,在這里簡單的完成余弦加重累積。一個更復雜的累積能捕獲一個凹入物體怎樣使自己變陰暗,在這里被積函數(shù)被一個表示沿各個方向能見度的附加傳送因數(shù)相乘。
所描述的技術方法為一個給定物體預先計算像變暗的復雜轉移函數(shù)所需要的昂貴傳送模擬。作為結果的傳送函數(shù)備表示成一個密集系列的在它平面上的矢量或矩陣。其間入射光不需要被預先計算。在以后的實時演示中,圖形硬件可以動態(tài)地采樣在限定數(shù)目的點上的入射光,這種技術轉換成用快速計算分析模型的球形諧函數(shù)(SH)基礎,如天窗模型或簡單的如圓等幾何能被使用。
在SH基礎中,通過表示入射光和轉移函數(shù),所描述的技術將光累積簡化為它們的系數(shù)矢量(漫射接受器)之間一個簡單的點乘積,或通過一個小的轉移矩陣(平滑接受器)的照明系數(shù)矢量的一個簡單的線性變化的。低頻照明環(huán)境需要非常少的系數(shù)(9-25),使圖形硬件在一個單通下計算結果。不象蒙特卡洛和多通路光綜合方法,這種技術的實時計算可以保持恒定不管光源的多少和多大。
保持一個恒定數(shù)量的實時計算依賴于大規(guī)模的、平滑照明來限制所需的SH的數(shù)目。
所描述的技術表現(xiàn)了復雜的傳送作用像在轉移函數(shù)中的相互反射和焦散線。由于這些都被模擬成預處理,只有轉移函數(shù)的基礎系數(shù)改變,而不是實時的計算。所描述技術所述的方法對平面和基于體積的幾何形狀都進行處理。對于更多的SH系數(shù),這技術甚至可以處理平滑接受器(但不是高度反射的)和漫射,包括相互反射。如25SH系數(shù)對有用的平滑是足夠的。除從一個剛性的物體轉移到它本身外(叫自轉移),這技術歸納為從一個剛性物體到它的鄰近空間的鄰近轉移,允許投射軟陰影、平滑反射和在動態(tài)接收器上的焦散線。
圖1是在動態(tài)的、低頻照明環(huán)境中為實時圖像演示合并預先計算的光自轉移的一個計算機圖形軟件架構的方框圖。
圖2是圖1中在圖像演示系統(tǒng)中的一個自轉移預先計算的流程圖。
圖3是圖1中在圖像演示系統(tǒng)中的一個光轉移的實時演示的流程圖。
圖4是圖3中在實時演示中處理實時漫射平面自轉移的流程圖。
圖5是圖3中在實時演示中處理實時平滑平面自轉移的流程圖。
圖6是為圖1中的圖像演示系統(tǒng)的一個適當?shù)挠嬎悱h(huán)境的一個方框圖。
圖7是描述在圖2中的自轉移預先計算中的模擬相互反射的圖。
圖8描述圖3中的非遮蔽的和通過實時演示所產(chǎn)生的圖像。
圖9描述圖3中的非遮蔽的和通過實時演示所產(chǎn)生的圖像,圖解了漫射平面自轉移的作用。
圖10描述圖3中的非遮蔽的和通過實時演示所產(chǎn)生的圖像,圖解了平滑平面自轉移的作用。
圖11分別描述了用在一個單點采樣的入射光、反復最近點算法(ICP)點和多個點通過圖3的實時演示產(chǎn)生的圖像。
圖12描述了通過圖3的實時演示所產(chǎn)生的體積的自轉移的圖像。
圖13描述了通過圖3的實時演示所產(chǎn)生的鄰居關系的自轉移的圖像。
具體實施例方式
如圖1所示,一個計算機圖形圖像演示系統(tǒng)100的一個軟件結構提供一個模型化物體的實時圖像演示,該演示使用在此描述的采用光自轉移圖像演示技術的相互反射和自遮蔽。通常的,該軟件結構包括一個綜合照明模擬器120,一個實時圖像演示引擎140,和一個圖形顯示驅動180。下面更全面地描述光自轉移演示技術,綜合照明模擬器120執(zhí)行該技術的預先處理階段,它從一個幾何物體模塊110預先計算光自轉移數(shù)據(jù)140。該幾何模塊110可以是一個三角形的網(wǎng)孔,微波合成物,或者另外其他被模型化物體的幾何化的表現(xiàn)。然后實時演示引擎140使用該預先計算的光自轉移數(shù)據(jù)為動態(tài)地可變照明環(huán)境150和觀察方向160演示模型化物體圖像,該演示引擎可以有選擇的改變或者設置用戶控制170。圖形顯示驅動180輸出圖像到一個圖像輸出設備(例如顯示器,放映機,打印機等)。
在圖形圖像演示系統(tǒng)的一些具體實施例中,模擬器120的光自轉移預先計算和使用引擎140的圖像演示可以在單個計算機上執(zhí)行,如在下面的第6節(jié)描述的計算環(huán)境。通常的,模擬器120可以在一個單獨的計算機上運行,然后該結果數(shù)據(jù)轉移到演示引擎140運行的計算機上,產(chǎn)生圖形圖像。
光自轉移技術總觀。作為一個預處理,綜合照明模擬器120在模塊110上運行照明模擬,從而捕獲如何模型化物體對自己遮蔽和驅散光線。該結果作為模塊上的一組密集矢量(漫射狀態(tài))或矩陣(平滑狀態(tài))記錄于光自轉移數(shù)據(jù)130中。在圖像演示時間,演示引擎140為照明環(huán)境150投射相關入射光到球形諧函數(shù)(SH)基礎(如下描述)。然后轉移矢量和矩陣的模型領域被應用于照明系數(shù)矢量。如果物體漫射,在該物體上的點的一個轉移矢量隨著照明系數(shù)打點從而產(chǎn)生恰當?shù)淖噪x散陰影。如果該物體是平滑的,一個轉移矩陣被應用于照明系數(shù)從而產(chǎn)生在這些點上一個代表自離散入射光的球形函數(shù)系數(shù)。該函數(shù)根據(jù)物體的雙方向反射系數(shù)分布函數(shù)(BRDF)卷積,隨后估計基于觀察的反射方向從而產(chǎn)生所演示的在圖像中的物體的最終陰影。
1.球形諧函數(shù)的回顧定義球形諧函數(shù)定義一個在球形上的標準正交的基礎,S,類似于在1D圓周上的傅立葉轉換,使用參數(shù)s=(x,y,z)=(sinθcos,sinθsin,cosθ)基礎函數(shù)定義為 其中Plm為相關的Legendre多項式,Klm為標準化常數(shù)Klm=(2l+1)4π(l-|m|)!(l+|m|)!]]>上述的定義組成一個復數(shù)基;一個真值基礎由這個簡單的轉化所提供 I的低值(稱為波段索引)表示球形上的低頻基礎函數(shù)。波段I的基礎函數(shù)在x,y和z中變?yōu)榇涡騃的多項式。賦值可以由簡單的循環(huán)公式產(chǎn)生。(例如Edmonds,A,在量子論機械學中的多角要素,普林斯頓大學,普林斯頓,1960;和ZARE,R,多角要素;化學和物理學中的空間方面的理解,Wiley,紐約,1987)。
投影和改造因為SH基礎是標準正交的,一個由S定義的標量的函數(shù)f通過累積投射到他的系數(shù)flm=∫f(s)ylm(s)ds···(1)]]>這些系數(shù)提供n次序的改造函數(shù)。
f~(s)=Σl=0n-1Σm=-1lflmylm(s)···(2)]]>當相波段n的數(shù)字增長,f相應的近似增長。低頻率信號能夠根據(jù)只有的一些SH波段正確的表現(xiàn)。較高頻率信號由一組低次序投影被波段限制。(例如無偽信號的平滑)投影n次序包括n2個系數(shù)。它通常方便地改寫(2)按照投影系數(shù)的單個索引矢量和基礎函數(shù),通過f~(s)=Σi=1n2fiyi(s)···(3)]]>
經(jīng)由I=l(l+1)+m+1。通過此公式可見改造函數(shù)S的評價表現(xiàn)為n2組成的系數(shù)矢量fi和評價基礎函數(shù)yi(s)矢量的一個簡單的點乘積。
基礎屬性。一個SH投影屬性是它的輪流的恒定性;那是,提供g(s)=f(Q(s)),當Q是一個在S上的任意的旋轉g~(s)=f~(Q(s))···(4)]]>這是類似于1D傅立葉變換的移動恒定性屬性。事實上,該屬性意為SH投影導致無偽信號的人造物品。當f產(chǎn)生的采樣例子被收集為一旋轉系列的采樣點,投射,然后f回轉。
SH基礎的標準正交提供在S上任意兩個函數(shù)a和b的有用的屬性,它們的投影滿足∫a~(s)b~(s)ds=Σi=1n2aibi.···(5)]]>換句話說,波段限制函數(shù)的乘積的綜合使變?yōu)樗鼈兺队跋禂?shù)的一個點乘積。
卷積一個循環(huán)的相稱的內(nèi)核函數(shù)h(z)和一個f函數(shù)的卷積被表示為h*f。注意h必須為循環(huán)相稱(并且應此能夠被定義為一個勝于s的z的簡單的函數(shù))為了該結果被定義在S上,勝于更高的空間的旋轉組SO,如上面的每個方程式(3)。卷積投影滿足(h*f)lm=4π2l+1hl0flm=αl0hl0flm.···(6)]]>換句話說,該投影的卷積系數(shù)是單獨的投影函數(shù)的簡單的刻度產(chǎn)物。此屬性提供一個快速途徑以便纏繞一個含有半球狀的余旋內(nèi)核的環(huán)境映射,該核心定義為h(z)=max(z,0),以得到一個光的映射(如同在Ramamoorthi,R,和Hanrahan,P,光環(huán)境映射的有效表現(xiàn),SIGGRAPH’01,497-500中所描述的)。在這個例子中,h的投影系數(shù)能通過使用一個分析公式來獲取。這個卷積屬性也能夠被用于通過精密的內(nèi)核產(chǎn)生預過濾環(huán)境映射。注意,因為h是關于z的循環(huán)對稱的,它的投影系數(shù)僅在m=0時為非零的。
乘積投影 一對球形函數(shù)c(s)=a(s)b(s)的乘積的投影(a已知而b未知)可以被看作為通過一個矩陣的投影系數(shù)bj的一個線性變換ci=∫a(s)(bjyj(s))yi(s)ds=(∫a(s)yi(s)yj(s)ds)bj=a^ijbj···(7)]]>其中為重復的序號j暗示了求和,注意是一個相稱的矩陣。
旋轉 一個被Q旋轉的改造函數(shù),f(Q(s)),可以用使用一個f的投影系數(shù)的線性變換fi投影。因為旋轉恒定性的屬性,該線性變換獨立地對待每個波段的系數(shù)。最有效的執(zhí)行通過使用一個旋轉Q的zyz歐拉角的分解而完成,使用一個相當復雜循環(huán)公式。(參見,例,Chirikjian,G,和Stein,D,球形步進電機的運動學設計和替換,電氣和電子工程師協(xié)會機械學報,4(4),12.1999;Edmonds,A,在量子論機械學中的角動量,普林斯頓大學,普林斯頓,1960;和ZARE,R,角動量;化學和物理學中的空間方面的理解,Wiley,紐約,1987)。當僅僅涉及低階函數(shù)時,在這些參考書目中描述的顯式旋轉公式能夠通過使用符號累積來實現(xiàn)。
2.光自轉移光自轉移封裝了一個物體O對自己遮蔽和驅散光線的方法。光自轉移通過使用SH基礎,由點p∈O的第一次參數(shù)化入射光(表示為Lp(s))來表示。入射光因此被表示為一個n2系數(shù)的矢量(Lp)i。在實際中,此照明能在表面附近被動態(tài)地并且稀疏地采樣,也許僅在單個點上。假設在于在O上的照明變化不是由于它本身存在較少(參見4.1節(jié),入射光域的空間采樣)。光自轉移也能夠在O上被預先計算和很密的存儲,作為轉移矢量或矩陣。
一個轉移矢量(Mp)i能被用于漫射表面和表示對產(chǎn)生標量退出光的照明矢量(表示為Lp’)的一個線性轉換,通過以下內(nèi)積L′p=Σi=1n2(Mp)i(Lp)i···(8)]]>換句話說,(Mp)i的每個成分表示了一個照明基礎函數(shù)(Lp)i對在p處遮蔽的線性影響。
一個轉移矩陣(Mp)ij能被用于平滑表面并且表示對照明矢量的線形轉換,它為一個完整的轉移光球形函數(shù)L’p(s)產(chǎn)生一個投影系數(shù),而不是一個標量,即(L′p)i=Σj=1n2(Mp)ij(Lp)j.···(9)]]>入射光和轉移光之間的區(qū)別在于L’p(s)包括由于O的存在所造成的遮蔽和散射效果,而Lp(s)表示假設O在發(fā)生地點中被移去后的入射照明。(Mp)ij的成分表現(xiàn)了入射光(Lp)j的第j個的照明系數(shù)對于轉移光L’p(s)的第i個系數(shù)的線性影響。下一節(jié)將顯示在O上根據(jù)自散射如何得到漫射表面的轉移矢量和平滑表面的轉移矩陣。
2.1漫射轉移首先假設O是漫射。在點p∈O上的最簡單的轉移函數(shù)表現(xiàn)了非遮蔽漫射轉移,定義為標量函數(shù)TDU(Lp)=(ρp/π)∫Lp(s)HNp(s)ds]]>產(chǎn)生退出光,它是對漫射表面的觀察角的不變量。在此,ρp是在p上的物體的反照率,Lp是假設O在發(fā)生地點中被移去后的p上的入射光,Np是在p上的物體法線,而Hnp(s)=max(Nps,0)是余弦加權的、關于Np的半球內(nèi)核。通過單獨地對Lp和Hnp進行SH投影,方程式(5)簡化Tdu為它們系數(shù)矢量的一個內(nèi)積。得到的這個要素此處被稱為光函數(shù)Lp和轉移函數(shù)Mp。在這第一個簡單的例子中,MpDU(s)=HNp(s),]]>因為Np已知,轉移函數(shù)(MpDU)i的SH投影能被預先計算,結果是一個轉移矢量。事實上,存儲是不必要的因為一個簡單的分析公式產(chǎn)生它給定的Np。由于MpDU是一個固有的低通過濾器,第二階投影(9個系數(shù))提供在一個任意的(甚至非平滑)照明環(huán)境下好的精確性。
為了包括陰影,我們定義陰影漫射轉移為TDS(Lp)=(ρp/π)∫Lp(s)HNp(s)Vp(s)ds]]>其中當來自p的方向s的一束射線無法與O再相交(即沒有被遮蔽)時,額外的可見度函數(shù)Vp(s)→{0,1}等于1。用非遮蔽轉移,該累積可以用Lp的SH投影和以下轉移函數(shù)分解成兩個函數(shù)MpDS(s)=HNp(s)Vp(s).···(10)]]>單獨的SH投影Lp和Mp重新將在TDS上的累積簡化為系數(shù)矢量的一個內(nèi)積。
現(xiàn)在轉移是有價值的;光自轉移通過使用一個傳輸模擬器能被預先計算(如同在下面章節(jié)“預先計算自轉移”中描述的),存儲在O上的許多點p的結果轉移矢量(Mp)i。不像前面的例子,MpDS的第二階投影可能是不準確的,即使在平滑的照明環(huán)境中,因為Vp能創(chuàng)建本地的高頻率照明,例如,通過自遮蔽小孔。使用第四或第五階投影提供在平滑照明環(huán)境中的典型網(wǎng)眼的好結果。例如圖9中的漫射表面物體的非遮蔽和遮蔽圖像的比較。
最后,為了捕獲漫射相互反射(例如圖9的相互反射的圖像)和陰影,相互反射漫射轉移可以定義為TDI(Lp)=TDS(Lp)+(ρp/π)∫L-p(s)HNp(s)(1-Vp(s))ds]]>
其中Lp(s)是來自O自己本身的在s方向上的光。困難在于除非從無限遠的源發(fā)出入射光,光Lp(s)僅僅在p上的給定的入射光是不被知的,因為Lp依賴于離p任意遠處的點的退出光,并且本地照明在O上變化。假如在O上的照明變化較小,那么Lp是非常近似,就如同O被Lp在每個地方被照明。因而TDI線性地依賴Lp并且能被分解為兩個投影函數(shù)的一個乘積,如同在前面的兩種情況一個輕微依賴和一個幾何依賴。
盡管預先計算的相互反射必須假設入射光在O上空間不變,更簡單的遮蔽轉移則不需要。區(qū)別在于遮蔽轉移僅僅依賴在p上的入射照明,然而相互反射轉移依賴在O上的許多點q≠p,其中Lq≠Lp。因此,只要入射光區(qū)域最終充分精細地被采樣(在下節(jié)“入射光領域的空間采樣”中討論的),本地照明變化能被捕捉,且遮蔽轉移將被糾正。
L的存在使得難以顯式地表示相互反射的轉移函數(shù)MpDI(s)。下面的“預先計算自轉移”一節(jié)將討論如何數(shù)值地計算它的投影系數(shù)。
2.2平滑轉移平滑物體的自轉移能被類似地定義,不過要將內(nèi)核函數(shù)歸納為依賴(觀察依賴)一個反射方向R,而不是一個(固定的)法線N。類似于以前的H內(nèi)核,光自轉移能將平滑反射模擬成內(nèi)核G(s,R,r),其中標量r定義鏡像反應的“光滑度”或寬廣度。
三個相似的平滑轉移函數(shù)非遮蔽、遮蔽和相互反射情形可以定義為TGU(Lp,R,r)=∫Lp(s)G(s,R,r)dsTGS(Lp,R,r)=∫Lp(s)G(s,R,r)Vp(s)dsTGI(Lp,R,r)=TGs(Lp)+∫Lp(s)G(s,R,r)(1-Vp(s))ds它們將在R方向上的標量光輸出為一個Lp和R的函數(shù),它們的量在預先計算時上都未知。因為轉移不再是一個孤立的s函數(shù),因此不能被簡化為SH系數(shù)的一個簡單矢量。
替代以R和r參數(shù)化標量轉移,一個更有用的分解是轉移入射光Lp(s)到轉移光的一個完整球形(表示為L’p(s))。假設平滑內(nèi)核G是關于R循環(huán)對稱的,則L’p(s)能與G’r(z)=G(s,(0,0,1),r)卷積,并在R上計算而產(chǎn)生一個最終結果。
到L’p的轉移現(xiàn)在表現(xiàn)為一個矩陣而非一個矢量。例如,平滑遮蔽轉移能被定義為MpGS(Lp,s)=Lp(s)Vp(s).···(11)]]>
一個在Lp上的線性操作器,它的SH投影通過方程式(7)能被表現(xiàn)為對稱矩陣Vp。甚至用非常平滑的照明,隨著O的光滑度的增長,更多的SH波段被用于LpΦ;非正方形矩陣(例如25×9)將低頻率照明映射到高頻率的轉移光在這些情況下是有效的。
預先計算光自轉移的一個重要限制是影響TDI和TGI中的相互反射的O的材料屬性(如反照率或光滑度)是運行時被“烘烤”到預先處理的轉移并且不能改變。另一方面,這個較簡單的沒有相互反射的遮蔽轉移允許運行時改變和/或在材料屬性的O上的空間變化。假如阻礙或者光源侵入O的凸起外殼,則錯誤發(fā)生。O只能剛性地移動,不能變形或者相對于整體移動一個部分。也要記得對正確的相互反射需要假設O上的低照明變化。
最后,注意如上面定義的漫射轉移在離開表面后產(chǎn)生光,因為當平滑轉移產(chǎn)生光入射在表面時它已經(jīng)被余弦加權的標準半球所卷積,并且被本地BRDF所卷積以產(chǎn)生最后的退出光。對平滑O,也可能烘烤入一個固定的BRDF,使在運行時不需要和G的卷積,除了靈活性的限制外。
圖9舉例說明了一個平滑表面物體的非遮蔽、遮蔽和相互反射圖像。
3.預先計算自轉移現(xiàn)在對照圖2,通過作為發(fā)射器而使用在無限范圍上的SH基礎(模擬的“參考照明環(huán)境”),照明模擬器120(圖1)預先計算在一個綜合照明模擬200上的模型化物體的光自轉移(也被稱為“自轉移預先計算”),該綜合照明模擬200在一個物體O執(zhí)行。此模擬由入射光L的未知球形的一個第n階SH參數(shù)化;即,n2個未知系數(shù)Li。盡管該模擬的結果可能通過使用SH基礎函數(shù)yi(s)作為一個投影器而為每個Li獨立地計算,同一時間計算它們將更有效。此參考照明環(huán)境(無限遠球形L)將在運行時被實際的關于O,Lp的入射光替代。
模擬200開始于一個通路(“陰影通路”202),模擬從離開L并直接到達采樣點p∈O的路徑的直接陰影。在隨后的通路(“相互反射通路”204),相互反射增加,表示從L開始的路徑,在抵達p(Lp,LDp,LDDp,等)之前L在O反彈許多次。在每條通路上,能量聚積在p表面的每個采樣點上。大型發(fā)射器(即,低頻率的SH基礎)使得聚集比投射式更新更有效。
為了捕捉在采樣點p∈O上的方向范圍,模擬產(chǎn)生一個巨大的(10k-30k)、準隨機方向集合{Sd},Sd∈S。此模擬也為在每個方向Sd上的所有的SH基礎函數(shù)預先計算計算。這個Sd方向被組織分層空間中,該分層空間是通過用1->2對分來將一個初始的二十面體精煉成相同面積的球形三角形(1->4細分沒有導致在和平面上一樣的在球形上的相同面積的三角區(qū))構成的。這個模擬使用6到8細分等級,創(chuàng)建512到2048個空間。每個空間在每個層次級別上包括在其內(nèi)部的一個Sd表。
在第一或陰影路徑202,對每個p∈O,模擬200連接(在211上)那些被物體自閉塞的從點p開始的方向。這模擬在半球上拋射出關于p的法線Np的陰影射線,使用層次去精選在半球外的方向。這個模擬使用一個閉塞位1-Vp(Sd)連接每個方向Sd,指出Sd是否在半球內(nèi)并且和O再次相交(即,被O自遮蔽)。一個閉塞位也和分層空間相關聯(lián),指出任意一個在其內(nèi)部的Sd是否在閉塞。自閉塞方向和空間都被連接以至于我們能夠在它們上面執(zhí)行進一步的相互反射通路;完全的非閉塞空間/采樣僅僅接受從環(huán)境中來的直接光。
接著,在212上,模擬200為點p累積轉移光。在漫射表面,在每個點p∈O,模擬還通過根據(jù)方程式(10)的SH投影Mp計算轉移矢量。在平滑表面,模擬通過從方程式(11)上的SH投影Mp來計算轉移矩陣。在任一情況中,結果代表被L參數(shù)化的在p上收集的光。用來計算轉移的SH投影被在方向采樣Sd上的數(shù)值累積所執(zhí)行,使用如下的規(guī)則概括為一個積累的轉移 上標0指反復數(shù)字。矢量Mp或矩陣Mp在每個點p上在陰影通路前被初始化為O,然后在每個p上將所有的Sd相加。這個規(guī)則通過使用漫射轉移累積的方程式(1)以及平滑轉移累積的方程式(7)而得到。
根據(jù)圖7所示,隨后的相互反射通路204穿過具有閉塞位設置的空間,該閉塞位在陰影通路累積在221上的相互反射轉移期間設置。替代陰影射線的,模擬發(fā)射在O上的從退出照明上返回轉移的射線。如果射線(p,Sd)和另外點q∈O(其中q最靠近p)相交,我們在方向-Sd中采樣從q上退出的光。下面的更新規(guī)則被使用,其中的上標b是反彈通路重復
如陰影通路202上所示,在方向Sd上,在積聚轉移之前通過初始化轉移矢量或矩陣為0來開始相互反射通路204。漫射規(guī)則起源于TDI的定義和方程式(1);平滑規(guī)則從TGI的定義和方程式(6)和(7)中取得。在平滑轉移定義中,中間因子代表來自之前的彈起通路,b-1,從q發(fā)出的返回到p的光。由于Mq存儲入射光,它必須在q上與O的BRDF相卷積來獲取在-Sd方向上的退出光,在k上產(chǎn)生一個總和。ak是第k次的卷積系數(shù),由單個索引符號表示?!胺瓷洹狈柡唵蔚胤从酬P于它的第二的第一矢量參數(shù)。觀察方程式(7)暗示了(Mp)ij是為被遮蔽平滑轉移的一個對稱矩陣,因為它由兩個球形函數(shù)乘積組成;對于相互反射平滑轉移而言是不正確的。
如230所示,相互反射通路204重復,直到符合一個結束標準,例如給定通路的總能量落到一個重要的極限之下時。對于典型的物質(zhì),相互反射消減十分快速。隨后來自所有彈起通路的轉移總和考慮相互反射。
或者,這個模擬的一個簡單的增強允許在O中的像鏡子一樣的表面。模擬不記錄在類似表面的轉移。替代的,撞擊鏡面的射線總是反射并且隨后傳播直到抵達非鏡面。因而,連續(xù)反復通路能被表示為(L[S]*p,L[S]*D[S]*p,L[S]*D[S]*D[S]*p,等),其中D是一個漫射或平滑彈起,而S是一個鏡像彈起。它捕捉到漫射或者平滑接收器上的焦散線,來動態(tài)的反應照明變化。
4.光轉移的運行時刻演示剛描述的模擬200(圖2)提供在物體表面上的許多點p上捕捉光轉移的一個模塊,表現(xiàn)為矢量或者矩陣。現(xiàn)在參考圖3,實時演示引擎140(圖1)隨后在一個運行時過程300中使用此模塊,在一個選擇照明環(huán)境和觀察方向上的物體實時圖像的演示過程中計算物體的自轉移光。圖4和圖5分別的根據(jù)用作漫射和平滑表面的運行時過程300來分別地闡述過程流。
在過程300中,演示引擎140在運行時執(zhí)行下列動作在310,根據(jù)SH基礎在一個或多個O附近的采樣點Pi上計算入射光{Lpi};在320中,旋轉這些Lpi到O的坐標結構并且混合它們(如下)來產(chǎn)生一個在O上的入射光Lp的一個域,而在330-390中,在O上的每個點p上對(Lp)i執(zhí)行一個線性變化來獲得退出光。在動作350上,此線性變化是漫射表面的與(Mp)i的一個點積(方程式(8)),或在動作360上,是光滑表面的與(Mp)y的一個矩陣-矢量乘法(方程式(9))。平滑表面有進一步動作370和380,其中從乘法360上得到的光矢量與在p上O的BRDF卷積,隨后在觀察依賴的反射方向R上被評價。
在動作310上,演示引擎140可以裝入一個預先計算環(huán)境映射,評價軟件中的分析照明模塊,或者使用圖形硬件來采樣光,如同對選擇照明環(huán)境的入射光的表示。動作320的旋轉在第1節(jié)球形諧函數(shù)回顧中敘述,它對每個物體執(zhí)行一次,而不是對每個p。旋轉被執(zhí)行,因為轉移是使用對O的一個公共坐標系來存儲的。假如O剛性地移動,相比較旋轉O的許多轉移函數(shù),在Lpi上旋轉少數(shù)光采樣使得與O排列將更有效。
對于漫射表面,動作350的一個簡單實現(xiàn)是存儲每個頂點的轉移矢量和執(zhí)行在一個頂點遮蔽物中的點乘。這個轉移矢量也能夠被存儲在結構映射中,而不是每個頂點,并使用一個像素遮來計算。由于系數(shù)是有符號的數(shù),不總是在[-1,1]范圍內(nèi)的,DirectX 8.1像素遮蔽物(V1.4)或其OpenGL等同物(由ATI擴展的)能夠被使用,因為他們提供[-8,8]的一個較大范圍。在一個實現(xiàn)中,像素遮蔽物僅需要8個指令去執(zhí)行點乘并且在常量寄存器中存儲Lp的投影系數(shù)。
對于有色環(huán)境或者在O上擴散顏色的模擬,3個通路被執(zhí)行,每個針對r,g,b通道中的一個執(zhí)行單獨的點乘。否則,一個通路就足夠了。
對于平滑的自轉移,從方程式(9)中的矩陣轉換能在軟件中被執(zhí)行,因為在當前頂點或者像素遮蔽物中,轉移矩陣可能太大而不能被操作。結果是(L’p)i,在O上的點p處轉移光的SH系數(shù)。隨后在一個像素遮蔽物中,卷積370能夠用一個簡單的為G的余弦冪(Phong凸瓣)內(nèi)核執(zhí)行,并計算在反射方向R上的結果。結果能被寫成Σi=1n2αiGi*(Σj=1n2(Mp)ij(Lp)j)yi(R)···(12)]]>高到第5階的SH映射能在當前的圖形硬件中被計算。
4.1入射光域的空間采樣對于動態(tài)采樣入射光的一個簡單并且有效的方法是在O的中心點上采樣入射光。為了處理在O上的局部照明變化,一個更精確的技術在多個點上采樣入射光。作為一個預處理,給定了輸入所需數(shù)目的點,使用ICP(重復最近點)算法就可以得到一組好的采樣點(參照,Linde,Y,Buzo,A,和Gray,R,用于矢量量子設計的一個算法,IEEE通訊學報COM-28,1980,84-95)。這產(chǎn)生O附近的、在O上均勻分布的一組有代表性的點Pi,在運行時可以在這些點處采樣入射光。演示引擎140還可以預先計算在O上每個p點處的系數(shù),該計算混合來自結果采樣的光球Lpi的每一個的貢獻從而產(chǎn)生在O上的一個入射光域,以前被表示為Lp。
圖11描述通過在一個單點、ICP點和多重采樣中采樣入射光并用圖3的運行時過程300演示所得到的圖像。
4.2在圖形硬件上采樣SH光在一個動態(tài)場景中,圖形硬件被有效地用來捕捉光采樣{Lpi}。為此,根據(jù)對應于立體映射球形參數(shù)的6個面的每個Pi演示6個圖像。O本身必須從這些演示中被除去。使用方程式(1)中的積分,立體映射圖像被映射到他們的SH系數(shù)上。
更有效的,為被微分實角加權的基礎函數(shù)預先計算結構,Blm(s)=ylm(s)ds(s),]]>每一個都在s的立體映射參數(shù)上被計算。隨后這個結果積分變成結構Blm(s)與捕捉的采樣Lp(s)上的一個簡單的點積。
理想的,此計算能在圖形硬件上被執(zhí)行??蛇x擇的,由于精確性和在硬件上無法作內(nèi)積的原因,采樣光圖像可以被回讀并且隨后在軟件中投影。在這種情況下,盡可能地減小回讀圖像的分辨率將是有幫助的。
低階的SH映射用非常低的解析度的立體映射來計算,假設它們被準確的帶限。例如,已經(jīng)帶限到第6階的球形信號能被用6個4×4圖像來投影,這些圖像具有大約0.3%的普通情況平方誤差和大約1%最差情況平方誤差,其中通過假設單位功率信號而規(guī)范化誤差(即,在球形上的平方積分為1的信號)。(更精確地,普通情況誤差是在參考的和重建的信號間的平方積分差別,所有單元功率信號的平均。最差情況誤差是相同的積分錯誤,不過是對于最差情況單元功率信號。)對于6×8×8映射,此錯誤減少到0.003%的平均數(shù)和0.02%的最差情況。不幸的是,典型信號不是球形帶限的。另一個分析顯示,假定在采樣的2D圖像上連續(xù)雙線性重建,使用6×8×8圖像的第6階的映射產(chǎn)生0.7%和0.2%的平均和最差情況平方誤差,而6×16×16時產(chǎn)生0.2%和0.5%的誤差。
在一個說明性執(zhí)行中,從硬件中析取6×16×16圖像。雖然在點采樣演示中總是正確的,2D圖像的混淆現(xiàn)象仍就是一個問題,因為以上的分析使用從點采樣中的雙線性重建作為參照。為了減少混淆現(xiàn)象,立體映射圖像能在每個維度上被超級采樣(例如,通過一個因數(shù)2),在回讀和投影之前在硬件上執(zhí)行一個盒式過濾大量抽取。基礎函數(shù)結構也被超級采樣,并作為一個預先處理以一個相同的方法進行大量抽取。作為一個光采樣,包括回讀和SH映射,此說明性的執(zhí)行在一個具有ATI Radeon 8500的PIII-933電腦上花費大約1.16毫秒。
4.3體積模型的自轉移在體積數(shù)據(jù)上的自轉移使用與表面相同的框架。這個得到的預先計算的模型允許對照明進行運行時的改變,伴隨著在任何低頻率照明環(huán)境下的正確遮蔽和相互反射。圖12舉例說明一個云模型的圖像,對該圖像使用體積自轉移,以運行時過程300的一個體積自轉移變化(此后描述)來捕獲云模型對它本身遮蔽和分散光。
伴隨表面轉移,一個預處理步驟使用SH基礎函數(shù)作為發(fā)射器模擬在體積上的光亮。對于沒有相互反射的遮蔽轉移(即,直接遮蔽),模擬從發(fā)射器聚集能量到體積的每個體像素p,被此穿過體積的通路衰減,在方向Sd上所需的數(shù)值積分能被表示為(Mp)i0+=A(p→p+Dsd)yi(sd)]]>其中A(p->q)是沿著路徑從p到q的通路的體積綜合衰減,并且D是直到射線(p,Sd)退出立體的距離。為了包括相互反射,模擬橫貫每個體像素p并且沿著隨機方向Sd向前分散它的轉移。此轉移沿著Sd對所有體像素q沉淀直到退出體積,使用規(guī)則(Mq)ib+=A(p→q)(Mp)ib-1]]>在體積上的更多的通路產(chǎn)生進一步的非直接反彈。
演示通過傳統(tǒng)方式被執(zhí)行按從后到前的順序描繪3D體積上的片斷,采用alpha合成來考慮透明性。每個片段是包含轉移矢量的采樣的2D圖像。一個像素陰影物計算照明系數(shù)和需要遮蔽每個片斷的轉移矢量之間的點積。
5.光的鄰近轉移鄰近轉移相對于參數(shù)化的低頻照明來預先計算一個物體O對它鄰近環(huán)境的影響。圖13舉例說明一個懸掛滑翔投射軟陰影到用一個模擬200(圖2)和運行時演示過程300(圖3)的一個鄰近轉移變化(隨后描述)捕獲的一個鄰近波形領域的圖像。傳送模擬和在第3節(jié)預先計算自轉移中的自轉移的模擬是相同的,不過在一個圍繞O的3D空間點內(nèi)發(fā)生,而不是在它上面。在運行時,一個任意的接收者R能放置在這個體積中去捕捉陰影、反射和O在預先不知道R的情況下投射到R上的焦散線。例如,一個移動汽車O能在一個R區(qū)域上投射陰影。投射陰影和照明也能響應照明改變;例如,在R上移動光移動軟陰影。這個通過考慮平滑轉移和允許動態(tài)照明來歸納光的體積(例如,參見Greger,G,Shirley,P,Hubbard,P,和Greenberg,D,發(fā)光體積,IEEE計算機圖形和應用,6(11)21-29,1986)。
由于在預先計算步驟中,R是未知的,O的鄰近體積存儲一個轉移矩陣而不是一個矢量。這個甚至在漫射接收者中也是正確的,因為預先不知道R的法線。
在一個執(zhí)行中,模擬器預先計算包圍O的在一個簡單的3D網(wǎng)格中每個點上的轉移矩陣Mp。在運行時,演示引擎在體積中的每個點上在軟件中從方程式(9)執(zhí)行矩陣變換并上載結果到圖形硬件。結果是一個包括應用于R的轉移光(L’p)i的系數(shù)的一個體積結構。
隨后,在一個像素陰影物中,這個轉移光被用來照明接收者。一個漫射接收者通過使用方程式(6)用余弦加權的半球H*來卷積這個光,并且隨后在R的法線矢量上計算結果的SH投影。平滑接收者執(zhí)行方程式(12)。
接收者預先計算自轉移,帶來了O和R不共享一個公共坐標系的困難。因此,兩個物體的轉移采樣的密集組中的一個必須動態(tài)的旋轉以和另外一個排列。盡管它的復雜性是O(n4),和在方程式(9)中執(zhí)行的矩陣轉換的復雜性是一樣的,較高階投影的旋轉比那個操作更昂貴。提高硬件將迅速解決這個困難。
相比較于自轉移,鄰近轉移產(chǎn)生一些附加的近似誤差。從多個鄰近轉移物體投射陰影或光到相同的接收者是很難來結合的。不是因為O或者R而存在的局部照明變化也是一個問題;穿過O的整個鄰近區(qū)的照明必須是相當穩(wěn)定的以便提供精確的結果。特別的,例如丟失陰影的誤差將在O和R旁邊的物體強制進入O的鄰近區(qū)時出現(xiàn)。O的鄰近區(qū)必須也是足夠大的,以便包圍任意可能投射在R上的投射陰影或光。然而,根據(jù)前面方法,鄰近轉移捕捉作用不可能實時獲取。
6.計算環(huán)境圖6舉例說明一個通用合適計算環(huán)境(600)的例子,這里的說明性實施例可能在該環(huán)境中被執(zhí)行。這個計算環(huán)境(600)不打算建議對本發(fā)明使用范圍或功能的任何限制,因為當前發(fā)明可能在不同的通用或專用計算環(huán)境中實現(xiàn)。
如圖6所示,計算環(huán)境(600)包括至少一個處理單元(610)和存儲器(620)。在圖6中,這個最基礎的配置(630)包括在虛線內(nèi)。處理單元(610)執(zhí)行計算可執(zhí)行指令,并且可能是一個實際或虛擬處理器。在一個多處理系統(tǒng)中,多處理單元執(zhí)行計算可執(zhí)行指令來提高處理能力。存儲器(620)可以是易失性的存儲器(例如,寄存器、緩沖器,隨機存取存儲器等)、非易失性的存儲器(例如,只讀存儲器,電可擦除只讀存儲器,閃速存儲器等)或這兩個的一些結合。存儲器(620)存儲實現(xiàn)具有光自轉移的圖形圖像演示的軟件(680)。
一個計算環(huán)境可以具有附加特征,例如,計算環(huán)境(600)包括儲存器(640),一個或多個輸入設備(650),一個或多個輸出設備(660),以及一個或多個通訊連接(670)。一個互聯(lián)機構(未顯示),例如總線、控制器或計算環(huán)境(600)組件的網(wǎng)絡互連。典型的,操作系統(tǒng)軟件(未顯示)提供一個在計算環(huán)境(600)中運行其它軟件的操作環(huán)境,并協(xié)調(diào)計算環(huán)境(600)的組件的活動。如同已經(jīng)提及的,計算環(huán)境期望包括圖形處理硬件和軟件,例如DirectX和OpenGL函數(shù)庫,和ATI Radeon或Nvidia GeForce視頻卡。
儲存器(640)可能為可移動的或不可移動的,包括磁盤、磁帶或盒式磁帶,CD-ROM,CD-RW,DVD,或任何其他能被用來存儲信息和能在計算環(huán)境(600)中被訪問的介質(zhì)。存儲器(640)存儲軟件(680),該軟件執(zhí)行圖像演示系統(tǒng)(圖1)的指令。
輸入設備(650)可能是一個可接觸的輸入設備,例如鍵盤、鼠標、手寫筆或軌跡球,一個語音輸入設備,一個掃描設備,或其他提供輸入到計算環(huán)境(600)的設備。對于聲音,輸入設備(650)可以是一個聲卡或相似的接受模擬或數(shù)字格式的音頻輸入設備。輸出設備(660)可能是一個顯示器,打印機,揚聲器或提供來自計算環(huán)境(600)的輸出的其他設備。
通訊連接(670)使在一個通訊介質(zhì)到另外一個計算實體上的通訊成為可能。通訊介質(zhì)傳送諸如計算機可執(zhí)行指令、壓縮音頻或視頻信息信號,或在一個已調(diào)制的數(shù)字信號中的其他數(shù)據(jù)之類的信息。一個已調(diào)制數(shù)據(jù)信號是這樣一個信號,它的一個或更多的特征隨著在信號中的信息而設置或改變。作為例子,而不是限制,通訊媒體包括通過電、光、射頻(RF)、紅外、聲或其他載體執(zhí)行的有線或無線技術。
此發(fā)明可以在計算機可讀媒體的普通環(huán)境中描述。計算機可讀媒體是任意可用媒體,它能夠在計算環(huán)境中被訪問。作為例子,而不是限制,對于計算環(huán)境(600),計算機可讀媒體包括存儲器(620)、儲存器(640)、通訊介質(zhì)和上面的任意結合。
此發(fā)明可以在計算機可執(zhí)行指令的普通環(huán)境中描述,例如包括在程序模塊中的那些,在一計算環(huán)境中在一個目標真實或虛擬處理器上執(zhí)行。通常地,程序模塊包括執(zhí)行特殊任務或實現(xiàn)特殊抽象數(shù)據(jù)類型的例程、程序、庫、對象、類、組件、數(shù)據(jù)結構等。此程序模塊的功能可以按照不同實施例中所期望的在程序模塊中被結合或分開。程序模塊的計算機可執(zhí)行指令可以在一個本地或分布式計算環(huán)境中被執(zhí)行。
為了陳述,詳細描述使用類似“確定”,“得到”,“調(diào)節(jié)”,和“應用”等術語去描述在一個計算環(huán)境中的計算操作。這些術語是對計算機執(zhí)行操作的高度抽象,不能和人所執(zhí)行的行為混淆。對應于這些術語的實際計算機操作依據(jù)執(zhí)行而變化。
參照一個說明性的實施例已經(jīng)描述和舉例說明的本發(fā)明的原理,應該意識到說明性的實施例能夠在不脫離此原則的情況下在結構和細節(jié)上進行更改。必須理解在這里描述的程序、處理或方法不涉及或限制于任何特殊計算環(huán)境類型,除非另外指明。各種通用或專用計算環(huán)境的不同類型可能被使用或執(zhí)行根據(jù)在此處描述的教導的操作。在軟件中顯示的說明性實施例的諸單元可能在硬件上被實現(xiàn),反之亦然。
考慮到本發(fā)明的原則可能被引用于許多可能的實施例上,我們要求將所有可能在下面的權利要求及其等效范圍中的所有實施例都視為我們的發(fā)明。
權利要求
1.一種實時地演示一個幾何模型化物體平面的計算機圖形圖像的計算機執(zhí)行方法,方法包括為照明環(huán)境中的至少一個采樣點計算源照明數(shù)據(jù);根據(jù)為模型化物體的表面上多個位置預先計算的光轉移數(shù)據(jù),對被計算的源照明數(shù)據(jù)執(zhí)行一個線性轉換,來為一個觀察方向獲取從這些位置上退出光的數(shù)據(jù),表示光響應的光轉移數(shù)據(jù)包括在參考低頻照明環(huán)境下在到源光的位置上的模型化物體的全局傳送作用;根據(jù)從位置的退出光來產(chǎn)生在照明環(huán)境下具有遮蔽的觀察方向上的模型化物體的一個圖像。
2.如權利要求1所述的方法,其特征在于,在模型化物體的漫射表面情況下,執(zhí)行線性轉換包括計算源光矢量和一個預先計算的光轉移矢量的點乘,源光矢量表示在一個采樣點的源光和預先計算的光轉移矢量表示在模型化物體的漫射表面上一個位置處的光響應。
3.如權利要求1所述的方法,其特征在于,在模型化物體表面平滑的情況下,執(zhí)行線性轉換包括為照明環(huán)境中的至少一個采樣點計算源光矢量;作為源光矢量的一個函數(shù)確定從該位置的一個觀察方向上的退出光、表示該位置的光響應的數(shù)據(jù)以及該位置的一個雙向反射比分布函數(shù)。
4.如權利要求1所述的方法,其特征在于,在模型化物體的表面平滑的情況下,執(zhí)行線性轉換包括為照明環(huán)境中的至少一個采樣點計算源光矢量;根據(jù)源光矢量和表示該位置的光響應的數(shù)據(jù)確定該位置的轉移光;和根據(jù)該位置的轉移光和一個雙向反射比分布函數(shù)確定從該位置一個觀察方向上的退出光。
5.如權利要求1所述的方法,其特征在于,在模型化物體的表面平滑情況下,執(zhí)行線性轉換包括執(zhí)行源光矢量和預先計算的光轉移矩陣的一個矩陣-矢量乘法,該源光矢量表示在采樣點的源光,該光轉移矩陣表示該模型化物體平滑表面上一個位置處的光響應;將矩陣-矢量相乘的結果與在模型化物體平滑表面上該位置的一個雙向反射比分布函數(shù)進行卷積;和估計一個觀察方向上的卷積結果。
6.一種實時地演示在一個幾何模型化物體的一個漫射平面的計算機圖形圖像的計算機執(zhí)行方法,方法包括在一個照明環(huán)境下投射光到一個球形諧函數(shù)基礎來產(chǎn)生對于模型化物體的至少一個位置的一個照明系數(shù)矢量;計算所述照明系數(shù)矢量與漫射平面上的至少一個位置處的預先計算的光轉移矢量的點乘,來產(chǎn)生對于照明環(huán)境和觀察方向的模型化物體漫射平面上至少一個位置處的退出光,預先計算的光轉移矢量表示光響應,光響應包括在參考低頻照明環(huán)境下,在到源光的至少一個位置處的漫射表面的全局傳送作用;計算在至少一個位置上的模型化物體的漫射表面的遮蔽;產(chǎn)生具有遮蔽的模型化物體的漫射表面的一個圖像。
7.一種實時地演示在一個幾何模型物體上的一個平滑平面的計算機圖形圖像的計算機執(zhí)行方法,方法包括在一個照明環(huán)境下投射光到一個球形諧函數(shù)基礎來產(chǎn)生對于模型化物體的至少一個位置的一個照明系數(shù)矢量;將從平滑平面上至少一個位置的一個觀察方向的退出光確定為一個照明系數(shù)矢量的函數(shù),一個預先計算的光轉移矩陣數(shù)據(jù)表示光響應,包括在一個參考低頻照明環(huán)境下到源光的在至少一個位置上的平滑表面的全局傳送作用;計算在至少一個位置上的模型化物體的平滑表面的遮蔽;產(chǎn)生具有遮蔽的模型化物體的平滑表面的一個圖像。
8.如權利要求7所述的方法,其特征在于,為一個觀察方向確定退出光包括為平滑表面上至少一個位置執(zhí)行照明系數(shù)矢量和預先計算的光轉移矩陣的一個矩陣-矢量乘法,預先計算的光轉移矩陣表示光響應,包括在參考低頻照明環(huán)境下到源光的在至少一個位置上的平滑表面的全局傳送作用。將矩陣-矢量相乘的結果與在模型化物體平滑表面上該位置的一個雙向反射比分布函數(shù)進行卷積;和計算一個觀察方向上的卷積結果。
9.如權利要求7所述的方法,其特征在于,確定一個觀察方向上的退出光包括根據(jù)所述照明系數(shù)矢量與光滑表面上至少一個位置處的預先計算光轉移矩陣的矩陣-矢量乘積計算退出光,預先計算光轉移矩陣表示光響應,包括在參考低頻照明環(huán)境下到源光的在至少一個位置上的平滑表面的全局傳送作用。
10.一個體積模型的計算機圖形圖像實時演示的計算機執(zhí)行方法,該方法包括為照明環(huán)境中至少一個采樣點計算源光數(shù)據(jù);根據(jù)為體積模型的多個體積元素預先計算的光轉移數(shù)據(jù),對被計算的源照明數(shù)據(jù)執(zhí)行一個線性轉換,來為一個觀察方向獲取來自這些體積元素的退出光的數(shù)據(jù),光轉移數(shù)據(jù)表示光響應,所述光響應包括在參考低頻照明環(huán)境下這些位置上到源光的體積模型的全局傳送作用;根據(jù)來自這些位置的退出光在觀察方向上產(chǎn)生具有遮蔽的照明環(huán)境中的模型化物體的一個圖像。
11.如權利要求10所述的方法包括作為一個預先計算,對于一個被參數(shù)化成入射光球體的球形諧函數(shù)基礎投影的參考低頻照明環(huán)境,執(zhí)行體積上的一個全局照明模擬,這個投影具有球形諧函數(shù)系數(shù),這個模擬計算體積模型的多個體積元素的光轉移,這個模擬引入了體積模型的自遮蔽和相互反射;和記錄多個體積元素的全局照明模擬,作為源光的球形諧函數(shù)系數(shù)的一個線性轉換來形成光轉移數(shù)據(jù)。
12.如權利要求11所述的方法,其特征在于,包括執(zhí)行在體積模型上的多通路中的全局照明模擬;在第一遮蔽通路中,模擬參考低頻照明環(huán)境中體積模型多個體積元素的直接照明,包括沿著通過該體積模型的路徑的衰減;在隨后的相互反射通路中,模擬體積模型的其他體積元素對體積模型的這些體積元素的相互反射照明,包括通過該體積模型的衰減;重復相互反射通路直到符合一個標準;和對一個采樣點,將第一遮蔽通路和隨后的相互反射通路中積累的光轉移數(shù)據(jù)相加來產(chǎn)生該采樣點的總光轉移。
13.一種在有模型化物體的場景中的模型化接收者的計算機圖形圖像的實時演示的計算機執(zhí)行方法,該方法包括為照明環(huán)境中至少一個采樣點計算源光數(shù)據(jù);根據(jù)為模型化物體周圍鄰近空間中多個采樣點預先計算的光鄰近轉移數(shù)據(jù),執(zhí)行對計算的源光數(shù)據(jù)的線性轉換,來獲得模型化接收者在這些位置處一個觀察方向上光轉移數(shù)據(jù),光轉移數(shù)據(jù)表示光響應,該光響應包括在參考低頻照明環(huán)境下在模型化物體周圍鄰近空間中各采樣點處該模型化物體對源光的全局傳送作用;根據(jù)來自這些位置的轉移光產(chǎn)生模型化接收者在照明環(huán)境中該觀察方向上帶有遮蔽的一個圖像。
14.如權利要求13所述的方法,其特征在于,執(zhí)行線性轉換的動作包括執(zhí)行一個動態(tài)旋轉來使得采樣點的一個坐標系方向和模型化接收者坐標系方向相一致。
15.如權利要求13所述的方法,其特征在于,包括作為一個預先計算,對于一個被參數(shù)化成源光球體的球形諧函數(shù)基礎投影的參考低頻照明環(huán)境,執(zhí)行模型化物體的一個全局照明模擬,這個投影具有球形諧函數(shù)系數(shù),這個模擬計算模型化物體周圍鄰近空間中多個采樣點的光轉移,這個模擬引入了該模型化物體的遮蔽和反射;和記錄多個采樣點的全局照明模擬,作為源光的球形諧函數(shù)系數(shù)的一個線性轉換來形成光轉移數(shù)據(jù)。
16.如權利要求15所述的方法,其特征在于,為多個采樣點記錄全局照明模擬,作為源光的球形諧函數(shù)系數(shù)的一個線性轉換所采用的形式是對于模型化物體周圍3維柵格中的多個點的一個轉移矩陣。
17.如權利要求15所述的方法,其特征在于,包括執(zhí)行在多通路中的全局照明模擬;在第一遮蔽通路中,模擬參考低頻照明環(huán)境中模型化物體周圍鄰近空間中多個采樣點的直接照明,包括來自該模型化物體的遮蔽;在隨后的反射通路中,模擬模型化物體對采樣點的反射照明;重復相互反射通路直到符合一個標準;和對一個采樣點,將第一遮蔽通路和隨后的相互反射通路中積累的光轉移數(shù)據(jù)相加來產(chǎn)生該采樣點的總光轉移。
全文摘要
在低頻照明環(huán)境中的漫射和平滑物體的實時圖像演示捕捉軟陰影、相互反射和焦散線。作為一個預先處理,一個綜合傳送模擬器在物體表面創(chuàng)建函數(shù),表示任意的轉移,低頻入射光到退出光,可是包括從物體到自己上面的類似遮蔽和相互反射的綜合作用。在運行時刻,這些轉移函數(shù)被應用在實際入射光。通過在每個幀上接近物體的采樣來處理動態(tài)的、本地的照明;此物體也能夠通過照明固定地旋轉,反之亦然。照明和轉移函數(shù)通過使用低次序球形諧波來表示。穿過一個預處理物體從一個動態(tài)照明環(huán)境到空間上鄰近點的光轉移函數(shù)還允許投射軟陰影和從固定移動投射到任意、動態(tài)接收者的焦散線。
文檔編號G06T15/80GK1991916SQ20071000447
公開日2007年7月4日 申請日期2003年3月21日 優(yōu)先權日2002年3月21日
發(fā)明者P·P·J·斯隆, J·M·辛德, J·闊茲 申請人:微軟公司