熱評 小沙子

感謝大佬分享,下篇等了好久了,啥時候出來呀

著色是卡通數(shù)字人角色設(shè)計的重要元素之一,它對于角色有著基本的色彩表現(xiàn)和結(jié)構(gòu)表現(xiàn)等造型作用,并且能夠表達角色的情感、塑造角色的性格,甚至通過其象征作用賦予角色某種特殊屬性或成為角色的縮影。隨著 3D 角色建模技術(shù)發(fā)展至今,色彩在角色設(shè)計上的功能和作用得到了較為充分的發(fā)揮和體現(xiàn)。本文通過分析 Blender 材質(zhì)節(jié)點的應(yīng)用,并結(jié)合 UV 和烘焙技術(shù),來完成卡通數(shù)字人展 UV、著色、烘焙的工作。

上期回顧:

一、展 UV

1. 什么是 UV?

在 Blender 中,可以為一個面關(guān)聯(lián)一個獨立的圖像。UV 用于定義二維紋理坐標(biāo)系,稱為“UV 紋理空間”。UV 紋理空間使用字母 U 和 V 來指示二維空間中的軸。UV 紋理空間有助于將圖像紋理貼圖放置在 3D 曲面上,然后圖像可以用于渲染或?qū)崟r顯示。在 3D 視圖中選擇面選擇模式,才能指定圖像或修改活動網(wǎng)格物體對應(yīng)的 UV 坐標(biāo)。這樣一個面可以有多張 UV 貼圖。默認情況下,網(wǎng)格是沒有 UV 的。首先得映射面,然后才能編輯它們 。展開模型的過程是在 3D 視圖編輯器的編輯模式下進行的,過程中會在 UV 編輯器創(chuàng)建一個或多個 UV 孤島。

2. UV 映射

UV 映射是將三維表面轉(zhuǎn)換為平面位圖圖像的二維坐標(biāo)系。原始曲面的每個頂點在 UV 貼圖上都有一個坐標(biāo),中間的像素值在平面多邊形曲面上進行插值,以實現(xiàn)高精度的紋理控制(特別選擇 U 軸和 V 軸名稱,以免與實際模型的 X、Y 和 Z 軸重名)。UV 貼圖坐標(biāo)值被組織成一個網(wǎng)格系統(tǒng),其中圖像本身出現(xiàn)在網(wǎng)格的 0-1 區(qū)域中,而該圖塊之外的區(qū)域只是向外重復(fù)圖像。因此,傳統(tǒng)上只真正使用了 UV0-1 空間。

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

UV 映射-圖片來源于網(wǎng)絡(luò)

3. UV 通道

在網(wǎng)格標(biāo)簽頁的 UVMaps 面板有一個列出所有為網(wǎng)格創(chuàng)建的 UV 映射的列表視圖。被選中的映射會在 UV/圖像編輯器顯示。單擊相機圖標(biāo),啟用渲染該 UV 貼圖。

4. UV 展開

展 UV 前先重置模型:Ctrl+A,選擇「全部變換」。這是為了避免 UV 有拉伸。和縫紉一樣,縫合線是圖像/布拼接的位置。展開時,只要選中邊,然后按下 Ctrl-E 并選擇標(biāo)記縫合邊,即可將一條邊標(biāo)記為縫合線;使用 Ctrl-E 并選擇清除縫合邊即可清除標(biāo)記。

工作流程如下:Create seams-展開-反復(fù)調(diào)整縫合線-手動調(diào)整 UV,角色模型的 uv 展開方式有很多,具體如何拆分,需要綜合考慮角色的風(fēng)格、性能、精細度等。

在展開對稱物體時,比如身體,沿對稱軸標(biāo)記縫合線,在展開時,可以把兩個半邊重疊到同一個紋理空間,這樣右手和左手可以共用圖像像素;左腳匹配右腳等等。

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

展 UV-圖片來源于 Blender 官方

3. UDIM Workflow

UDIM 是對 UV 貼圖和紋理工作流程的增強,它使 UV 貼圖的生成和分配紋理變得更加簡單。

從本質(zhì)上講,UDIM 只是一個自動 UV 偏移系統(tǒng),它將圖像分配到特定的 UV 平鋪上,它允許你對相鄰表面使用多個較低分辨率的紋理貼圖,從而產(chǎn)生更高分辨率的結(jié)果,而不必求助于使用單個、超高分辨率圖像。為了理解 UDIM 工作流的好處,需要對 UV 貼圖的工作原理有一個基本的了解。

使用 UDIM 工作流程,0-1、1-2、2-3 等每個完整的圖塊部分都可以分配給它自己的獨立圖像映射,所有這些都在同一個表面內(nèi)。每個圖像也可以有自己的分辨率。UDIM 工作流程只是一種相應(yīng)命名圖像的符號格式,因此它們會自動分配給特定的 UV 平鋪。編號從 UV 原點開始,沿正方向向外移動十個圖塊(到 1010),然后重復(fù)堆疊在一起的行,向上移動 9999 行。

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

UV 圖塊

使用 UDIM 工作流程從實際幾何體的 UV 映射開始。在此階段決定如何劃分模型,通?;陧椖克璧姆直媛食潭?。對于一個普通的角色項目,可以分成頭部一個圖塊,身體一個圖塊。如果想要更高的分辨率,還可以將手和腳分配到單獨的圖塊上。

如何在 Blender 中使用 UDIM 分塊?

  1. 先選中角色模型,在 UV 編輯器中新建圖像,注意圖像選擇平鋪。
  2. 在右側(cè)圖像菜單,源選項下選擇 UDIM 分塊。
  3. 在 UDIM 分塊下添加分塊,設(shè)置所需的分塊數(shù)量。
  4. 將模型的 UV 孤島分配到各個 UDIM 分塊。

二、著色

1. body 材質(zhì)

為了避免制作貼圖時每一步都需要繪畫的痛苦,我們求助于攪拌機最大的力量——材料節(jié)點編輯器!我們通過添加一些頂點繪畫并添加一些次表面散射來完成角色的皮膚著色。

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

body 著色

① 設(shè)置光源

將世界環(huán)境的背景色改為略帶灰白色的顏色,這樣做的好處就是,在場景中我們不需要任何燈光,并且為場景中的模型提供了非常勻稱的光源。

② 使用(AO)添加基礎(chǔ)顏色

給角色模型添加一個原理化 BSDF 材質(zhì),然后給基礎(chǔ)色添加一個環(huán)境光遮蔽(AO),這時候我們可以看到角色的夾縫中看到一些暗部陰影。在環(huán)境光遮蔽節(jié)點與主節(jié)點之間添加一個漸變節(jié)點,調(diào)節(jié)滑塊模擬陰影部分的深淺,調(diào)節(jié)漸變顏色模擬皮膚的色調(diào)。這樣得到一個非?;A(chǔ)的膚色,可以多添加幾種顏色,豐富皮膚顏色的細節(jié)和過渡。需要注意的是,在著色和烘焙的時候,需要將渲染屬性的顏色管理改成標(biāo)準(zhǔn),以便我們更準(zhǔn)確的觀察色彩變化。

③ 添加皮膚高光

有了基礎(chǔ)顏色,接下來我們來調(diào)整高光部分,添加一個幾何數(shù)據(jù)節(jié)點,再添加一個漸變節(jié)點,將尖銳度連接到漸變系數(shù)上,按住鍵盤快捷鍵 ctrl+shift,然后點擊漸變節(jié)點,預(yù)覽節(jié)點效果。調(diào)整滑塊,最終調(diào)整得到我們滿意的高光部分為止,然后將此部分節(jié)點和基礎(chǔ)色節(jié)點通過節(jié)點混合鏈接到主節(jié)點,需要注意的是高光部分的節(jié)點連接到系數(shù),最后設(shè)置一下另一個顏色(高光顏色),這樣就得到了皮膚的高光,繼續(xù)調(diào)整高光節(jié)點的漸變滑塊,以達到最佳的效果。

④ 添加次表面效果

最后添加次表面顏色,讓皮膚在光照下顯得更加通透,通常次表面體現(xiàn)在皮膚相對薄弱的區(qū)域,譬如手指、眉毛、眼瞼、鼻子、耳朵、和其他肉質(zhì)部分。接下來我們添加一個頂點色,命名為 sss,我們?yōu)檫@些地方繪制頂點色,繪制完記得使用模糊畫筆模糊一下。最后添加次頂點顏色節(jié)點和漸變節(jié)點,鏈接到主節(jié)點的次表面上,設(shè)定一個次表面顏色,調(diào)整漸變滑塊,以達到滿意的次表面效果。

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

角色 body 著色材質(zhì)節(jié)點

2. 眼睛材質(zhì)

實現(xiàn)眼球材質(zhì)的方法多種多樣,但最終都需要以貼圖的形式輸出,這里主要使用材質(zhì)+烘焙的方式。通過觀察,我們可以將眼睛的材質(zhì)分為眼球和虹膜兩個主要材質(zhì),而眼球眼球?qū)嶋H上可以分為三種材質(zhì):白色的基地、鞏膜上的血絲、透明的角膜,這里我們依托于 blender 強大的節(jié)點,將三者結(jié)合到一個材質(zhì)里,盡量少的材質(zhì),亦能節(jié)省引擎渲染的性能。

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

眼睛材質(zhì)

① 眼球的材質(zhì)

通過觀察,我們在制作眼球的材質(zhì)時可以將其歸納為白色基底、透明的角膜、眼球中的血絲三個部分:

step 一:白色基底

對于白色基底,新建一個原理化 BSDF 節(jié)點,基礎(chǔ)色直接選取白色,只要把糙度調(diào)低即可。

step 二:透明的角膜

角膜的關(guān)鍵在于它是透明的,且為了保證過渡自然,需要用到漸變紋理來控制白眼球的透射率實現(xiàn)。顏色漸變模塊的滑塊拖動可以控制漸變范圍,這里漸變區(qū)域一般不要設(shè)置太大,有一點就可以了。(將虹膜添加一個深色材質(zhì),便于觀察過渡的效果)

step 三:眼球中的血絲

眼球中的血絲可以分為底色和血絲部分,由于血絲的位置主要分布在白眼球處,所以可以復(fù)用前面的漸變紋理作為輸入,新建一個漸變即可,通過調(diào)整漸變的范圍即可以調(diào)整顏色分布。沃羅諾伊紋理作為血絲的紋理,由于該紋理具有一致的方向性,和血絲的不規(guī)則不同,故還需要通過噪聲紋理對齊形狀進行調(diào)整。然后將紋理染成紅色并與底色柔光疊加即可達到血絲的效果,為了增加細節(jié),可以再添加一些小血管,小血管的材質(zhì)和大血管的流程完全一樣,只是紋理的參數(shù)不同,通過增加沃羅諾伊紋理的縮放系數(shù),來增加紋理的密度,并將大血管的輸出通過混合節(jié)點混合后輸出為血管紋理。

至此眼球的部分的材質(zhì)就做好了,接下來我們制作虹膜部分的材質(zhì)。

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

CORNEA/SCLERA 的材質(zhì)節(jié)點

② 虹膜的材質(zhì)

在制作虹膜的材質(zhì)之前,我們可以先將虹膜部分的 UV 展開,因為后續(xù)紋理映射將會使用 UV 坐標(biāo)來制作。

通過觀察,我們不難發(fā)現(xiàn),瞳孔中心是黑色的顏色,然后是淺色的虹膜,然后逐漸消失,因此,可以將虹膜部分看作是虹膜和瞳孔兩部分,虹膜紋理部分使用噪波+鏡像漸變紋理,而虹膜的漸變則可以使用球形漸變紋理制作,然后通過混合 RGB 節(jié)點(正片疊底)進行混合。

為了讓虹膜的紋理不顯得單調(diào),還可以使用沃羅諾伊紋理增加虹膜部分的細節(jié),最后使用混合 RGB 節(jié)點(顏色減淡)與前面的顏色節(jié)點相連。

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

IRIS 的材質(zhì)節(jié)點

三、渲染烘焙

烘焙,一般是為了加速后續(xù)的其他過程進行的預(yù)先計算。渲染烘焙一個網(wǎng)格物體表面,得到 2D 位圖圖片,這些圖片會通過 UV 坐標(biāo)重新映射到物體上,這讓實時渲染的效率更高。烘焙是對每個獨立網(wǎng)格完成的,并且網(wǎng)格已經(jīng)展開 UV。

Blender Cycles 著色器的燈光照明可以烘焙到圖像紋理。這有幾種不同的用途,最常見的是:

  1. 烘焙紋理,如基礎(chǔ)顏色或法線貼圖,用于導(dǎo)出到游戲引擎。
  2. 烘焙環(huán)境光遮蔽或程序紋理,作為紋理繪制或進一步編輯的基礎(chǔ)。
  3. 創(chuàng)建光照貼圖以提供全局照明或加快游戲中的渲染速度。

1. UDIM 渲染烘焙

在烘焙之前我們需要確保已經(jīng)完成 UDIM 分塊,同時在物體數(shù)據(jù)屬性下為每個 UV 塊添加了定位在主分塊的 UVMap。Blender 的渲染烘焙是一個非常復(fù)雜的工作流程,為了提高工作效率,我們選擇使用插件(SimpleBake)來輔助烘焙。

在物體數(shù)據(jù)屬性中選擇對應(yīng)的 UVMap,在 SimpleBake 中,選擇需要烘焙的貼圖類型,譬如 Diffuse、sss、Normal 等,選擇貼圖尺寸,貼圖名稱,在物體模式下選中模型,點擊 Bake PBR Maps,最后檢查一下貼圖是否正常,在 ps 或者直接使用 Blender 紋理繪制,在貼圖的基礎(chǔ)上添加細節(jié)以及修正瑕疵。

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

使用 SimpleBake 完成 UDIM 渲染烘焙

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

烘焙后的貼圖

2. PBR 貼圖應(yīng)用

在 blender 中我們可以使用程序化節(jié)點達到想要的效果,但當(dāng)模型導(dǎo)入到引擎,這個時候就需要通過貼圖的形式來實現(xiàn)我們想要的效果,也就有了上面烘焙的這步流程,當(dāng)然,相對程序化節(jié)點效果,PBR 讓更為真實但更加復(fù)雜更加消耗性能的光照模型算法變?yōu)榭梢源罅勘皇褂茫?Blender 中 PBR 紋理到底如何正確使用?下面介紹幾個主要的貼圖的設(shè)置方法。

① 基本顏色 Base Color:

基本顏色貼圖定義了表面的顏色。直接將其插入 Principed BSDF 的 Base Color 接口。注意:確保圖像文件的顏色空間設(shè)置為“顏色”。

② 粗糙度 Roughness:

粗糙度圖定義表面的粗糙度。應(yīng)將其插入 Principed BSDF 的“粗糙度”輸入中。確保圖像文件的顏色空間設(shè)置為“非顏色數(shù)據(jù)”。(可選)您可以在圖像后面添加個 Gamma 節(jié)點以輕松實現(xiàn)材料的粗糙度。較低的 gamma 表示表面更粗糙,反之亦然。

③ 法線 Nomal:

法線貼圖定義表面的一部分朝向哪個方向,該方向用于創(chuàng)建詳細的陰影和高光。通常,應(yīng)將其插入法線貼圖節(jié)點的“顏色”輸入中,然后將其插入“Principed BSDF”的“法線”輸入中。確保圖像文件的顏色空間設(shè)置為“非顏色數(shù)據(jù)”。

④ 金屬度 Metallic:

金屬貼圖定義了材料的哪些部分是金屬的,哪些不是。應(yīng)將其插入著色器的金屬輸入中。確保圖像文件的顏色空間設(shè)置為“非顏色數(shù)據(jù)”。只有金屬和非金屬材料都可以使用此貼圖。如果金屬材料沒有此貼圖,則可直接調(diào)整 Principled BSDF 中的金屬值。

⑤ 環(huán)境光遮蔽 Ambient Occlusion:

環(huán)境光遮蔽(AO)貼圖可用于偽造曲面凹凸中的柔和陰影,這在游戲引擎里面尤為有用。(注:Blender 中使用 Cycles 渲染時,AO 貼圖的作用不大)。如果要使用此貼圖,則應(yīng)使用 MixRGB 節(jié)點將其與“基礎(chǔ)顏色”貼圖相乘,其中“環(huán)境光遮擋”貼圖是第二個顏色輸入,因此您可以使用 MixRGB 節(jié)點的滑塊輕松控制其強度。

最后我們按照上面的方法,新建一個材質(zhì),將烘焙好的貼圖連接到對應(yīng)的原理化 BSDF 節(jié)點上,至此,一個附帶 PBR 材質(zhì)的角色模型就做好了。

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

PBR 節(jié)點連接方式

四、效果展示

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

三視圖

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

服裝

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

pose

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

cloth-01

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

cloth-02

Blender 實戰(zhàn)!3D卡通虛擬數(shù)字人角色設(shè)計完整流程(中)

cloth-03

五、結(jié)語

本文著重講述了數(shù)字人角色在 Blender 中著色的工作流程,講述了角色如何展 UV,借助 Blender 強大的節(jié)點功能,完成角色皮膚及眼睛的材質(zhì)制作,最終使用 UDIM 工作流提升我們的工作效率,至此,一個角色的形象已經(jīng)完整的展現(xiàn)在你的眼前,但栩栩如生的數(shù)字人,怎能止步于靜止,在下一章節(jié),我們繼續(xù)講述角色綁定和動作的知識,讓真人實時驅(qū)動角色動起來,以及通過語音驅(qū)動數(shù)字人說話。

收藏 127
點贊 54

復(fù)制本文鏈接 文章為作者獨立觀點不代表優(yōu)設(shè)網(wǎng)立場,未經(jīng)允許不得轉(zhuǎn)載。