Note Unity Shader 漫反射光照模型

2021-09-27 06:51:30 字數 1738 閱讀 2969

公式

逐頂點與標準對比

//為了使用在properties中的宣告的屬性,需要定義乙個和該屬性型別相匹配的變數!重點是變數!!這是個變數!

//通過這樣的方式,我們就可以得到漫反射公式所需引數之一,材質的漫反射屬性(???)

}逐頂點光照會出現一些鋸齒,對於細分模型較低的模型,逐頂點會出現問題

逐畫素光照會在背光區,模型外觀通常是全黑,看起來像個平面,失去模型細節

半蘭伯特光照模型

在原來漫反射光照模型公式的基礎上進行了α倍的縮放再加上β大小的偏移

在元片源著色器的基礎上 進行更改

fixed halflambert =

dot(worldnormal, worldlightdir)

*0.5

+0.5

; fixed3 diffuse = _lightcolor0.rbg * _diffuse.rgb * halflambert;

//diffuse = _lightcolor0.rbg * _diffuse.rgb *(0.5 * dot(worldnormal, worldlightdir) + 0.5);

fixed3 color = ambient + diffuse;

return

fixed4

(color,

1.0)

;

漫反射光照模型

漫反射光照是用於對那些被物體表面隨機散射到各個方向的輻射的進行建模的,在漫反射中,視角的位置i是不重要的,因為反射是完全隨機的,因此可以認為在任何反射方向上的分布都是一樣的。但是入射光線的角度是很重要的。蘭伯特定律 反射光線的強度與表面法線和光源方向之間夾角的余弦值成正比。diffusecol li...

Unity Shader中實現漫反射光照模型

逐頂點漫反射光照模型。頂點著色器的最基本任務就是把頂點位置從模型位置轉換到裁剪空間中。pos mul unity matrix mvp,pos2 pos為float4型別,pos2為float4型別。其中pos2要獲得模型空間座標 可在定義時 float4 pos2 position 計算漫反射光照...

Unityshader 漫反射光照模型

基本光照漫反射計算公式 c diffuse c light m diffuse max 0,n l c light 為光源顏色和強度,可以由lighting.cginc中的 lightcolor0提供 m diffuse 為材質反射係數,一般自己定義在properties中 n為表面法線,l為光源方...