Fresnel 菲涅耳反射

2021-08-28 08:53:24 字數 962 閱讀 5053

// upgrade note: replaced '_object2world' with 'unity_objecttoworld'

// upgrade note: replaced 'mul(unity_matrix_mvp,*)' with 'unityobjecttoclippos(*)'

shader "unity shaders book/chapter 10/fresnel"

}subshader

pass

cgprogram

#pragma multi_compile_fwdbase

#pragma vertex vert

#pragma fragment frag

#include "lighting.cginc"

#include "autolight.cginc"

fixed4 _color;

fixed _fresnelscale;

samplercube _cubemap;

struct a2v ;

struct v2f ;

v2f vert(a2v v)

fixed4 frag(v2f i) : sv_target

endcg}} 

fallback "reflective/vertexlit"

}取自《unity shader 入門精要》

_fresnelscale為1時,物體完全反射cubemap影象;為0時,則是乙個具有邊緣光照效果的漫反射物體

schlick菲涅耳近似等式: f(v,n) = f0 + (1 - f0) *  power((1 - v·n), 5)

empricial菲涅耳近似等式: f(v,n) =max(0, min(1,bias + scale * power((1 - v·n), pr) ))

fresnel用來混合漫反射和反射,或者反射乘fresnel加上漫反射模擬邊緣光照

什麼是菲涅耳反射?

在現實社會中往往有這樣的一種現象?菲涅爾 是乙個人的名字,由於他發現了反射折射的光學現象,這個現象就用這個人的名字命名。關於 菲涅爾 現象 如果你站在湖邊,低頭看腳下的水,你會發現水是透明的,反射不是特別強烈,如果你看遠處的湖面,你會發現水並不透明,這說明反射非常強烈。這就是 菲涅爾效應 ps 這裡...

菲涅耳效應

菲涅耳效應 當光從一種具有折射率為n1的介質向另一種具有折射率為n2的介質傳播時,在兩者的交界處 通常稱作介面 可能會同時發生光的反射和折射。圖中p為入射光,s為折射光,q為反射光。這些反射和折射光的夾角遵守反射定律和折射定律。我記得以前中學物理老師講光學的時候,一般講到這就完了,很少提及入射光的能...

了解菲涅爾反射

翻譯自understanding the fresnel effect dorian iten dorian iten.com 純粹學習記錄 當我繪製反光表面時,新增菲涅耳 是我的首選解決方案。這是乙個小小的調整,有很大的影響。看看下圖,注意桌面的亮度是如何變化的。要理解菲涅耳效應,你必須了解反射的...