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

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

發布時間:2020-08-17 10:54:38

Hello . 大家好,我這次帶來了完整的手遊寫實角色渲染合集,我是麥田。本次是寫實頭發的各向異性表達——Kajiya-Kay光照模型。一起來看這篇U3D實時渲染教程之角色頭發各向異性表達(上)。

這個係列主要分為三個部分:

1.頭發的渲染

2.皮膚的渲染

3.眼睛的渲染

每個分為2個文章,第一篇講基礎理論,第二篇講實際操作,最後的工程文件分別是Shader代碼和Shader圖表兩種形式。

一、觀察

在遊戲內,出於性能的考慮。引擎不會做到和DCC軟件使用離線渲染器渲染出來一樣的毛發效果,如Maya的XGen這種質感。這時候我們就有了替代方案,即:使用麵片頭發。這就涉及到了如何去表達頭發的質感問題。

毛發的各異

1-1.png

螺紋不鏽鋼的各異

1-2.png

二、分析

我們先從美術角度分析一下頭發:

我們可以看到頭發上的高光和傳統的球體的高光不一樣,頭發的高光更近似一個不規則的條狀(如果放置在一個平麵上)。

2-1.png

而且條狀的上下似乎有一定的漸變規律,暗-亮-暗。金屬器皿上的高光波紋近似。我們著重介紹頭發的理論基礎。

2-2.jpg2-3.png

上圖圈1的區域是亮的,圈2是暗色,這裏我們從觀察可以得出頭發的高光形狀與明暗的變化。如果觀察的仔細的話,可以回憶一下,生活中,看到姑娘的頭發,會跟隨看的方向和光產生偏移,以及透光性(散射)。

三、總結

從美術角度總結一下:

1.需要用麵片做出好看的頭發模型。

3.png

2.頭發想要好看必須要有一個這種形狀的高光,並且有明暗過度。

3.能受到燈光的影響,表達出她的透氣感。

我們再從程序的角度分析一下頭發:

找案例,Render Doc截幀,Profile,Frame Debug ,review源碼,一氣嗬成(哈哈,開個玩笑)

既然說到這裏,我們就引入GDC2004的那片PDF的內容吧——Kajiya-Kay模型傳送門:

4-3.jpg

(注:worldBinormal就是我們要的副切線,這裏寫做了副法線)

可以看出利用cross(叉積)來得出向量,然後再乘上tangentSign得到最終確定方向的副切線。所以說副切線的方向主要是由tangentSign來決定的,而tangentSign是由v.tangent.w* unity_WorldTransformParams.w計算得出的。

這裏的法線切線副切線的基礎內容,在知乎的Taecg的一片文章介紹的非常詳細了。我這裏隻是拾人牙慧簡單捋一遍。傳送請走:https://zhuanlan.zhihu.com/p/103546030

五、回歸到公式理解

5-1.png5-2.png

T,即為上文講到的切線。但是這裏是副切線,H是什麼呢?H是光入射方向L和視口方向V的中間向量,通常也稱之為半角向量(Half),半角向量被廣泛用於各類光照模型如Blinn—Phong。

為什麼會有這個H呢?我們來回想一下Blinn-Phong的光照模型和示意圖:

5-3.png

Blinn-Phong和Ponng的區別就在於多了一個H

當視線正好與反射向量對齊時,半程向量就會與法線完美契合。所以當觀察者視線越接近於原本反射光線的方向時,鏡麵高光就會越強。

獲取半程向量的方法很簡單,隻需要將光線的方向向量和觀察向量加到一起,並將結果歸一化(Normalize)就可以了。

在引入半向量H之後,我們現在應該就不會再看到Phong光照中高光斷層的情況了。下麵兩個圖片展示的是兩種方法在鏡麵光分量為0.5時的對比:

5-4.png

除此之外Blinn-Phong就沒什麼好說的了,Blinn-Phong與Phong唯一的區別就是,Blinn-Phong測量的是法線與半程向量之間的夾角,而Phong測量的是觀察方向與反射向量間的夾角。

繞了一堆,不就是Blinn—Phong高光的計算公式麼!

我們知道了這兩個數值,回到公式,我們再看一下,是不是了然了?

哦!就是副切線和LightingDir+ViewDir的和,然後點積,然後平方,然後用1減去這個值後再開方!最後想要到這個效果我們再平方。

六、實踐光照模型

我們用Graph複原一下邏輯,驗證一下想法!

6-1.png

Graph邏輯圖

這個高光模型我們給到一個球上觀察,OK,基本的環狀效果已經有了,剩下的就是加入comb map 來細化了。

觀察

6-2.png

CombMap采樣

6-3.png

寫在後麵:頭發的光照模型我感覺更加近似一個經驗值模型,是基於觀察近似的算法而非基於理論模擬。我們可以在這個理論模型的基礎上進行一些改進,讓它更加符合我們想要的一個效果。原理雖然枯燥,但確實很重要。具體的改動,會在實操的第二章節介紹。

頭發卡我卡得最難受的地方可能就是半透排序的方式了。思路是從模型下手加上雙Pass解決。

七、完整內容效果

7.webp.jpg

八、完整內容預習

以下是完整的Graph圖表和Shader代碼部分(手擼),有興趣的朋友可以先看一下。具體工程下一篇講完的時候放出來。

8-1.webp.jpg8-2.png

理解透徹光照模型後,具體實現的細節很容易了,下回見!

來源:Thepoly公眾號

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

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

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

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

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

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

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

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

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

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

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

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

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

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

×

同學您好!

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