Unity3D教程寶典之Shader篇:第一講Shader總篇

原文地址:http://blog.sina.com.cn/s/blog_471132920101d5kh.html
引言撕捍,在Unity3d里,所有的圖形繪制都必須通過(guò)Shader拴鸵,即著色器。一般的使用過(guò)程中忌卤,我們用到的都是unity自帶的Shader,即build-in shader球碉。學(xué)習(xí)Shader后肾砂,自己寫的Shader能做出很多你想要的特殊效果,增強(qiáng)游戲的畫面表現(xiàn)盒音。例如 水的倒影。 LOGO的光影閃過(guò)等等效果等等团甲。

Shader的分類

Shader按管線分類一般分為固定渲染管線與可編程渲染管線
1)固定渲染管線 ——這是標(biāo)準(zhǔn)的幾何&光照(Transforming&Lighting)管線逾冬,功能是固定的,它控制著世界躺苦、視身腻、投影變換及固定光照控 制和紋理混合。T&L管線可以被渲染狀態(tài)控制匹厘,矩陣嘀趟,光照和采制參數(shù)。功能比較有限愈诚∷矗基本所有的顯卡都能正常運(yùn)行。
2)可編程渲染管線——對(duì)渲染管線中的頂點(diǎn)運(yùn)算和像素運(yùn)算分別進(jìn)行編程處理扰路,而無(wú)須象固定渲染管線那樣套用一些固定函數(shù)尤溜,取代設(shè)置參數(shù)來(lái)控制管線。

Unity3d的三種Shader

Unity的Shader分為三種:
(1)Fixed function shader 屬于固定渲染管線 Shader, 基本用于高級(jí)Shader在老顯卡無(wú)法顯示時(shí)的Fallback(之后有詳細(xì)介紹)汗唱。使用的是ShaderLab語(yǔ)言,語(yǔ)法與微軟的FX files 或者NVIDIA的 CgFX類似丈攒。
(2)Vertex and Fragment Shader 最強(qiáng)大的Shader類型哩罪,屬于可編程渲染管線. 使用的是CG/HLSL語(yǔ)法。
(3)Surface Shader Unity3d推崇的Shader類型巡验,使用Unity預(yù)制的光照模型來(lái)進(jìn)行光照運(yùn)算际插。使用的也是CG/HLSL語(yǔ)法。

Unity3d三種Shader對(duì)比

三種Shader共同點(diǎn):
(1)都必須從唯一一個(gè)根Shader開始
(2)Properties參數(shù)部分显设,作用及語(yǔ)法完全相同
(3)具體功能都在SubShader里(Subshader: 子Shader,Shader會(huì)自上而下運(yùn)行第一個(gè)硬件能支持的Subshader框弛,主要作用是對(duì)不用硬件的支持。)
(4)都可以打標(biāo)簽捕捂,例如Tags { "RenderType" = "Opaque" } LOD 200 以及Lighting On等
(5)都可以Fallback
(6)都可以處理基本的功能瑟枫,例如光照漫反射(Diffuse)以及鏡面反射(Specular)。但是Vertex and Fragment和Surface都能實(shí)現(xiàn)Fixed function實(shí)現(xiàn)不了的高級(jí)功能指攒,例如基于uv計(jì)算的效果等等慷妙。

三種Shader不同點(diǎn):
(1)Fixed function shader以及Vertex and Fragment Shader在subshader下面還有pass{},但是Surface Shader,由于已經(jīng)將具體內(nèi)容打包在光照模型了允悦,不能加pass{},加了會(huì)報(bào)錯(cuò)膝擂。
(2)Fixed function shader每句代碼之后沒有分號(hào)';' 但是V&F shader以及Surface shader每句代碼之后都必須加分號(hào)';'
(3)核心結(jié)構(gòu)不同:
Fixed function shader的核心是
Material{} 以及 SetTexture[_MainTex]{}

Vertex and Fragment Shader的核心是
CGPROGRAM

pragma vertex vert

pragma fragment frag

include "UnityCG.cginc"

ENDCG
Surface Shader的核心是
(1)這套用的是Unity3d自帶光照模型Lambert,也不做頂點(diǎn)處理,那么只需要一個(gè)表面處理函數(shù)surf即可
CGPROGRAM

pragma surface surf Lambert

ENDCG
或者(2)這套表示使用的是自己寫的光照模型lsyLightModel架馋,并且使用了頂點(diǎn)處理函數(shù)vert

CGPROGRAM
// surface 表面處理函數(shù) 光照模型函數(shù) 頂點(diǎn)處理:函數(shù)

pragma surface surf lsyLightModel vertex:vert

//執(zhí)行順序 頂點(diǎn)處理函數(shù) -> 表面處理函數(shù) -> 光照模型函數(shù) ->顏色值
ENDCG

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末狞山,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子叉寂,更是在濱河造成了極大的恐慌萍启,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件办绝,死亡現(xiàn)場(chǎng)離奇詭異伊约,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)孕蝉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門屡律,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人降淮,你說(shuō)我怎么就攤上這事超埋。” “怎么了佳鳖?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵霍殴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我系吩,道長(zhǎng)来庭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任穿挨,我火速辦了婚禮月弛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘科盛。我一直安慰自己帽衙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布贞绵。 她就那樣靜靜地躺著厉萝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪榨崩。 梳的紋絲不亂的頭發(fā)上谴垫,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音蜡饵,去河邊找鬼弹渔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛溯祸,可吹牛的內(nèi)容都是我干的肢专。 我是一名探鬼主播舞肆,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼博杖!你這毒婦竟也來(lái)了椿胯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤剃根,失蹤者是張志新(化名)和其女友劉穎哩盲,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狈醉,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡廉油,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苗傅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抒线。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖渣慕,靈堂內(nèi)的尸體忽然破棺而出嘶炭,到底是詐尸還是另有隱情,我是刑警寧澤逊桦,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布眨猎,位于F島的核電站,受9級(jí)特大地震影響强经,放射性物質(zhì)發(fā)生泄漏睡陪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一匿情、第九天 我趴在偏房一處隱蔽的房頂上張望宝穗。 院中可真熱鬧,春花似錦码秉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至鲸伴,卻和暖如春府蔗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背汞窗。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工姓赤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仲吏。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓不铆,卻偏偏與公主長(zhǎng)得像蝌焚,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子誓斥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容