當前位置:首頁 >教程首頁 > 遊戲程序 > Unity3D遊戲開發工程師班 >Shader圖文教程製作一隻妙蛙種子

Shader圖文教程製作一隻妙蛙種子

發布時間:2020-01-07 09:07:57

Hello,大家好!這次帶來了一份Shader圖文教程,製作一隻妙蛙種子。麵向有意了解Shader模塊的美術端的同學,基於ASE,不包含程序優化,所以本文不會涉及很多程序內容,隻介紹一些簡單的Shader編寫基礎。

1.webp.jpg

首先,我準備了模型和貼圖,網上下載的,鏈接在最下麵。

我們將模型貼圖文件導入Unity,取消材質動畫攝像機等導入勾選。並且在Scene內搭建一個實時平行光源和一個點光照暗麵。

2.webp.jpg

光照強度為1.25

新建一個Amplify Shader(基於表麵著色器)和一個材質球,然後雙擊Shader彈出ASE編輯器。

左側設置如下圖,

Shader Name設置你的名稱和路徑,斜杠代表子目錄,(腳本內原理相同)

Light model選擇自定義燈光模型

剔除背部

前向渲染

Shader LOD   200

Render type/Queue為不透明的幾何體

以上就是我們的Tags標簽設置,我們來看一下代碼

3.webp.jpg

代碼內引用了一些帶有.cginc的內置文件,如果您想看這些文件,可在Unity官網下載源碼包,找到這些文件。看看在輔助代碼中到做了啥。

4.webp.jpg

除此以外,我還勾選了Outline描邊,同樣的,我們來看看Tags

5.webp.jpg

外描邊剔除了正麵(即攝像機正對的麵),並且定義了一堆不要的東西。

好,正文開始

我們首先新建一個World normal(世界空間法線)和World Space Light Dir(世界空間光)節點,再新建一個Texture sample節點,引入我們的法線貼圖(記得法線貼圖導入要將類型選為法線,否則不認的)

6.webp.jpg

6-2.webp.jpg

這裏我們要把貼圖類型標明為Bump,勾選Unpack。這裏對於標記為Unpack小科普:在檢查器中將法線貼圖標記為法線貼圖時,法線貼圖會丟失其alpha通道,但是,在犧牲Alpha通道的同時,可以極大地提高壓縮質量,從而提高了法線貼圖的保真度,從而減少了壓縮偽影,使整體法線貼圖看起來更好。

7.webp.jpg

我們可以將法線理解為一個三維向量,如果你想提高法線強度,讓他和一個數值相乘就可以。

好,廢話少說,我們對這兩個得到的值進行第一次計算,將他們Dot(點積)

這裏我們就得到了第一個值,該值的公式(點積公式)為:Nx*Lx+Ny*Ly+Nz*Lz

8.webp.jpg

8-2.webp.jpg

接下來,我們繼續創建一個世界空間法線和一個View Dir(查看方向)節點然後點積。

這個節點由“ 空間”參數定義的坐標空間上輸出當前攝像機查看的視圖方向。

我們用來做菲涅爾效果,腦補一下菲涅爾啥樣,不會的去拖出去槍斃五分鍾。雖然有現成的菲涅爾節點。

9.webp.jpg

下麵,我們創建一個Scale and Offset(縮放和偏移),按1快捷鍵創建一個Float,同一個值控製兩個參數,並且剛才世界法向量和世界空間光向量點積值。然後對其進行鉗製輸出不要大於1。

10.webp.jpg

創建兩個Tex類型的Properties,一個用來放貼圖,一個用來放卡通獨有的強烈明暗交接

11.webp.jpg

我們觀察一下塞爾達傳說的光照,是由強烈的明暗交接的,這裏可以自己寫一個,我這裏就效仿官方Demo內的方式,直接用一個強明暗交接過渡的貼圖,長這樣(臥槽還有中文,沒錯命名我都懶得改,最近在公司改的快吐了,有因必有果,我的報應就是我)

12.jpg

然後相乘一下(那一天,人類回憶起了被向量乘法支配著的恐怖,以及被被矩陣變換折磨的屈辱。)。

13.webp.jpg

OK,這裏扔著不管了

接下來我們要細化一下菲涅爾和細化一下光照

新建一個值控製菲涅爾的強度,然後鉗製輸出在1內,最後用1減去這個值。

14-1.webp.jpg

14-2.webp.jpg

放著先不管,我們再新建一個Light Color光色和一個Light Attenuation光線衰減還有一個Indirect DiffuseLight間接漫反射

我們來看看這個光色節點,這貨獲取了我們空間內的燈光顏色和強度,RGBA通道輸出的是下麵兩個乘積的結果。

15-1.webp.jpg

15-2.webp.jpg

然後將他們相加,我們就得到了一個帶有背麵GI感覺的光照模型,舒服。

Ops,還沒有顏色,那就在和顏色相乘一下吧。

16.webp.jpg

如果你感覺不夠強烈,還可以反向一波和顏色相乘補一補光,這個就看個人喜好吧,每個人的審美不一樣

17.webp.jpg

現在長這樣了,惡龍咆哮有沒有?

18.webp.jpg

最後我們來細化細化一下菲涅爾。

沒什麼要說的了,就是接入世界空間光,控製菲涅爾強度和顏色相乘就完事了。

19.webp.jpg

最後將他們彙總到一個return裏麵,接入自定義光照,完美!

20.webp.jpg

我們來看一下整體節點流程圖和效果圖

21.webp.jpg

最後反複調整,加上後處理修飾修飾,什麼的,能堆的就堆,什麼性能不性能的,就是懟。

22.webp.jpg

來源:Thepoly 

华体会hth体育网 賞析
  • 2101期學員李思庭作品

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

你擔心的問題,火星幫你解答
×

確定