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,也就是說光線垂直於物體表面時,輻照度最大。越大,表示光線越不垂直,輻照度越小。二 吸收和散射 學過基礎光...