菲涅耳效應
當光從一種具有折射率為n1的介質向另一種具有折射率為n2的介質傳播時,在兩者的交界處(通常稱作介面)可能會同時發生光的反射和折射。
圖中p為入射光,s為折射光,q為反射光。這些反射和折射光的夾角遵守反射定律和折射定律。我記得以前中學物理老師講光學的時候,一般講到這就完了,很少提及入射光的能量被反射光和折射光分走了多少。而這個正是遵守著菲涅耳反射定律。
菲涅耳反射:
反射比:入射光的功率被介面反射的比例。
折射比:入射光的功率被介面折射的比例。
光的偏振:
光是一種橫向電磁波;這意味著電場向量和磁場的向量垂直於波的傳播方向。當某個波列的所有電場向量都處於同一平面時,我們可以說這個波是平面偏振或線偏振。這個平面的方向即為偏振方向。如圖
偏振方向其實是乙個定義,大家定義為電場的方向,所以這裡的偏振方向是垂直的。
入射光和反射光會形成乙個平面,如果偏振向量垂直於該平面,則稱為 s 偏振。如果光線的偏振向量在這個平面內,則稱為 p 偏振。反射比和透射比的具體形式還與入射光的偏振有關。
1.s 偏振:
2.p 偏振:
3.無偏振:(光波是一段一段的,當所有的方向一致時才有偏振方向,不一致時就是無偏振)
這裡的rs,rp和r都是反射比,而折射比為:t = 1 - r。這裡的r和t是比不是率,所以我們還需要求出率來:
結論:1.對於給定的折射率和且入射光為p偏振光時,當入射角為某一定值時為零,此時p偏振光被完全透射而無反射光出射。這個角度被稱作布儒斯特角,其實就是完全折射角。
2.當光從光密介質向光疏介質傳播時(即時),存在乙個臨界的入射角,對於大於此入射角的入射光,此時入射光完全被介面反射。這種現象稱作全內反射,臨界角被稱作全反射臨界角。
菲尼爾計算:
factor = bias + scale * (1.0f + i·n)power
color = factor * 反射光顏色 + (1 - factor) * 折射光顏色
其中,bias為偏移係數,scale為縮放係數,power為fresnel指數,i為入射光方向向量,n為發向量。邊緣或表面的尖銳程度. (油漆絲綢:1,液體: 2-8)。
fresnel effect:
#if env_map == 1
/// 菲涅耳效果
float3 etaratio = float3(0.7f , 0.8f , 0.6f);
float3 i = worldpos - g_veyemodel;
float3 r = reflect(i ,normal);
float3 tred = refract(i , -normal , etaratio.x);
float3 tgreen = refract(i , -normal , etaratio.y);
float3 tblue = refract(i , -normal , etaratio.z);
float reffactor = 0.1f + 0.1f * pow(1.0f + dot(i , normal) , 1.0f);
float4 reflectedcolor = texcube(envsampler ,r);
float4 refractedcolor;
refractedcolor.r = texcube(envsampler , tred).r;
refractedcolor.g = texcube(envsampler , tgreen).g;
refractedcolor.b = texcube(envsampler , tblue).b;
refractedcolor.a = 1;
float4 combcolor = lerp(refractedcolor , reflectedcolor , reffactor);
color = lerp(color , combcolor , 0.8f);
#endif
Fresnel 菲涅耳反射
upgrade note replaced object2world with unity objecttoworld upgrade note replaced mul unity matrix mvp,with unityobjecttoclippos shader unity shaders ...
什麼是菲涅耳反射?
在現實社會中往往有這樣的一種現象?菲涅爾 是乙個人的名字,由於他發現了反射折射的光學現象,這個現象就用這個人的名字命名。關於 菲涅爾 現象 如果你站在湖邊,低頭看腳下的水,你會發現水是透明的,反射不是特別強烈,如果你看遠處的湖面,你會發現水並不透明,這說明反射非常強烈。這就是 菲涅爾效應 ps 這裡...
菲涅爾效果
遊戲中為了體現人物處於某種特殊狀態 如狂怒,矍鑠等 可以在模型的表面在一些頂點出增加自己設定的顏色,如下圖所示 菲涅爾效果的意義是 當光從一種具有折射率為的介質向另一種具有折射率為的介質傳播時,在兩者的交界處 通常稱作介面 可能會同時發生光的反射和折射。菲涅爾方程描述了不同光波分量被折射和反射的情況...