眾所周知UE4中移除了Lightvector在材質中的直接引用。
這讓眾多二次元藝術家無比撓頭。
沒有Lightvector怎麼做自定義光照?
那麼接下來展示通過燈光藍圖實現Lightvector的引用。
以下是一個傳統(UE3)的CeilShader(一種卡通Shader)的核心模塊。
暫時先忽視華麗麗的ERROR!
光照方向和表面法線進行點乘輸出的結果進行Ceil計算。
(Dot的用法和Ceil請看其他文章。)
這樣得出最基本的光影變化。
但是!
UE4中LightVector並不能正確被材質引用。
而實際上我們又只需要燈光的朝向信息。
所以需要魔改一盞燈光。
上帝說:要有光
於是建立一個燈光藍圖。
既然是全局的光照這裡我使用了一盞平行光。
如圖僅需一盞平行光。
只後只需要取得燈光的朝向並且將這個朝向給予材質就好了。
如圖這一串節點可以很好的取得燈光的朝向。
下一個問題就是如何將這個向量傳遞給材質。
材質
看一下目前的材質設置:
紅紅的ERROR令人絕望T_T
於是使用一個常量(1,1,1)代替光線向量
如圖這時候已經可以看到。將常量(1,1,1)代替光線向量後 已經可以預覽到結果。
那麼下一步就是將這個三維數參數化.
同時。然我們要使用藍圖進行參數控制,
那麼就必須建立一個參數集合
就是這貨。
如圖示命好名。並且設定好參數名稱的參數集合。
然後再材質裡面引用這個參數集合。代替掉之前的常量(1,1,1)。
材 質 部 分 完 成 !
之後回到燈光藍圖,在ConstructionScript部分
進行參數設置。
將燈光的ForwardVector賦予參數集合的LightVector參數。
注意這裡用了一個乘法讓這個方向反向了以保證肉眼看到的正確效果。
之後將燈光藍圖 貼了材質的模型扔到場景裡。
就可以直接看到效果了。
轉一下燈光就可以看到神奇的效果了!!
第一部分~完~
感謝大家對Flector的支持!如果你喜歡我們的教程,記得幫忙轉發喲~~