Unity3D Shader 入門學習

2021-09-09 06:28:00 字數 1305 閱讀 5441

unity3d 的所有渲染工作離不開著色器.

shader 著色器其實是一小段程式,它負責將輸入的mesh網格. 以指定的方式和輸入的貼圖或者顏色等組合作用.然後輸出.繪圖單元可以依據這個輸出來將影象繪製到螢幕上

輸入的貼圖或顏色等,加上對應的shader,以及對shader的特定引數設定,將這些內容(shader及輸入引數)打包儲存在一起,得到的就是乙個material(材質)。

shader大體可以分為兩類:

乙個普通的著色器結果如下:

屬性定義

子著色器

回滾

shader "custom/diffuse texture"

} subshader

lod200

cgprogram

#pragma su***ce surf lambert

sampler2d _maintex;

struct input

;void

surf

(input in

, inout su***ceoutput o

)endcg

} fallback "diffuse"

}

properties{}中定義著色器屬性

每一條屬性的定義的語法是這樣的

_name("display name", type) = defaultvalue

defaultvalue 定義了這個屬性的預設值

另外還有乙個,它只對2d,rect或者cube貼圖有關,在寫輸入時我們最少要在貼圖之後寫一對什麼都不含的空白的{}

cgprogram

#pragma su***ce surf lambert

sampler2d _maintex;

struct input ;

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

endcg

struct su***ceoutput ;
貓都能學會的unity3d shader入門指南(一)

貓都能學會的unity3d shader入門指南(二)

Unity3d Shader 運動模糊

攝影常用的一招就是延時攝影,以使運動的物體產生運動模糊。攝影技巧為 1,三角架固定相機 2,調長 時間 3,物件有運動物體和靜止物體參照 用了延時攝影,會產生藝術感,見下圖 2015年1月 拍攝於上海陸家嘴 遊戲方面可喜的是unity3d也可以實現類似效果,先看效果圖 第一張為無運動模糊 第二張為有...

unity3d shader之浮雕效果

浮雕就是對影象上的乙個畫素和它右下的那個畫素的色差的一種處理 非常容易,只需要乙個簡單的演算法 用fragment shader來實現 我們只看實現部分就好 在frag函式中 mc00mc tex2d maintex,i.uv maintex rgb 獲取當前點的顏色 mc11 tex2d main...

unity3D Shader《三》漫反射

一 漫反射的說明 對於粗糙物體表面的某一點,其亮度應該和入射光線與該點的垂直程度有關,也就是入射光線與此點的夾角相關。如果我們用l表示單位長度的入射光線,用c表示到達此點的光線強度和顏色,用n表示此點的髮線,那麼物體表面此點的亮度lum就可以用下面的公式來表示 lum c max 0,cos 表示的...