從頭學ShaderGraph :護盾材質

遊資網發表於2020-03-19
這次來做喜聞樂見的護盾,案例檔案會放在文章底部。還有,走過路過幫我來unity connect收藏點贊吧。

https://connect.unity.com/p/cong ... ph-5-hu-dun-cai-zhi

靈感來源於Brackeys的youtube教程,但內容更加豐富。

首先建立一個Unlit Graph,將shader設定成Transparent,要不然沒法透光。

從頭學ShaderGraph :護盾材質

由於護盾需要雙面+透明,ShaderGraph又沒法關掉ZWrite。所以我做了個正反兩面的球模型,來實現雙面護盾。

護盾可以被拆解成三部分。

  • 模型切割處發光
  • 模型邊緣發光
  • 貼圖區域發光


從頭學ShaderGraph :護盾材質

1.模型切割遮罩

在shaderforge中,有現成的這個節點。名字叫depth blend。

從頭學ShaderGraph :護盾材質

但在shadergraph搜尋Depth,只能找到Scene Depth。不過沒有關係,我們自己造。

從頭學ShaderGraph :護盾材質

用視線空間的Scene Depth減去Screen Position的alpha。(我想了半天沒搞懂是怎麼算出來的,有好心人告訴我原理嗎。)

算出來邊緣切割的遮罩,由於黑白反了,所以One minus一下。再選個護盾自發光顏色。

從頭學ShaderGraph :護盾材質

2.模型邊緣遮罩

標準的菲涅爾。

shadergraph有自帶的菲涅爾節點Fresnel Effect。當然你也可以自己點乘出來。

從頭學ShaderGraph :護盾材質

3.貼圖遮罩

需要蜂巢狀遮罩,所以做了一張六邊形的四方連續貼圖。

從頭學ShaderGraph :護盾材質

用滑塊做UV Tiling,time加到offset上做UV動畫。

從頭學ShaderGraph :護盾材質

由於球模型,頂部和底部UV會拉伸嚴重。

從頭學ShaderGraph :護盾材質

所以在shader中用sinV做遮罩,使貼圖隻影響球中間部位。

從頭學ShaderGraph :護盾材質

至此三個區域的遮罩製作完成。

4.顏色

純色護盾未免有些單調。於是用菲涅爾做遮罩,挑選內外兩種顏色混合

從頭學ShaderGraph :護盾材質

最後遮罩連線alpha,顏色連線color

本章結束,來張動圖。

從頭學ShaderGraph :護盾材質

都看到這裡了,點贊收藏吧。

下面是我的檔案

連結:https://share.weiyun.com/58mRhnO

密碼:thtw3e

使用方法:找個HDRP或著URP(LWRP),拖進去。我的資料夾下有預製體。

我的環境:Unity2019.3.0f1 HDRP 7.1.6 ShaderGraph 7.1.6

下面是我的artstation地址:

https://www.artstation.com/luteli

當然你也能看看我原來寫的文章

https://www.zhihu.com/people/lute-li/posts

相關閱讀:
從頭學ShaderGraph :UV與基礎材質
從頭學ShaderGraph:雪材質

作者:Lute Li
專欄地址:https://zhuanlan.zhihu.com/p/109547098

相關文章