2017/03/22

Glossy Fresnel到底是什麼?

原文 / Rough Specular reduces specularity amount?
提問 / Neil Blevins
編譯 / Hammr Chen

光澤度的菲涅耳效應(Glossy Fresnel)是V-Ray 3.5的一個很重要的新增功能,簡單的說就是越粗糙、越反射模糊的表面,在邊緣處的fresnel效應越弱,也就是亮度減弱。此篇譯自Chaosgroup論壇上五年前的討論,透過對話可以更了解這個功能 對寫實材質的重要性。


= = = = 以下為翻譯 = = = =
標題:粗糙的高光會減少高光強度?

soulburn3d問:大家好!我正在測試某東西 。希望大家給給意見。請看以下非導電的(dielectric)物體,是一系列紅色的球,各別具有反射、 高的高光值與低的高光值:
表面IOR大約為1.3。請注意天空反射在邊緣的地方比中間要強,這是fresnel效應的絕佳範例。



現在,我用砂紙把其中一顆球弄的更粗糙些。請看光線的反射變得更模糊了!
拿到戶外,請注意還是看得到表面的fresnel效應,邊緣比較中心要亮




但是,請注意我從照片中選的顏色。在光澤的球。具有亮的fresnel邊緣;在粗糙的球,邊緣沒那麼亮。



我假定這是因為相同的光線能量撞擊到每顆球,但是粗糙的球在大片的表面(因此有模糊反射)分散了能量,因此在特定的位置會有比較少的能量。就好像使用相同量的奶油塗在大片麵包上 奶油會變得比較薄。

以下是在VRay裡面我做了類似的實驗,三顆球其中一顆光澤度=1,另一顆光澤度=0.7,還有一顆光澤度=0.3 請注意能量是如何維持穩定的。
我希望在VRay的得到更寫實的數值。當球變得更粗糙時,我應該要把整體的反射調低,有沒有什麼自動的公式讓我可以達到這個效果?

Rens答:你在找的功能叫做:粗糙的Fresnel(rough Fresnel)。具我所知Chaosgroup已經在研究這個東西了,你也可以參考一下我正在寫的shader 做的是一樣的效果。
http://www.rensheeren.com/blog/osl-reflector/
http://forums.chaosgroup.com/showthr...r-your-perusal


為了解釋,取了正面反射數值,然後把這個數值提高一點,然後跟原始的數值混合 Fresnel效應的衰減是根據材質有多粗糙,整體的粗糙表示均勻的反射顏色,而不帶了Fresnel衰減。這樣你可以維持整體的反射強度。如果整體套用反射衰減的話,看起來就會不正確。

你可以拿falloff map跟(VRay)color顏色混合,每次改變IOR時,就必須要有正確的數值。例如IOR = 1.5 數值就應該是0.04  塑膠的話IOR 1.4-1.5 。混合的程度跟粗糙度有關。

soulburn3d:感謝!但是我還是沒有完全信服。因為當粗糙度接近1時,那fresnel效應就會整個被抹平,可是我實際測試真實世界(當然我承認我的實驗並不是在精確控制的科學條件底下做的) 似乎相當模糊的表面還是會有很明顯的fresnel邊緣效應,儘管這個效應有減弱。有沒有任何論文或是實驗展示這個現象?

joconnell答:並不是因為fresnel效應抹平了,而是因為跟你視角垂直的表面有更少的面。是因為大部分人所使用粗糙/微表面的公式已經不敷使用了!

shading並沒有完全地公式化粗糙的表面。舊的公式只是用作弊的方式模擬出(在邊緣)反射的光線被正面的表面檔到。甚至有一些新的shader 試著增加模糊反射的表面會降低亮度,自粗糙表面的能量回彈,會產生小量的SSS也會照亮表面。

在你的照片裡面,光澤的球所有的邊緣都是90度,因此你可以得到完全強度的fresnel效應。可是如果把球磨的粗糙,邊緣的角度就不完全是90度了。有些面向你,因此就會比完全90度的更少反射。我不認為現在的VRay材質有模擬這種能量流失的現象。目前的材質比較像是分散反射射線的向量 ,自原始反射的法線形成扇形。

這裡有個範例場景,同樣都是使用200公分的球,紅色材質,光澤度設為1。唯一差別是左邊的那顆球套用了noise修改器,大小為1公分。你可以在上視圖看到分散的法線,某些面朝向攝影機,因此會產生比較弱的fresnel效應。

vlado答:為了得到更精確的效果,請試試VRayALMtl材質球。預設就啟用glossy Fresnel,副作用是你沒辦法用falloff map來控制Fresnel effect。
https://github.com/ChaosGroup/vray_al_surface/releases

soulburn3d:Joe感謝你的算圖。跟幾個人聊過之後,我得到以下結論:
越是粗糙的表面
  • 反射越模糊
  • 反射也變得更暗
  • 在邊緣處fresnel效應依然存在
但是變暗是一種複雜的現象,受到以下因素影響:
  • 這個現象是,因為有很多微小的面,在邊緣處,面向觀察者
  • 這些微小面彼此之間的自身陰影
  • 因為反射模糊了 (被拉伸) 在特定的點的反射變得比較暗以維持能量守恆
  • 多個散射又會把表面再提亮一點
目前沒有一個簡單的公式可以把以上的因子通通考慮進去。儘管我的有幾個片段的公式。這個結論正確對吧?!

joconnell答:沒錯!光澤度是表面光滑的函數。Fresnel效應一直都在,不論是粗糙或是光滑的表面,物體還是由相同材質構成,具有相同的材質屬性。 之所以反射會變暗,是因為(某些微表面)會面向你,而且光滑表面的某些能量會回彈到材質本身(SSS)。

沒錯!今年的siggraph有談到基於物理的算圖(https://www.youtube.com/watch?v=zs0oYjwjNEo) 裡面有提到這點。可以引進簡單的偏差值模擬這樣的能量喪失。考慮到自身陰影的效應, 這個演講不是chaosgroup的因此Vlado可能就是這樣得到靈感。
Midiaeffects 答:我猜Vray如果要模擬這個效應只需要讓Fresnel能夠吃到BRDF的微表面資訊。缺點是,如同Vlado所說,不再能使用Falloff texture來減弱反射。簡單方法來測試是放一顆球,黑色的反射材質,小的IOR與白色的背景。當粗糙度增加, 顏色就會越來越平(但是不會完全平 原因如前)

某些我測試過的算圖器,會計算微表面的fresnel。其中包含了IRay, ART, Redshift, FStorm and Maxwell  有趣的是Corona, Octane 與 Cycles跟V-Ray效果一樣(譯者註:一樣尚未導入glossy fresnel) 但是各家的算圖器具有不同的fresnel扁平化曲線,而Iray 與 ART的BRDF曲線也會計算微表面。

[相關資訊]
understanding glossy fresnel

理解光泽度的菲涅尔效应-Glossy Fresnel

V-Ray 3.10修正檔即將改善GTR BRDF

VRay GGX材質實例:更寫實的高光

Complex Fresnel 更寫實的反射材質

No comments: