當前位置:首頁 >教程首頁 > 遊戲程序 > Unity3D遊戲開發工程師班 >U3D實時渲染教程之角色頭發各向異性表達(下)

U3D實時渲染教程之角色頭發各向異性表達(下)

發布時間:2020-09-21 10:26:51

大家好,我是麥田。上次跟大家分享了 U3D實時渲染教程之角色頭發各向異性表達(上)  ,今天帶來後半部分U3D實時渲染教程之角色頭發各向異性表達(下)。

1、回顧

接上次一說到,我們知道了公式,回憶一下:

1.png

也用圖表搞了一個簡單的光照模型。

2.png

我對公式重新簡單梳理:

3.webp.jpg

上次有看官留言到:

4.png4-2.png

這裏講一下為什麼會選擇副切線,因為頭發的UV是從V方向鋪開的。

2、運用

透明是一切混亂的開端。

這裏讀者必須要理解幾個概念:

深度寫入

顏色寫入

深度測試

渲染隊列

渲染排序

這裏沒法花很大的篇幅講解,具體直接看樂樂入門書的第8章

隻能簡單的概括一下,對於半透的東西,渲染排序是很嚴謹的。透明物體的渲染一直是圖形學方麵比較蛋疼的地方。

對於透明物體的渲染,就不能像渲染不透明物體那樣多快好省,因為透明物體不會寫深度,也就是說透明物體之間的穿插關係是沒有辦法判斷的,所以半透明的物體在渲染的時候一般都是采用從後向前的方法進行渲染。

由於透明物體多了,透明物體不寫深度,那麼透明物體之間就沒有所謂的可以通過深度測試來剔除的優化,每個透明物體都會走像素階段的渲染,會造成大量的Over Draw。這也就是粒子特效特別耗費性能的原因。

5.png

下麵,我開了雙Pass來解決渲染次序這個問題,即:

第一個Pass隻渲染背麵關閉深度

第二個Pass隻渲染正麵開啟深度

由於Unity會順序執行SubShader中的各個Pass,因此我們可以保證背麵總是在正麵被渲染之前渲染,從而可以保證正確的深度渲染關係。

6-1.png6-2.png

對於不會代碼的美術同學,沒關係,貼心的ASE具備雙Pass的功能(雖然最多隻支持到雙Pass,我覺得挺良心了)

7.png

Pass1:

8.png

Pass2:

9.png

下麵,展示一下我用的模型和貼圖:

mask:

10.png

Diffuse:

主要用來提Alpha的,雖然可以合到上邊的Mask的A通道內,太懶,就沒合

11.png

Normal

12.png

美術篇開始:

先定義一個法線,轉到世界空間,然後使用Mask的G通道與之相乘,要記得歸一化。

13.png

然後將其與我們的世界空間下的副切線加在一起,同時,我也Public了一個float類型的值,給進去,是為了能夠更好的偏移高光位置。可以自行腦補下高光上下偏移,最後記得歸一化。

14.png

輸入燈光方向+視口(觀察)方向

15.png

將他們Dot(點積)後平方,一減後開方,到這一步發現,我們已經幾乎完成了Kajiya-Kay光照模型的公式

16.png16-2.png

為了做出柔和過度的高光,觀察一下下圖,1.區域很亮,2.區域柔和。

新Public 四個值,並且使用Pow來約束他們範圍強度,使用Mask的B通道乘進去,做出頭發的黑白區域,然後將他們與顏色相乘後疊加(Add)在一起

17-1.png17-2.png

接下來,使用觀察方向和世界法線做一次Pow,來控製高光兩邊的範圍

18.png

將其疊加在一起,使用一個常量控製強度。

19.png

顏色部分,我構建了一個類似lambert的lerp來插值兩個顏色,為的是模擬受光麵到暗麵的過渡效果,即透氣感。

20.png

到了提Alpha的時候了,順便控製一下Alpha的強度

21.png

我們將插值後的Color和高光區域疊加,與平行光顏色強度相乘。 讓他受光照影響

22.png

最後,我們和alpha組合,分別輸出到pass1和pass2

23.png

我們掛起FrameDebugger

24.png

可以看一下他的渲染順序

先渲染了Pass1,即剔除前麵的

25.png

再渲染了Pass2剔除了背麵的

26.png26-2.png26-3.png

程序部分我就不詳細介紹了,重在思路。因為這次相比上一篇節點和程序的版本,有些地方有優化改動,Shader腳本還沒來得及改動。如果需要腳本等到下一篇文章的時候再發出來吧。

如果有錯誤,還請斧正。如果需要高清的圖表,模型貼圖等文件,聯係我就好。

最後的最後,最近在研究URP渲染管線,有同好可以一起交流探討URP和Shader。

來源:Thepoly 公眾號

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

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

你擔心的問題,火星幫你解答
  • 廣州視頻剪輯培訓機構有哪些

    在廣州這座繁華的都市中,數字創意產業正蓬勃發展,廣州視頻剪輯培訓成為許多影視愛好者的理想起點。隨著短視頻平台和影視製作需求的激......

  • 北京UI設計培訓免費試聽攻略

    在北京這樣一座充滿創意活力的都市,UI設計培訓正成為無數年輕人追逐職業夢想的跳板。隨著數字經濟的蓬勃發展,UI設計行業在北京展......

  • 北京平麵設計培訓機構排名榜

    在當今創意經濟蓬勃發展的浪潮中,北京平麵設計培訓成為眾多職業追求者的理想起點。這座城市的活力與機遇吸引著無數人投身視覺藝術領域......

  • 北京虛幻引擎課程內容全解析

    在影視和設計行業蓬勃發展的今天,虛幻引擎作為核心技術工具,正引領著視覺創作的革命。越來越多的人渴望掌握這門技能,而專業的培訓成......

  • 北京平麵設計課程如何選擇適合的

    在北京這座文化創意中心,平麵設計培訓行業蓬勃發展,為渴望入行的學員提供了豐富機遇。隨著數字媒體和影視產業的崛起,掌握視覺傳達技......

  • 上海3D建模短訓班課程內容解析

    在上海這座充滿活力的城市,影視和設計行業正迎來前所未有的發展機遇,數字技術的進步讓3D建模成為創意產業的核心驅動力。參加專業的......

×

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯係,請保持電話暢通!
確定