【W(wǎng)ater Drop系列】是雨效渲染實現(xiàn)的整套方案的翻譯總結(jié),本文是第六篇,主要介紹潮濕地表的反射現(xiàn)象。這里是原文鏈接
潮濕地表會使得平時不可見的反射現(xiàn)象變得更明顯玄组。光照效果分為自發(fā)光,直接光跟間接光谒麦。直接光跟間接光都是反射得來俄讹,如果在計算的時候使用的是最真實的PBR計算方法,那么這里就不需要額外對反射進行其他的處理了绕德。
在作者開發(fā)的《Remember Me》游戲中患膛,就準備將反射計算放在任何表面上,而非局限于日常常見的光滑表面水面等耻蛇。
Reflection – Theory
下面先給出反射的一些現(xiàn)實效果
Reflection with smooth surfaces
先看下光滑表面的反射效果踪蹬,看起來就像是將正常的場景倒轉(zhuǎn)過來繪制一樣
不過實際上,這個假設是不正確的臣咖,其實反射不僅取決于被反射物體到水面的距離跃捣,同時還取決于觀察的位置與角度。
觀察者距離反射表面越近夺蛇,且被反射的物體距離反射表面越遠疚漆,什么東西區(qū)別就越小。下圖中蚊惯,當觀察方向接近水平時愿卸,米老鼠就被前面的玩偶所遮擋而沒有產(chǎn)生投影灵临。
Stretched reflection with rough surfaces
glitter path現(xiàn)象通常是由光源截型,比如說太陽,發(fā)出的光被動蕩的光滑表面儒溉,比如浮動的波浪所反射而導致的宦焦。
用示意圖的方式來模擬這個現(xiàn)象,根據(jù)反射光路走勢圖顿涣,想要人眼能夠觀察到反射光照波闹,就需要滿足出射光線跟入射光線,相對表面法線而言是對稱的涛碑。
當波浪整體上存在多個點滿足這個條件時精堕,就出現(xiàn)了glitter。
總的來說蒲障,需要滿足一些條件:1.表面整體需要滿足一個規(guī)律歹篓,比如大體平整瘫证;2.表面上的微表面細節(jié)也需要滿足某個條件,這個通匙椋可以用粗糙度來表征背捌。粗糙度表示的是微表面與表面整體形狀的差異,差異越大洞斯,粗糙度越高毡庆,閃光就越分散。波浪浮動的水面可以看成是這樣的一個粗糙表面烙如。
水面的這種粗糙度特征是導致水面呈現(xiàn)glitter path的直接原因:
*Glitter的形狀通常是橢圓形的么抗,且橢圓的拉長程度取決于光源光照方向與表面切線的夾角。比如說亚铁,如果光照方向垂直入射到表面上的話乖坠,那么反射光的形狀就跟太陽的圓形保持一致,否則光照方向與水平方向越接近刀闷,則反射形狀越長熊泵。這種觀測是建立在表面粗糙度均勻的前提下的,但是實際情況確實甸昏,由于風力等各種干擾因素的存在顽分,表面粗糙度通常都是各向異性的,這種情況在近海岸區(qū)域較為明顯施蜜。
高光光源而言卒蘸,glitter形狀的角度距離(angular length)約等于最大波浪斜率對應的角度的四倍(見下圖)。不管是朝向觀察者還是背離觀察者的波浪都會產(chǎn)生閃光翻默,從而使得最大波浪斜率的因子被加倍了缸沃,因此也會導致反射計算中的角度被加倍。而glitter形狀的寬長比則可以由光源elevation角度的正弦給出修械。如果光源的elevation角度跟觀察者的elevation角度一致趾牧,那么glitter形狀尺寸約等于光源處于無窮遠處時的尺寸的一半,而寬長比是不變的肯污。當太陽或者月亮從天空降落的時候翘单,glitter的形狀會逐漸變窄,知道寬長比達到一個最小值蹦渣,這個最小值在elevation角等于最大波浪斜率角的兩倍時達到哄芜。超過這個角度之后再繼續(xù)下降,會導致glitter的形狀變短直至消失柬唯,這是由于陰影的原因?qū)е隆?
glitter path還有一個特性认臊,即glitter效果跟觀察者所在的位置是相關的,且反射效果都是跟觀察者還有光源處于同一個平面內(nèi)锄奢。(從前面的分析知道失晴,反射發(fā)生在于水面波動導致局部微表面的法線方向正好處于光照方向與觀察方向之間冤议,因此,在存在法線波動的情況下师坎,比如水面恕酸,比如潮濕的不平整的地表上,就能夠看到反射效果呈現(xiàn)一種被拉長的橢圓形效果)
反射效果其實是不局限于明亮的光源胯陋,而是對于所有物體都是生效的蕊温,如下圖所示。
下圖中白色的透明球體以及岸上的行人在水面上的倒影都會呈現(xiàn)一種被拉長的反射效果遏乔。
而且义矛,glitter path的效果也不僅局限于水面,前面說到的只要存在法線波動的情況都能復現(xiàn)盟萨。如在鏡面上灑上一些液體凉翻,使得液體位置出現(xiàn)法線波動,之后在鏡面上某處放置光源捻激,也能看到這種效果制轰,如下圖所示。
這也就證實了前面說過的胞谭,只要存在法線波動垃杖,也就是粗糙表面,在受水潮濕后丈屹,都會出現(xiàn)這種表現(xiàn)调俘。
不論表面的大形狀是否平整,都能看到glitter path現(xiàn)象旺垒。
完全平整的表面反射彩库,則沒有glitter path效果。
此外先蒋,在現(xiàn)實中的glitter path效果并不是永遠都是對稱的骇钦,有時候會出現(xiàn)不對稱的效果,如下圖所示鞭达,也就意味著司忱,不是所有的glitter path都是指向觀察者的皇忿。
由于水面左右側(cè)高度不對稱畴蹭,導致反射效果出現(xiàn)了上述的彎曲。產(chǎn)生這種現(xiàn)象的一個方法是在水面上加入一個長波浪鳍烁,在長波浪的作用下叨襟,水面的微表面反射傾斜度就被重新排布了,從而導致glitter效果的偏移幔荒。另外一種產(chǎn)生這個現(xiàn)象的方法則是添加風力糊闽,波浪被風吹動之后會導致波浪的傾斜度分布發(fā)生變化梳玫。
在前面的實驗中,如果將鏡面做一個角度的傾斜右犹,也可以復現(xiàn)上述的效果提澎。
下圖中的地表是不平整的,而是帶有一定彎曲度的念链,所以glitter path也是帶著一定的偏移的盼忌。
Reflection blurriness with roughness and distance
表面粗糙度,從某種程度上可以看成是表面反射模糊程度的表征掂墓。粗糙的表面會使得其反射效果與鏡面反射效果存在一個偏差谦纱,而偏差的程度取決于粗糙度,如果將表面反射的范圍看成一個椎體的話君编,那么粗糙度越高跨嘉,椎體的半徑越大。
ScratchAPixel網(wǎng)站給出了粗糙度對于反射效果的影響的詳細闡述:
下圖給出了粗糙度逐漸遞增的情況下的反射效果的變化吃嘿。隨著粗糙度增加祠乃,反射的銳利程度逐漸遞減,單點反射的亮度也逐漸遞減兑燥。
此外跳纳,被反射物體距離反射表面越遠,反射效果也會越模糊贪嫂。在反射表面接近光滑的情況下寺庄,這種表現(xiàn)不會很明顯,在粗糙反射面的情況下力崇,就會很顯著了斗塘。
從Guerrila的游戲presentation中的內(nèi)容很好的解釋了這個現(xiàn)象的原因。粗糙度可以用一個椎體來表示反射亮靴,從不同的角度來觀察粗糙表面的反射現(xiàn)象馍盟,就會得到椎體與環(huán)境的不同位置的相交區(qū)域,因此由于pC0比pC1覆蓋了一個更大的環(huán)境區(qū)域茧吊,從而使得其反射的效果也就更模糊贞岭。
這就意味著,在均勻粗糙的表面上的反射效果也有可能會比較復雜搓侄,因為需要處理距離不同的反射效果的變化瞄桨。而對于各項異性的粗糙表面,其反射效果會更加的復雜讶踪,下圖就是在這種材質(zhì)表面上的反射效果芯侥。
紅色部分比較銳利,而藍色部分比較模糊,黑色部分則是橫向模糊柱查。
Fresnel and polarized reflection
反射效果是菲尼爾效果的一種廓俭,在參考文獻[9]中給出了菲涅爾效果的詳細的科學的解釋,其中還包含了偏振的相關內(nèi)容唉工。
路邊水池中景物的反射效果比實物本身更為銳利研乒,色調(diào)也更暖和。鏡面反射效果中看到的云彩也比現(xiàn)實中的云彩要好看淋硝。
之所以會出現(xiàn)這種情況告嘲,是因為反射是經(jīng)過偏振的光照效果,因此會減弱某些物體的光澤奖地,并加強顏色的飽和度橄唬,下面是wiki上關于這一點的解釋:
非金屬表面的反射會導致入射光線被偏振,且這種偏振效果在Brewster角位置(大概是跟垂直方向夾角為56度)達到頂峰参歹。而由于光的電磁特性仰楚,金屬表面上的反射不會出現(xiàn)偏振。
偏振片會允許跟反射光偏振方向相垂直的部分光通過犬庇,且會導致部分光線被吸收僧界。而吸收特性則會導致反射效果中被反射物體出現(xiàn)glare現(xiàn)象,從而使得這些物體的真實細節(jié)被隱藏臭挽。
Practical Reflection
后面會討論反射實現(xiàn)的細節(jié)與代碼捂襟。
Reference
[1] Scratchapixel, “Material Appearance”, http://www.scratchapixel.com/lessons/3d-basic-lessons/lesson-14-interaction-light-matter/material-appearance/
[2] Joachim Schlichting, “The Glitter Path”, http://www.uni-muenster.de/imperia/md/content/fachbereich_physik/didaktik_physik/publikationen/glitter_path.pdf
[3] Shaw, “Glittering Light on Water”, http://www.esrl.noaa.gov/psd/outreach/education/science/glitter/
[4] Lynch, Dearborn, Lock, “Glitter and glints on water”, http://engagedscholarship.csuohio.edu/cgi/viewcontent.cgi?article=1103&context=sciphysics_facpub
[5] Drobot, “Lighting of Killzone: Shadow Fall”, http://www.guerrilla-games.com/publications/
[6] Minnaert, “Light and Color in the Outdoors”, book
[7] Lynch, Livingston, “Color and Light in Nature”, book
[8] Wikipedia, “Polarizing filter”, http://en.wikipedia.org/wiki/Polarizing_filter_%28photography%29
[9] Physics Fundamentals, http://www.stmarysacademy.mb.ca/resource/File/Physics_Fundamentals/Physics_Fundamentals_-_Chapter_26.pdf, page 20