原文地址:http://blog.sina.com.cn/s/blog_471132920101dfvh.html
Shader第九講
Render Path
**Render Path定義
**Render Path,就是采取的光照流程。****
****Render Path設(shè)置
**
**可以在Edit-> Project Settings->Player 里設(shè)定圆兵,見下圖跺讯。也可以直接在攝像機(jī)的Inspector面板里設(shè)置。Path" title="【風(fēng)宇沖】Unity3D教程寶典之Shader篇:第九講Render Path" style="margin: 0px; padding: 0px; border: 0px; list-style: none;">
****Render Path詳細(xì)講解
**
**
一:
**Vertex Lit
**
Vertex Lit即頂點(diǎn)光照殉农,顧名思義刀脏, 就是所有的光照計(jì)算都是在頂點(diǎn)進(jìn)行的,因此所有的像素運(yùn)算效果都不支持超凳,如陰影愈污,法線貼圖,light cookies等轮傍。一個物體一般只有一個pass暂雹。效果最差,運(yùn)行最快创夜。適合老設(shè)備或者一般的移動設(shè)備杭跪。
二:Forward Lighting
Forward Lighting是以shader為基礎(chǔ)的。支持像素光照(包括法線貼圖和light cookies)驰吓。支持單方向光的實(shí)時陰影涧尿。通常最亮(對環(huán)境影響最大)的光在Render Mode項(xiàng)勾選Important,對應(yīng)Forward,其余的用Not Important,對應(yīng)Vertex Lit檬贰。細(xì)節(jié):(1)最亮的幾個光源使用像素計(jì)算(2)其次的(最多4個)使用頂點(diǎn)計(jì)算姑廉。剩余的使用(3)Spherical Harmonics (SH)計(jì)算,它是一種快速的近似算法翁涤。判斷順序1.Render Mode為Not Important的肯定是頂點(diǎn)計(jì)算或者SH.2.亮度值最高的方向光肯定是像素計(jì)算3.Important的是像素計(jì)算桥言。如果光的數(shù)量沒有達(dá)到Quaility Setting里設(shè)置的Pixel Light Count。則依據(jù)亮度值將頂點(diǎn)或者SH轉(zhuǎn)換成像素計(jì)算迷雪。Path" title="【風(fēng)宇沖】Unity3D教程寶典之Shader篇:第九講Render Path" style="margin: 0px; padding: 0px; border: 0px; list-style: none;">Bass Pass: 渲染一個像素計(jì)算的方向光。以及所有頂點(diǎn)計(jì)算和SH方向光虫蝶。之后每增加一個逐像素計(jì)算的光都需要增加一個對應(yīng)的pass.LightMap在此應(yīng)用章咧,在此步的方向光可以有陰影。Additional Pass:額外的像素計(jì)算光能真,無陰影赁严。也就是說Forward Lighting只支持一個有陰影的方向光。SH:Spherical Harmonics,效率極高粉铐,不支持light cookies和法線貼圖疼约,更新頻率慢,不支持鏡面反射蝙泼,
三:Deferred Lighting
Deferred Lighting 給予光照和陰影最棒的效果程剥,對設(shè)備性能要求最高。要求Unity Pro汤踏。不支持移動設(shè)備及Flash织鲸。細(xì)節(jié):支持舔腾,多個帶實(shí)時陰影的光(例如足球里多個燈打在球員身上的效果), 不真正支持反鋸齒搂擦,不支持半透明稳诚。至少是Shader Model 3.0 。光照是在屏幕裁剪空間計(jì)算的瀑踢,所以復(fù)雜度是根據(jù)涉及的像素點(diǎn)的數(shù)量扳还,而并不是場景模型的復(fù)雜度。適合小范圍光源三個階段:Base Pass: 繪制深度緩沖等裁剪空間的緩沖信息橱夭。儲存在一張ARGB32 Render Texture中氨距,RGB存該點(diǎn)法線,A存鏡面反射強(qiáng)度徘钥。如果深度能讀取為Texture的話衔蹲,深度不會被顯式渲染。不能讀取的話呈础,則使用著色器替換Shader Replacement,即Camera.RenderWithShader舆驶。Base Pass的結(jié)果是,場景的物體附帶了深度緩沖而钞,以及一張儲存法線和鏡面強(qiáng)度的Texture沙廉。Lighting Pass: 只支持Blinn-Phong光照模型,陰影也是在這一步計(jì)算臼节。之前產(chǎn)生的緩沖在這一步用于計(jì)算光照撬陵。產(chǎn)生的光照緩沖同樣是一張ARGB32 Render Texture,RGB表漫反射光的顏色,A表單色鏡面光 网缝。Final Pass: 將紋理顏色與儲存的光照結(jié)果組合巨税。LightMap在這一步被應(yīng)用 注意:在Deferred Lighting的這一步完成后,才會到Forward Lighting粉臊。
****Render Path對比圖
**
**
[Path" action-data="http%3A%2F%2Fs5.sinaimg.cn%2Fmw690%2F47113292td15c94b951d4%26690" action-type="show-slide" style="margin: 0px; padding: 0px; border: 0px; list-style: none;">](http://photo.blog.sina.com.cn/showpic.html#blogid=471132920101dfvh&url=http://s5.sinaimg.cn/orignal/47113292td15c94b951d4)