Shader基本光照模型 菲涅爾模型

2021-09-29 06:43:41 字數 1055 閱讀 7579

shader "lijia/fresneltest"

_fresnelbase

("fresnelbase"

,range(0

,1))

=1_fresnelscale

("fresnelscale"

,range(0

,1))

=1_fresnelindensity

("fresnelindensity"

,range(0

,5))

=5_fresnelcol

("_fresnelcol"

, color)=(

1,1,

1,1)

} subshader

lod 100

pass

cgprogram

#pragma vertex vert

#pragma fragment frag

#include

"unitycg.cginc"

#include

"lighting.cginc"

;struct v2f

; sampler2d _maintex;

float4 _maintex_st;

float _fresnelbase;

float _fresnelscale;

float _fresnelindensity;

float4 _fresnelcol;

fixed4 frag (v2f i)

: sv_target

endcg

}}

一般運用於水面效果,試想一下你站在湖邊,低頭看向水裡,你會發現近的地方非常清澈見底(反射較少),而看遠的地方卻倒映著天空(反射較多)。

由於真實的菲尼爾公式計算量較多。在遊戲裡往往會用簡化版的公式來提公升效率達到近似的效果

fresnel = fresnel基礎值 + fresnel縮放量*pow( 1 - dot( n, v ), 5 )

菲涅爾效果

遊戲中為了體現人物處於某種特殊狀態 如狂怒,矍鑠等 可以在模型的表面在一些頂點出增加自己設定的顏色,如下圖所示 菲涅爾效果的意義是 當光從一種具有折射率為的介質向另一種具有折射率為的介質傳播時,在兩者的交界處 通常稱作介面 可能會同時發生光的反射和折射。菲涅爾方程描述了不同光波分量被折射和反射的情況...

關於菲涅爾現象

站在湖邊,為什麼看遠處的水面反光較強,而近處的水面反光較弱 可以直接看到水底 今天看了維基的反射方程後,明白了些 其中的rs或rp是兩種偏振下的反射率,反射率越大,進入眼睛的光越強。那麼分析下rs,可以這樣認為 入射角與折射角的差值變化不大,c 入射角a 反射角b,c隨著入射角增大而增大,在入射角大...

了解菲涅爾反射

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