Unity Shader 光照模式

2021-07-13 07:02:01 字數 1362 閱讀 7111

shader "custom/deferred_forward_vertex" 

}subshader

blend one zero

cgprogram

#pragma vertex vert

#pragma fragment frag

#include "unitycg.cginc"

#include "lighting.cginc"

struct vertout;

float4 frag(vertout i):color

endcg

}//end pass

//.2

pass

blend one one

cgprogram

#pragma vertex vert

#pragma fragment frag

#include "unitycg.cginc"

#include "lighting.cginc"

struct vertout;

float4 frag(vertout i):color

endcg

}//end pass

//.3

cgprogram

#pragma su***ce surf mydeferred

half4 lightingmydeferred_prepass (su***ceoutput s, half4 light)

struct input ;

sampler2d _maintex;

void surf (input in, inout su***ceoutput o)

endcg

} fallback "diffuse"

}

定義三種光照模式,根據相機的render mode選擇對應的光照模式看看輸出 什麼顏色

相機的render mode=vertex時 ,只有"lightmode"="vertex" 的pass塊才執行,沒有這個塊其他的不執行 

相機的render mode=forward時 ,只有"lightmode"="forwardbase" 的pass塊優先執行,沒有這個塊執行 "lightmode"="vertex" 的pass塊,兩者都沒有其他的不執行 

相機的render mode=deferred時 ,只有"lightmode"="mydeferred" 的pass塊優先執行,沒有這個塊執行"lightmode"="forwardbase" 的pass塊,沒有執行"lightmode"="vertex"的pass塊。

unity Shader基礎光照

一 光 1 輻射度 用來量化光。對於平行光來說,輻射度可以通過計算在垂直於l的單位面積上單位時間內穿過的能量來得到。2 散射和吸收 光線和物體相交會發生的現象。散射 只改變光線的方向,不改變光線的密度和顏色。散射後兩個方向 折射和反射。在關照模型中,高光反射部分體現反射,漫反射部分體現折射 吸收 只...

unity Shader複雜光照

一 渲染路徑 1 unity支援的渲染路徑 前向渲染路徑 forword 延遲渲染路徑 deferred 頂點照明渲染路徑 vertex lit 2 可以在專案上設定 也可以在攝相機上設定或者在shader上設定,在shader上利用lightmode標籤實現。3 pass的lightmode標籤支...

Unity Shader (六)基礎光照

一 輻照度 q1.如何量化光?a 用輻照度irradiance。q2 什麼是輻照度?圖中a點單位時間內穿過的能量就是輻照度。q2 怎麼計算輻照度呢?上圖中cos 值就是輻照度。0 時,cos 1,也就是說光線垂直於物體表面時,輻照度最大。越大,表示光線越不垂直,輻照度越小。二 吸收和散射 學過基礎光...