創作內容

21 GP

【筆記】Surface Shader - 3. Surface

作者:樂小呈│2020-07-03 18:02:28│巴幣:42│人氣:226
Surface Shader 筆記  
3. Surface

surface shader
表面著色器,大概就是一般材質球的概念 ?

surface 函式
#pragma surface 函數命名 光照模型 (模型採用基本模型 [ 參照筆記 4. Lighting Model])
> #pragma surface surf Lambert

void 函數名稱 (輸入, 輸出)
輸入: Input IN 接收外界的資訊 [ 參照筆記 2. Input struct ]
輸出: inout SurfaceOutput o 計算完畢的顏色輸出 [ 參照筆記 2. Channel ]
註: inout大概像 C#的 ref關鍵字?
輸出會受到光照模型影響,不同光照模型會允許使用額外的輸出值

範例
> 將表面顏色改為 Texture (_MainTex)
sampler2D _MainTex;
void surf (Input IN, inout SurfaceOutput o)
{                
    fixed4 c = tex2D(_MainTex, IN.uv_MainTex);

    o.Albedo = c.rgb;
}
註: 可以將 IN.uv_MainTex * 縮放,來改變貼圖大小
註: 可以將 IN.uv_MainTex * 時間 * 偏移方向,來做出動態材質

> 將表面顏色改為含有不透明度的 Texture (_MainTex)
#pragma surface surf Lambert alpha:fade
sampler2D _MainTex;
void surf (Input IN, inout SurfaceOutput o)
{                
    fixed4 c = tex2D(_MainTex, IN.uv_MainTex);

    o.Albedo = c.rgb;
    o.Alpha = c.a;
}
註: 渲染列隊須改為 alphaTest或 Transparent,才能正確渲染 [參照筆記 3. Buffer and Queue]

>  使用 Normal map [ 參照筆記 2. Channel ]
sampler2D _MainTex;
sampler2D _BumpTex;
void surf (Input IN, inout SurfaceOutput o)
{
    o.Albedo = tex2D(_myDiffuse, IN.uv_myDiffuse).rgb;  
    o.Normal = UnpackNormal(tex2D(_myBump, IN.uv_myBump));
}
註: 可以將 Normal值乘上強度,來增強、減弱陰影效果

這篇是基本的表面著色器實作筆記,其實光這幾行在加一些判斷式
就能混合出不少蠻酷的效果了,之後還會有進階混合顏色的筆記
但我又要開始忙主專案了 XD

我的筆記是打在記事本上的,所以字的顏色都是到這裡才上
配色有什麼建議也歡迎提,我盡量會統一格式啦

接下來就是光照模型的部分了 Lighting Model


今天在搞主專案
重構了一些程式碼,知道 static event之後又注意到好多可以改進的地方
每次學到新東西就會有股衝動想舊的全部翻新過一次RRR

static event 之後也會再打一篇筆記,這東西也蠻厲害的

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4836979
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:Shader|筆記

留言共 3 篇留言

御安鴨·摸頭害鴨哭
是類似C語言的格式ㄟ,我好像看得懂...不我看不懂

07-03 21:44

樂小呈
這是 CG語法[e12] 07-03 21:48
樂小呈
但說真的我也不清楚CG語法是什麼 XDD07-03 21:48
kiwi(薇薇安)
好專業........

07-03 22:07

樂小呈
沒啦,窩才剛學而已07-03 22:16
啪啦啪啦
感覺很酷

07-06 16:05

樂小呈
Shader真的蠻酷的 [e12]07-06 16:07
我要留言提醒:您尚未登入,請先登入再留言

21喜歡★angus945 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【筆記】Surface ... 後一篇:【筆記】Surface ...

追蹤私訊切換新版閱覽

作品資料夾

kkll7952全體巴友
+ 3月-4月遊戲製作進度+簡報分享(2024) +  https://home.gamer.com.tw/creationDetail.php?sn=5919640看更多我要大聲說昨天12:37


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】