• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            轉(zhuǎn)自:http://www.cgfancy.com/Article/1715.html
            01.概述
                CGI技術(shù)是一門(mén)非常年輕而且發(fā)展迅速的科學(xué)。其它相關(guān)的還有許多技術(shù)也在很短的時(shí)間內(nèi)迅速的壯大,用于模擬自然現(xiàn)象,但它們只限于解決某一方面的問(wèn)題,對(duì)我們來(lái)說(shuō)選擇合適的技術(shù)來(lái)解決相應(yīng)的問(wèn)題比較困難。出于人們認(rèn)識(shí)光與物質(zhì)相互作用的方式,一些主要的技術(shù)脫穎而出,這其中最常用的是工作于物體表面的技術(shù),另外就是CGI技術(shù)的到來(lái)。它的原理是向場(chǎng)景里發(fā)射光線來(lái)收集必要的信息,重建真實(shí)自然現(xiàn)象的一個(gè)關(guān)鍵問(wèn)題是需要大量的信息。假設(shè)在我們所處的環(huán)境里,包括看不見(jiàn)的地方,有大量帶有能量的光線穿過(guò),它們?cè)趫?chǎng)景中哪怕是最狹小的地方以某種方式相互作用,這些光線的能量以不連續(xù)的形式存在(愛(ài)因斯坦光子說(shuō))。物體表面的原子會(huì)吸收光子使自已的能級(jí)升高,受到激發(fā)的不穩(wěn)定原子會(huì)自發(fā)的地回到最低能級(jí),并將減少的那部分能量以光子的形式釋放出來(lái),這些光子根據(jù)發(fā)射它原子的種類(lèi)有特定的波長(zhǎng)。打個(gè)比方吧,太陽(yáng)光包含很多不同波長(zhǎng)的電磁波,但這里面只有一小部分能被我們的眼睛所識(shí)別。人造光源一般都有特定的顏色,因?yàn)樗鼈兒懈髯蕴囟ǖ脑亍R粋€(gè)典型的鎢極光源發(fā)出的光有一定的頻率范圍,這就是我們看到的橙色。同樣,氖光源發(fā)出的光是綠色。
                自然界的這種吸收和發(fā)出光能的現(xiàn)象無(wú)時(shí)無(wú)刻不在我們的身邊出現(xiàn)。我們的眼睛扮演著攝像機(jī)的角色,收集和識(shí)別從四面八方射過(guò)來(lái)的光線的波長(zhǎng)(顏色)和光子數(shù)量(強(qiáng)度)。我們看到的圖像正是在空間的某一點(diǎn)處眾多光線的靜止?fàn)顟B(tài)。前面的內(nèi)容僅僅從物理學(xué)的角度粗略的介紹了一下,但這樣就足夠了,我們沒(méi)有必要考慮更深一層的物理知識(shí)。這些內(nèi)容足已解釋我們看到的真實(shí)世界,今后的學(xué)習(xí)制作過(guò)程也足夠用了。

            02.用CGI技術(shù)重現(xiàn)生活中的例子
                前面說(shuō)過(guò)每個(gè)原子都會(huì)吸收和發(fā)射光線,物體的顏色決定于反射光線的波長(zhǎng)和物質(zhì)原子的種類(lèi)。入射光線反射后向四面八方散射,但要根據(jù)入射光線方向反射(否則反射也不會(huì)進(jìn)行),也許多物體不會(huì)直接在表面反射光線,像氣體。光線會(huì)在大多數(shù)物質(zhì)里傳播,并被物質(zhì)內(nèi)部的原子吸收和反射掉。像下圖中的蠟球,這種蠟物質(zhì)吸收除了綠色和黃色之外的所有波長(zhǎng)的光線(至少除黃綠色外的絕大多數(shù)光線),然后像大多數(shù)物體一樣作為綠光的發(fā)射物體(除了黑洞之外)。你們可以看到當(dāng)蠟球靠近光源后它顯現(xiàn)出黃綠色。

             


             


                你們當(dāng)中很多人可能都知道,在過(guò)去的幾年中出現(xiàn)的很多光線跟蹤渲染器都能模擬在“電腦產(chǎn)生的表面內(nèi)部散射光線”,也叫做SSS(Sub Surface scattering)。很多渲染器都使用相似的原理,像GI中的采樣方式,在某一點(diǎn)發(fā)射多條光線到場(chǎng)景中,這些光線經(jīng)反射后攜帶了物體表面的顏色信息,以此來(lái)確采樣點(diǎn)的顏色,典型的例子-Monte Carlo。不同的渲染器在保證圖像質(zhì)量不變的前提下有不同的縮短渲染時(shí)間的方式,因?yàn)橛写罅康墓饩€信息需要收集。這之中有簡(jiǎn)單的采樣點(diǎn)插值算法過(guò)濾器;也有智能化的能識(shí)別物體邊緣尖銳部分的高級(jí)插值算法過(guò)濾器,它能在需要的地方放置合適的采樣點(diǎn);還有適用于動(dòng)畫(huà)的采樣引擎。聽(tīng)起來(lái)這些算法都很高深,其實(shí)我們只要知道我們的工作是要找到合適的方法對(duì)付巨長(zhǎng)的渲染時(shí)間就行了。我在95到96年第一次接觸3D軟件的時(shí)候試著用一個(gè)光源照亮一個(gè)鏡面屬性的球體,但失敗了。當(dāng)我用手電照射整個(gè)臥室的時(shí)候,臥室會(huì)有一點(diǎn)亮光,但在3D中除了聚光燈的圓錐范圍內(nèi)其它的地方一片黑暗。我想,為什么會(huì)這樣呢?后來(lái)我知道了,因?yàn)樗械奈矬w都是反光體,我們平時(shí)看到光大多數(shù)光線都是反射光線。
                朋友們你們是否知道,Blinn和Phong這些表面Saders是怎樣工作的嗎?固有色,高光到底是什么呢?在很長(zhǎng)的一段時(shí)間里,我只知道怎樣使用它們,怎樣用它們達(dá)到預(yù)期的效果,但我從不知道它們真正代表著什么。

             


                上面提到過(guò),所有的物體都會(huì)吸收和發(fā)出光線。一個(gè)全反射材質(zhì),也就是反射全部光線的材質(zhì),像表面鍍了金屬的玻璃,它表面的每一個(gè)點(diǎn)都包含了環(huán)境的信息。當(dāng)光線在物體表面反射后一部分光線被吸收,反射光線變?nèi)跚冶?#8220;染色”。因此過(guò)渡色就是物體表面除吸收的那一部分的帶有表面顏色的反射光線。在現(xiàn)實(shí)中絕大多數(shù)表面都會(huì)有一定程度的粗糙度,我不是說(shuō)肉眼可以看到的凹凸不平,而是微觀上的表面粗糙。不同的Saders能夠快速有效地模擬表面的粗糙方式。高光就是反射最多,光線聚集最強(qiáng)烈的那一部分表面產(chǎn)生的。地過(guò)渡色區(qū)域也會(huì)有小面積的高光,但隨著表面和光源的距離拉大高光也漸漸地變的不明顯了。這樣的高光在現(xiàn)實(shí)世界并不存在,這是因?yàn)楝F(xiàn)實(shí)世界不存在3D軟件中的理想光源(點(diǎn)光源和面光源)。現(xiàn)實(shí)世界中的光源總會(huì)有一定的形狀,這樣高光區(qū)會(huì)表現(xiàn)有一定的細(xì)節(jié)而且可以看到光源的形態(tài)。參考下圖中的皮革,射到高光區(qū)的光線來(lái)自窗外的陽(yáng)光,可以看到真實(shí)表面的細(xì)節(jié)是很復(fù)雜的。可以說(shuō)高光區(qū)只是過(guò)渡色區(qū)域中反射較強(qiáng)的表面。像這樣的反光表面只用一個(gè)簡(jiǎn)單的Sader是不可能實(shí)現(xiàn)的,我們必需用真正的光源來(lái)模擬窗外的光線。或許還要用反射模糊來(lái)模擬過(guò)渡色區(qū)域的光線散射,用一點(diǎn)過(guò)濾色模擬表面吸收不同的光線產(chǎn)生的顏色。這可能就是這幾年來(lái)HDRI如此流行的緣故吧。HDRI不僅可以產(chǎn)生高質(zhì)量的間接照明,還可以用渲染出真實(shí)的反射和高光區(qū)的精彩細(xì)節(jié)。

             


             


                這是一幅勺子的照片,主光來(lái)自上方。勺子的中心有非常強(qiáng)烈的高光,有趣的是周?chē)€有一圈圈的刮痕。每一圈刮痕可以看成在它邊緣處反光的圓柱形凸痕。光線在它們之間反射,這樣反射光線在某個(gè)方向上散射開(kāi)來(lái),也就是CGI里所謂反射的各向異性。
            在這張圖片中我們看到主光在高光區(qū)的中心形成一個(gè)十字。像打磨過(guò)的金屬和毛發(fā)這類(lèi)物質(zhì)常發(fā)生這種現(xiàn)象,而且針對(duì)這種高光已經(jīng)有不同的Shaders算法了。我要指出的是這些算法都必需能快速的產(chǎn)生各向異性的高光。如果想渲染出正確的高光就必需用真實(shí)的物體,或者至少用凹凸貼圖模擬刮痕(這個(gè)Shaders用在CGI毛發(fā)上一點(diǎn)意義都沒(méi)有,因?yàn)檫@種現(xiàn)象是由許多許多細(xì)小的圓柱體產(chǎn)生的)。我只發(fā)現(xiàn)在使用不透明貼圖的時(shí)候這種Shaders才管用。

             


                光線還可以表現(xiàn)出另一種特性。當(dāng)光線與表面的夾角很小的時(shí)候光線趨向于在表面反射,但當(dāng)光線跟表面接近垂直時(shí)趨向于穿透表面介質(zhì)。這也是一種很重要的特性,叫做Fresnel(菲涅耳效應(yīng))光學(xué)纖維這種物質(zhì)常發(fā)生這種現(xiàn)象。許多渲染器都支持這個(gè)特效。下面的圖我們能很清楚地看到這個(gè)效應(yīng),在角度很小的情下況液晶屏反射很強(qiáng)烈,但垂直看時(shí)大多光線都穿過(guò)了塑料殼而被黑色的LCD吸收了。幾乎所有的材質(zhì)都或多或少的表現(xiàn)出這種特性,特別是透明物體(幾乎所有的物體都是“透明”的,只不過(guò)這取決于物體原子吸收光線的多少罷了)。

             


             


                好,我想到現(xiàn)在為止我已向你們介紹了光線的反射原理。我希望你們能在這里學(xué)到一些有用的東西。下面的是一些焦散(Caustics)和散射(Dispersion)的圖片。還有一張圖片,上面是一個(gè)物體和陰影,我想告訴你們的是這個(gè)透明物體的陰影和我的手一樣也是不透明的,這是初學(xué)者對(duì)透明物體使用光線跟蹤陰影時(shí)常犯的一個(gè)毛病。
                如果你們有問(wèn)題的話盡管問(wèn)吧。請(qǐng)睜大眼睛隨時(shí)留心你的身邊,發(fā)覺(jué)周?chē)唤?jīng)意的小事,有時(shí)它也是美麗的。作為一個(gè)藝術(shù)家這樣有助于提高你技術(shù)方面的理解。





            01.反射的奧秘-第二部分
                在第二部分中Philipp Zaufel用通俗的語(yǔ)言描述了BRDF(雙向反射分布函數(shù))--一個(gè)CG中最常用的用來(lái)描述材質(zhì)反射行為的數(shù)學(xué)模型。

            02.總論
                BRDF-雙向反射分布函數(shù),是用來(lái)描述材質(zhì)反射行為的函數(shù),是一個(gè)數(shù)學(xué)模型。這篇小教程是為藝術(shù)工作者寫(xiě)的,而不程序員。有關(guān)BRDF的技術(shù)資料有很多,但我的目的是想讓你們了解如何讓它正確的工作,而不是大篇幅的羅列。BRDF在CG中無(wú)處不在。當(dāng)你使用Phong,Blinn或者其它Shader的時(shí)候你就在使用BRDF模型。要是你用光線跟蹤制作反射,陰影或者產(chǎn)生GI效果的時(shí)候,你也在無(wú)形中使用著B(niǎo)RDF模型。
                一個(gè)BRDF模型描述了一種表面上入射和反射光線的關(guān)系。因此說(shuō)簡(jiǎn)單點(diǎn)就是光線射到表面上,表面對(duì)光線產(chǎn)生作用。光線可以被反射(鏡面的或漫射的),吸收,或兩者都有。我們可以通過(guò)測(cè)量一種真實(shí)物體表面上的反射和入射光線來(lái)描述這種材質(zhì)和它形成的BRDF,測(cè)量的結(jié)果可以用在CG程序中來(lái)產(chǎn)生有相同表面屬性的材質(zhì)。但大多數(shù)情況下會(huì)使用簡(jiǎn)化的,帶可調(diào)節(jié)參數(shù)的模型來(lái)產(chǎn)生CG表面。這些反射模型可以是精確的,也可以是經(jīng)驗(yàn)化的。這里我們關(guān)心的是精確的分析反射模型。因?yàn)樗锩娴膮?shù)或者說(shuō)方程是基于真實(shí)世界的,并且為了能使材質(zhì)疊加產(chǎn)生復(fù)雜的SHADERS,它們也使用在CGI中。像Robertson-Sandford和Beard-maxwell這些經(jīng)驗(yàn)?zāi)P停鼈冇玫氖翘摌?gòu)的參數(shù)來(lái)構(gòu)建簡(jiǎn)化的BRDF。下面我會(huì)提到一些高級(jí)的反射模型。像BTDF,BSDF,BDF和BSSDF,這是為了澄清一個(gè)事實(shí):一個(gè)BRDF只是依據(jù)表面屬性,入射光角度(同它的參數(shù))和視角來(lái)描述光線的反射。
                BTDF-雙向傳輸分布函數(shù),描述了透明的表面屬性,過(guò)程是通過(guò)矢量計(jì)算表面的兩個(gè)方向(不是同一個(gè)計(jì)算過(guò)程)。BRDF和BTDF合起來(lái)就是BSDF,簡(jiǎn)稱BDF--雙向散射分布函數(shù),描述表面上同一點(diǎn)處兩個(gè)方向的半球的函數(shù)。這些就是高級(jí)(鏡面)光線跟蹤渲染的基礎(chǔ)函數(shù)。BSSDF--雙向表面散射反射分布函數(shù),它的發(fā)明者就是發(fā)明光子貼圖的那個(gè)人,Henrik Jensen。它描述了物體內(nèi)部的光線散射。好萊塢,概論就這么多,下面我們一一介紹吧。

            03.完美的漫射材質(zhì)——Lambert
                這是個(gè)非常簡(jiǎn)單的模型,而且距今已有200年的歷史了。在CG場(chǎng)景中它無(wú)處不在。這個(gè)模型描述了一個(gè)完美的漫射表面。入射光在表面上向四周等量的散開(kāi),如果從不同的角度觀察表面的話會(huì)看到同樣的顏色(各向同性)。唯一不同的是入射的角度。入射擊角為90度時(shí)表面亮,反之則暗。這種模型在生活中是很常見(jiàn)的,但生活中這種的完美的漫射表面非常少,這就是CG表面看不去是電腦產(chǎn)生的表面的原因。就因?yàn)樗乃俣认喈?dāng)快,而且非常普及,因此它成為實(shí)時(shí)渲染表面SHADER中最常見(jiàn)常用的一個(gè)。
                Gourad Sading是實(shí)時(shí)渲染技術(shù)中的一員,因?yàn)樗皇腔诿肯袼赜?jì)算的,而是基于頂點(diǎn)的計(jì)算方法,計(jì)算頂點(diǎn)色值后在各頂點(diǎn)間運(yùn)用插值算法來(lái)形成多邊形。(新一代的顯卡都支持實(shí)時(shí)像素陰影渲染,并且這些成熟的模型都成為了今天的標(biāo)準(zhǔn),但這不是今天我們討論的話韙。)
                這個(gè)模型大多數(shù)情況下在物理上是正確的,這意味著一些重要的物理規(guī)則被保留了。其中有一個(gè)就是反射光線的能量總和一定小于入射光線的能量。另一條是對(duì)不同顏色的吸收原則,比如說(shuō)過(guò)渡色為黑色的物體吸收掉所有的入射光線,并不產(chǎn)生反射(過(guò)渡色——一個(gè)Lambert模型引申出的重要參數(shù))。

            按此在新窗口瀏覽圖片

            04.Lambert的例子
                上圖中的個(gè)球體都被賦予了Lambert材質(zhì)。第1,2個(gè)是同一個(gè)球休的不同視角。圖中紅圈表示球上的同一個(gè)點(diǎn)。可以看到Lambert材質(zhì)在不同的視角產(chǎn)生相同的顏色。第3,4個(gè)球體是同一個(gè)模型。它們反射的光線較前兩個(gè)少,第三個(gè)是BRDF的典型模型——環(huán)境色(ambient)。它只是在整個(gè)圖像中增加了另一種顏色來(lái)模擬環(huán)境的光照,但這種方法沒(méi)什么大用,因?yàn)樗粫?huì)讓你的圖像變的不真實(shí)。要模擬環(huán)境光的話試著多打幾個(gè)燈或者干脆用GI。

            按此在新窗口瀏覽圖片



            05.簡(jiǎn)易的鏡面反射模型————Phong,Blinn-Phong.
                上面的圖顯示的是物理上真實(shí)的境面反射--高光。左邊一個(gè)是Lambert,完美的漫射。紅色的入射光線反射后被等量的向四周反射。第二個(gè)是完美的鏡面反射,渲染器用這個(gè)原理來(lái)產(chǎn)生完美的鏡面,像鏡子等。第三個(gè)是反射模糊,反射光線由于表面的微小凹突在鏡面反射的路線上產(chǎn)生了偏移。現(xiàn)在我們已經(jīng)了解了許多描述表面上不同部分的模型,上面介紹的只是最簡(jiǎn)單的幾個(gè)。還有一些描述不同類(lèi)型鏡面反射的模型(因?yàn)樵S多表面都有不規(guī)則的地方)。最簡(jiǎn)單的幾個(gè):
                1975年P(guān)hong Bui Tong發(fā)明的Phong模型,由于它的速度相當(dāng)快,成為了CG表面鏡面反射應(yīng)用最多最廣泛的模型。它不是物理上精確的模型,你可以設(shè)置高光的強(qiáng)度使發(fā)送的光線大于接收的光線,而這在現(xiàn)實(shí)中是不可能的。但因?yàn)镃GI是一種藝術(shù)創(chuàng)作,那么這也是可行的。

                下圖中最左側(cè)的球體是Phong模型,這種模型的一大優(yōu)點(diǎn)是你可以跟其它的模型混合使用來(lái)達(dá)到不同的效果。最常見(jiàn)的就是把phong跟Lambert混合產(chǎn)生第二個(gè)球體的效果。注意我用了相同的燈光照亮球體(位置,強(qiáng)度)。混合后的結(jié)果是高光變亮了。這樣做的優(yōu)點(diǎn)是你可以調(diào)整模型中的不同參數(shù)(顏色,高光強(qiáng)度....)來(lái)達(dá)到真實(shí)的效果。右面的兩張圖顯示了Phong的高光在入射角上和視角上都是獨(dú)立的。這個(gè)三維圖中的白色線框代表了藍(lán)色垂直入射光線在紅色板處反射的反射光線的方向和強(qiáng)度大小。入射點(diǎn)周?chē)陌肭蚴峭昝赖腖ambert漫射,而由于Phong高光的存在在頂部有一小部分的突起。實(shí)質(zhì)上Phong高光就是在入射光方向上產(chǎn)生了較強(qiáng)的反射,加上入射點(diǎn)周?chē)母吖鈪^(qū),再加上Lambert的漫射區(qū)形成了整個(gè)球體。當(dāng)光線從另一個(gè)角度入射時(shí)只是反射角度依據(jù)入射角=反射角定理變化。

            按此在新窗口瀏覽圖片



                Blinn-Phong模型,也叫Blinn,是Phong模型最常見(jiàn)的變化類(lèi)型。做為CG領(lǐng)域的先驅(qū),Blinn改進(jìn)了Phong模型的一些高光上的問(wèn)題。Blinn模型混合了Lambert的漫射部分和標(biāo)準(zhǔn)的高光,在速度上相當(dāng)快,因此成為許多CG軟件中的默認(rèn)材質(zhì)。此外它也集成在了大多數(shù)圖形芯片中,用以產(chǎn)生實(shí)時(shí)快速的渲染。如下圖:這兩個(gè)球體使用相同的光照和相同的參數(shù)(Blinn和Phong高光的基本參數(shù)是相同的)。看上去上圖中的Phong球和下圖中的Blinn球沒(méi)什么區(qū)別,除了Blinn球看上去更加柔和。但我們來(lái)看看不同角度下的反射值(圖3,4),就能看到非常明顯的區(qū)別。在入射角為90度的情況下反射就像是非常柔和的的Phong高光,但角度很小時(shí)高光的反射處明顯被撕裂。這是因?yàn)檫@兩個(gè)的BRDF模型的算法有微小的區(qū)別,但這有什么用呢?

            按此在新窗口瀏覽圖片



                下圖說(shuō)明了Phong和Blinn視覺(jué)上的不同。在入射角很小的情況下有個(gè)主要的區(qū)別。因此我為球體打了兩個(gè)燈,一個(gè)從頂部,一個(gè)從底部,都與攝像機(jī)成90度角。第一個(gè)是Phong球,第二個(gè)是相同條件下的Blinn球。結(jié)果是由于球體上三角面的角度不同Phong的高光被扭曲了,但Blinn球保證了高光的完整性。好了,你可以根據(jù)你自己的需要選擇Phong還是Blinn,我個(gè)人認(rèn)為Phong高光更正確一些,但Blinn高光的可控性更好。因?yàn)樗深A(yù)測(cè),特別是在復(fù)雜的表面上,因此它被用做CG軟件中最基本,也最快的BRDF模型。圖中第3,4個(gè)球使用了光線跟蹤的鏡面反射,反射出了一個(gè)環(huán)境,同樣是第一個(gè)用Phong,第二個(gè)用Blinn的BRDF模型。注意,許多渲染程序并不支持鏡面反射渲染的BRDF模型,而是使用自己的聚焦算法。
                你們可以看到Phong上相同的扭曲效果和Blinn球上清晰柔和的反射(渲染條件完全相同,唯一不同的是不同的渲染結(jié)果)。

            按此在新窗口瀏覽圖片

            06.背部反射:Minnaert,Hapkel/Lommel-Seelinger
                到此我們已經(jīng)了解了最基本的均勻漫射和高光反射部分的反射模型,但是Phong和Blinn只適用于遵守入射角=反射角原理的鏡面反射。現(xiàn)實(shí)中的表面都會(huì)有各種各樣的缺陷,因此光線會(huì)以不同的方式散射----SSS特效或稱背部散射。
                明顯,背部散射就是表面在其背面反射光線。為達(dá)到這種效果出現(xiàn)了許多不同的模型,同時(shí)還與其它的模型混合來(lái)達(dá)到更加復(fù)雜的效果。最常見(jiàn)的一個(gè)是Minnaert模型。它使用與Lambert相同的算法,只是增加了一個(gè)使表面變暗的參數(shù)來(lái)降低正常反射方向上的亮度。下圖中的第一個(gè)球就是Minnaert模型。它最初是用來(lái)描述月亮的BRDF的(基本Lambert反射加一點(diǎn)背部反射,世間少有)。Minnaert模型不允許有過(guò)大的背部散射值和邊緣光照效果。但由于它是基于Lambert漫射的因此它的速度相當(dāng)快。而Hapkel/Lommel-seelinger模型就有一點(diǎn)復(fù)雜了,但是你也可以改變背部和前部的散射量來(lái)產(chǎn)生更多的光線散射效果。這些模型很廣泛的應(yīng)用在表面上有微小毛發(fā)的材質(zhì)和天鵝絨材質(zhì),這些材質(zhì)會(huì)在其毛發(fā)的頂部產(chǎn)生邊緣背部散射光線。第三個(gè)球體是Hapke/Lommel-Seelinger的一個(gè)變種,主要用來(lái)模擬帶有絨毛的纖維。我在其背部打了一個(gè)藍(lán)色的燈,以區(qū)別白色的過(guò)渡色。注意這些模型都加上了一些其它的參數(shù),因?yàn)楹苌儆袖秩酒髂苤С譀](méi)有更改過(guò)的純模型。

            按此在新窗口瀏覽圖片

            07.基于Lambert三角面的高級(jí)粗糙表面:Torrance,Sparrow,Cook,Blinn,Oren-Nayar
                建立一個(gè)描述粗糙表面的數(shù)學(xué)模型的想法很早就有了。Torrance和Sparrow1967年設(shè)計(jì)出了一個(gè)以表面作為基準(zhǔn)面的BRDF(早于Phong)。基面上分布有許多微小的三角面,用它們之間形成的角度來(lái)描述表面的粗糙程度。由于相鄰三角面間形成的槽之間的角度正好相反,因此也叫它為V形槽。這個(gè)模型在物理上是正確的,因?yàn)樗褂玫氖钦鎸?shí)世界的參數(shù)來(lái)描述反射的分布,而且它具有波長(zhǎng)獨(dú)立性,意思就是說(shuō)表面上的某一點(diǎn)因視角的不同而有不同的顏色。以后的幾種模型都是基于這個(gè)基本模型而建立的。
                之后Cook和Torrance在1982年邁出了重要的一步(有時(shí)稱為Cook-Torrance模型,有時(shí)也稱為Blinn-Cook-Torrance模型,因?yàn)樗舶袯linn模型考慮進(jìn)去了)。它是一種由Blinn和Torrance-Sparrow混合而成的模型,也是物理上精確的并而渲染速度上有所改進(jìn),其中之一是集成了更多的三角面分布函數(shù)。Torrance-Sparrow,基于著名的高斯分布;內(nèi)建基于Phong式分布的Cook-Torrance;Trowbridge-Reitz和Beckmann分布。不過(guò)這只是一小部分,重要的是集成了關(guān)于光線的計(jì)算信息,光線照射在三角面上,依據(jù)兩個(gè)參數(shù)來(lái)反射。一個(gè)是著名的菲涅耳效應(yīng)(簡(jiǎn)單的說(shuō)就是反射量依據(jù)反射角和表面折射率--參見(jiàn)第一部分)。第二是基于自身的陰影投射和三角面遮罩的幾何衰減因子,如下圖。

            按此在新窗口瀏覽圖片

                Cook-Torrance這種常見(jiàn)模型主要是建立高光和模擬金屬質(zhì)感。有時(shí)也會(huì)混合Lambert的漫射部分,但由于它在物理上的正確性它不適用于藝術(shù)表現(xiàn),而且它的速度也不是最快的一個(gè)。下圖的第一個(gè)球體是Cook-Torrance高光,在表面粗糙度很小的情況下它跟Blinn高光的形態(tài)很相似。另一個(gè)常見(jiàn)的三角面模型是Oren-Nayar模型(實(shí)際上我們常用三角面模型是出于它的快速,而且它是Lambert漫射之外一個(gè)很好的選擇)。它是Cook-Torrance模型的一個(gè)簡(jiǎn)易版,能建立漫射表和Blinn高光。我見(jiàn)過(guò)很多Oren-Nayar模型不同的應(yīng)用方法,所以我很難解釋它。這中間很多不使用遮罩和自身陰影投射,也不把波長(zhǎng)計(jì)算算在其中。大多數(shù)情況下這個(gè)模型看起來(lái)像Lambert漫射加上視線正對(duì)處的暗淡,再加上一些背部散射。下圖中的2,3號(hào)球是oren-Nayar模型的簡(jiǎn)單渲染,畫(huà)圈的部位是同一點(diǎn)的不同視角,說(shuō)明了反射值依據(jù)視角的不同而不同。我很喜歡這個(gè)模型,因?yàn)樗萀ambert更具真實(shí)性。

            按此在新窗口瀏覽圖片

                下圖中的1號(hào)球是另一種Oren-Nayar模型的應(yīng)用。它看上去更像沒(méi)有暗淡的lambert和背部散射的混合。不要問(wèn)我它的算法是什么,它只是千萬(wàn)種經(jīng)典模型中的一個(gè)變種。2號(hào)球體是復(fù)雜表面上的Oren Nayar漫射,帶有尖銳的Blinn高光。3號(hào)球體使用相同的設(shè)置,只是漫射部分是Lambert,高光是Phong。

            按此在新窗口瀏覽圖片

            08.各向異性和序亂的模型:Ward, He, Schlick, Lewis, Lafortune等...
                在上世紀(jì)90年代出現(xiàn)了大量的模型,而且有很多模型發(fā)展到了現(xiàn)在。這之中最流行的是He-Torrance-Sillion-Greenberg模型(1991--非常復(fù)雜,引入SSS特效,有著新型漫射部分叫直接漫射,基于物理真實(shí)和三角面),Schilick模型(1994--類(lèi)似遮罩的三角面,漫射 和高光部分一起計(jì)算,支持各向異性的新算法),Ward模型(1992--帶有高斯分布的快速各向異性模型,物理上正確),Lewis模型(1993--也叫著名的經(jīng)典cosine-lobe模型,物理上正確的Phong分布的擴(kuò)展)和lafortune模型(1997--由于它是Lewis模型的普及,也叫普通版的cosine-lobe模型)。在一些3D軟件中你可以看到它們的應(yīng)用,但軟件中不是用的它們的真名,因?yàn)檐浖某绦騿T只是用這些模型來(lái)達(dá)到他們特定的需求。這也是許多不同的模型存在的原因。舉例來(lái)說(shuō),如果你安裝了3ds max的第三方渲染插件和材質(zhì)包,以及一些帶有BRDF模型的插件(像HairFX,MooDee shaders,Facialstudio),你會(huì)看到有20-30種不同的模型供你選擇。再讓我們來(lái)看看名向異性吧。到現(xiàn)在為止我們只介紹了各向同性模型,就是說(shuō)反射值不隨模型的旋轉(zhuǎn)而發(fā)生變化。同樣基本的三角面模型也是各向同性的,因?yàn)槿敲娴某叽缫粯樱以诒砻嫔暇鶆蚍植肌H绻瓷渲惦S攝像機(jī)的角度旋轉(zhuǎn)而不同也不能說(shuō)明是各向異性的模型,就像我在第一部分里講到的那樣,各向異性是你在某一方向觀察時(shí)表面上的凹凸和刮痕表現(xiàn)出同一性。來(lái)看看圖片吧。
                球1的高光是Ward模型。很像Blinn是嗎,但我認(rèn)為這個(gè)看上去要好點(diǎn),因?yàn)楦咚狗植际沟酶吖馓幱懈嗟募?xì)節(jié),不像Blinn那么柔和。這個(gè)球只是有高光,但是當(dāng)你使用物理上正確的鏡面反射光線跟蹤時(shí)你就明白我在說(shuō)什么了。球2就是Ward模型的光線跟蹤反射,球3是同樣條件下的Blinn模型。球2我使用了各向異性的參數(shù),還做了一段動(dòng)畫(huà)來(lái)看這個(gè)效果。有趣的是我也可以把Blinn模型弄成各向異性,這就是我所說(shuō)的序亂的模型。你可以看到,Blinn模型上的各向異性有點(diǎn)問(wèn)題,Blinn反射像平常那樣柔和,但左下的那道細(xì)長(zhǎng)高光表現(xiàn)的非常尖銳,這不像我想像中的那樣。第三個(gè)球體是另個(gè)一種有趣的各向異性模型,它是finalshaders的distant fur,是3ds max的渲染插件finalrender stage-1的材質(zhì)插件。它可以做為高級(jí)BRDF模型的很好的例子,它含有許多不同的基本BRDF模型和一些擴(kuò)展的功能,能方便的使用戶創(chuàng)建他們想要的效果。

            按此在新窗口瀏覽圖片

                下圖中的1號(hào)球是在絨絨的粗糙球體上使用了柔和的不均等色和Lambert漫射。在做成動(dòng)畫(huà)的時(shí)候不均等色也會(huì)使球體看上去模糊,像長(zhǎng)絨毛一樣。2號(hào)球使用非常尖銳的各向異性高光來(lái)模擬油油的表面。第3個(gè)球使用了自定義曲線來(lái)控制一個(gè)強(qiáng)大模型的光線反射分布。很遺憾這個(gè)類(lèi)型的模型沒(méi)有在大多數(shù)渲染器里得到支持,這種類(lèi)型的著名模型有FALLOFF貼圖和Zauner模型。我希望在渲染程序里能夠很好的整合鏡面反射衰減和各向異性分布的自定義曲線。4號(hào)球使用Zauner模型來(lái)產(chǎn)生模擬的SSS效果。看來(lái)我們已經(jīng)接觸到了SSS,好吧我們開(kāi)始下一個(gè)話題吧。

            按此在新窗口瀏覽圖片

            09.高級(jí)渲染技巧和SSS模型:Kubelka-Munk,Hanrahan-Krueger,Jensen
                首先,Kubelka-Munk和Hanrahan-Krueger模型跟高級(jí)渲染沒(méi)什么關(guān)系。它們跟上面講的模型一樣,跟表面和攝像機(jī)有關(guān),這兩個(gè)又跟SSS特效有關(guān)。實(shí)際上它們是跟SSS特效最有關(guān)的模型,除了He模型之外。但它們只是處理表面的漫射部分,就是說(shuō)它們不能真的計(jì)算表面下面的光線來(lái)達(dá)到實(shí)現(xiàn)真實(shí)物理屬性的目的。這種技術(shù)需要新的渲染技術(shù),像高級(jí)光線跟蹤算法(MONTE CARLO)和光子貼圖技術(shù)的支持。Kubelka-Munk模型是一個(gè)非常簡(jiǎn)單的用來(lái)描述表面上色素層的BRDF。它先考慮一層色素,下一步通過(guò)一個(gè)擁有眾多參數(shù)的函數(shù)來(lái)模擬多層表面下的光線散射。就是說(shuō)你可以指定表面的層數(shù),漫射和散射行為,吸收光線的顏色和厚度。
                下圖的的1號(hào)球是Hanrahan-Krueger模型的動(dòng)畫(huà)。紅色的過(guò)渡色是基本層,然會(huì)我在之上加了一層皮膚色的層,做成動(dòng)畫(huà)。第二個(gè)球是復(fù)雜表面上的Hanrahan-Krueger,打了背部散射的燈光來(lái)模擬毛發(fā)的細(xì)微模糊效果。這個(gè)模型模擬皮膚效果很好,特別是結(jié)合紋理貼圖的時(shí)候。但注意它只是一個(gè)BRDF(R表示反射),畢竟有它的局限性。三號(hào)球是使用了正確物理屬性MONTE CARLO算法的SSS效果。這種效果很慢,你可以把它當(dāng)做是加強(qiáng)的光線跟蹤算法,因?yàn)橐獜谋砻嫔夏骋稽c(diǎn)發(fā)射出多條光線到場(chǎng)景中來(lái)收集必要的信息,這比只發(fā)射一條光線要慢很多。這也可以是一種序亂的Lambert光線跟蹤算法,因?yàn)閺倪@一點(diǎn)處的半球體射出的光線是隨機(jī)的。我不肯定MONTE CARLO算法的光線跟蹤渲染器是否考慮了BRDF模型,來(lái)達(dá)到多種效果的目的。典型的基于Lambert的電腦圖像看上去是死板的,這時(shí)典型的GI來(lái)到了,但這種算法渲染動(dòng)畫(huà)的速度太慢了。因此,Henrik Jensen,光子貼圖的發(fā)明者(幾乎所有的渲染器都集成了這種特效)結(jié)合了這兩種方法各自的優(yōu)點(diǎn),它使用了普及化的Hanrahan-Kruger作為散射部分(直接散射和漫射)和一種優(yōu)化的漫射逼進(jìn)算法作為多重散射的漫射部分(加上菲涅耳效應(yīng)),他稱他的這種快速SSS為BSSRDF寶貝。他成功了,看看Gollum,哈里波特,或其它一些大預(yù)算的電腦動(dòng)畫(huà)你就知道我的意思了。最后一個(gè)球體使用了Hanrahan-Kruger和低品質(zhì)的MONTE CARLO的混合來(lái)加速SSS特效。 

            按此在新窗口瀏覽圖片


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            国产精品一久久香蕉产线看 | 91精品国产色综合久久| 久久影院久久香蕉国产线看观看| 久久久久高潮毛片免费全部播放| 欧美精品乱码99久久蜜桃| 久久有码中文字幕| 久久综合色之久久综合| 久久久久无码国产精品不卡| 久久精品国产亚洲7777| 国产真实乱对白精彩久久| 国产免费福利体检区久久| 久久精品国产精品亜洲毛片| 久久久久久国产a免费观看不卡 | 久久青青草原亚洲av无码app| 久久久久99这里有精品10| 久久天天躁狠狠躁夜夜躁2014| 一级a性色生活片久久无少妇一级婬片免费放 | 久久久久综合国产欧美一区二区| 久久精品中文字幕有码| 久久人人青草97香蕉| 香蕉久久av一区二区三区| 久久国产精品99久久久久久老狼| 九九久久精品无码专区| 久久人人爽人爽人人爽av | 国产免费久久精品99久久| 一本大道久久东京热无码AV| 亚洲va久久久噜噜噜久久天堂| 国产高潮国产高潮久久久| 精品国产热久久久福利| 亚洲精品无码久久一线| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 久久久久久久综合综合狠狠| 精产国品久久一二三产区区别| 久久国产精品77777| 久久亚洲电影| 国产精品欧美久久久天天影视| 香蕉久久影院| 亚洲国产成人久久精品动漫| 久久亚洲AV成人无码软件| 一本色道久久88加勒比—综合| 7777精品伊人久久久大香线蕉|