小屋創作

日誌2020-07-25 17:27

【筆記】Vertex Shader - 3. Lighting

作者:樂小呈


Vertex Lighting
Vertex shader中並不包含預設的光照模型,所以需要自行計算

此編筆記中只有重點程式碼

設置光照模式
Tags { "LightMode" = "ForwardBase" }

引用文件
#include "UnityCG.cginc"
#include "UnityLightingCommon.cginc"

struct appdata
{
    法線輸入,照明計算中最重要的部分
    > float3 normal : NORMAL;
};

struct v2f
{
    保存計算中照明產生的顏色 diffuse
    > fixed4 diff: COLOR0;
};

計算照明
v2f vert (appdata v)
{
    計算光照
    算式講解參照筆記 [Surface Shader 4.Lighting - Writing Lighting Model]

    使用 UnityObjectToWorldNormal將頂點法線轉換成 worldSpace
    > half3 worldNormal = UnityObjectToWorldNormal(v.normal);

    使用 _WorldSpaceLightPos0取得光源方向
    > half nl = max(0,dot(worldNormal, _WorldSpaceLightPos0.xyz));

    光源強度 * 光照顏色
    > o.diff = nl * _LightColor0;

    return o;
}

fixed4 frag (v2f i) : SV_Target
{
    fixed4 col = tex2D(_MainTex, i.uv);

    將光照計算後的顏色加入 texture顏色
    > col *= i.diff;
    return col;
}

混一篇

今天又又又在重構主專案的程式
重構敵人的移動,把冗長到爆的100多行重構到剩 3 40行
這部份的架構差不多定下來了

20

3

LINE 分享

相關創作

【程式筆記】0320 C++物件導向程式設計

國考跟憂鬱症日記 3/26

國考跟憂鬱症日記 3/20

留言

開啟 APP

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

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