虛幻引擎【UE5】材質(zhì)寶典【初學(xué)者材質(zhì)基礎(chǔ)入門系列】

【才開始學(xué),筆記每天早上整理更新,不知道為啥這破網(wǎng)頁晚上圖放不上來】
材質(zhì)介創(chuàng)建
面板右鍵創(chuàng)建材質(zhì)

創(chuàng)建材質(zhì)后命名,或者f2進(jìn)行重新命名

材質(zhì)添加
1.拖動材質(zhì)球到物體
2.搜索材質(zhì)并添加

材質(zhì)編輯器
雙擊材質(zhì)球打開材質(zhì)編輯器

在預(yù)覽窗口可以調(diào)整預(yù)覽物體的形狀

將網(wǎng)格物體放到材質(zhì)瀏覽視口里的方法

在顯示中可以關(guān)掉背景

節(jié)點(diǎn)可以在細(xì)節(jié)面板里調(diào)整參數(shù)

內(nèi)容瀏覽器??吭诓季种?/p>

所有節(jié)點(diǎn)

打開實(shí)時更新,視口中所有操作都會同步

清理沒有鏈接的節(jié)點(diǎn)

材質(zhì)表達(dá)式節(jié)點(diǎn)
快捷鍵
按住ALT點(diǎn)擊節(jié)點(diǎn)可取消連接
常量Constant(1+鼠標(biāo)左鍵)
二維常量Constant 2Vector(2+鼠標(biāo)左鍵)
Constant 3Vector(3+鼠標(biāo)左鍵)
Constant 4Vecor(4+鼠標(biāo)左鍵)
Add(A+鼠標(biāo)左鍵)
凹凸貼圖偏移BumpOffset(B+鼠標(biāo)左鍵)
Divide(D+鼠標(biāo)左鍵)
Power(E+鼠標(biāo)左鍵)
材質(zhì)函數(shù)調(diào)用MaterialFunctionCall(F+鼠標(biāo)左鍵)
If(I+鼠標(biāo)左鍵)
線性插值Lerp(L+鼠標(biāo)左鍵)
乘Multiply(M+鼠標(biāo)左鍵)
標(biāo)準(zhǔn)化Normalize(N+鼠標(biāo)左鍵)
參數(shù)反向OneMinus(O+鼠標(biāo)左鍵):用1減去參數(shù)
相位Panner(P+鼠標(biāo)左鍵)
關(guān)聯(lián)向量RelectionVector(R+鼠標(biāo)左鍵)
標(biāo)量參數(shù)ScalarParameter(S+鼠標(biāo)左鍵)
紋理采樣TextureSample(T+鼠標(biāo)左鍵)
紋理坐標(biāo)TextureCoordinate(U+鼠標(biāo)左鍵)
向量參數(shù)VectorParameter(V+鼠標(biāo)左鍵)
分離通道ComponentMask(Shift+C)
刷新節(jié)點(diǎn)預(yù)覽(Space)
材質(zhì)結(jié)果節(jié)點(diǎn)介紹
基礎(chǔ)色
創(chuàng)建三維常量




如果有貼圖可以直接拉進(jìn)來連接

金屬度
參數(shù)值0-1,數(shù)值越小金屬度越不明顯


粗糙度
參數(shù)值0-1,數(shù)值越大粗糙度越明顯


高光度
參數(shù)值0-1,數(shù)值越大高光越明顯


各向異性
參數(shù)值0-1,數(shù)值越大各向異性越明顯
可以拉長高光


通過添加三維向量到切線來控制各向異性的方向

自發(fā)光顏色
參數(shù)值不限,數(shù)值越大發(fā)光越明顯
自發(fā)光材質(zhì)可以照明場景


不透明度
需要在細(xì)節(jié)面板中將混合模式改為半透明
參數(shù)值0-1,數(shù)值越小越透明

不透明蒙版
需要導(dǎo)入透明背景圖
混合模式改為已遮罩

Normal法線
添加法線貼圖,可直接拖入或者搜索


切線
讓材質(zhì)球在空間上產(chǎn)生位移
調(diào)整RGB來控制位置

Subsurface color次表面顏色
著色模型改為次表面
給基礎(chǔ)色和次表面兩個不同的顏色

不透明度為0時,透光效果非常好

Custom Data 0&Custom Data 1自定義輸入端
在著色模型中選擇要更改的材質(zhì)類型

像素深度偏移
可以讓網(wǎng)格物體在接觸地面的位置進(jìn)行像素偏移效果


材質(zhì)分類

表面(Surface)
該設(shè)置將材質(zhì)定義為將用于對象表面的東西;可以是金屬、塑料、皮膚或任何物理表面。因此這是你大部分時間里都會用到的設(shè)置。

延遲貼花(Deferred Decal)
投射材質(zhì),制作貼花材質(zhì)時,你將使用此設(shè)置。

光照函數(shù)(Light Function)
燈光閃爍,創(chuàng)建結(jié)合光照函數(shù)使用的材質(zhì)時應(yīng)使用此設(shè)置。

體積(Volume)
將材質(zhì)的屬性描述為3D體積時使用。
控制指數(shù)級高度霧和體積云

后期處理(Post Process)
如果材質(zhì)將用作后期處理材質(zhì),則使用此設(shè)置。
需要配合后期處理體積一起用

材質(zhì)運(yùn)算
基礎(chǔ)材質(zhì)連接

自發(fā)光

StaticSwitchParameter
StaticSwitchParameter(靜態(tài)開關(guān)參數(shù))表達(dá)式接收兩個輸入,并且在參數(shù)值為 true 時輸出第一個輸入的值,否則輸出第二個輸入的值。
此參數(shù)稱為"靜態(tài)"是因?yàn)樗豢稍谶\(yùn)行時更改,而只能在材質(zhì)實(shí)例編輯器中設(shè)置。靜態(tài)開關(guān)是在編譯時(而非運(yùn)行時)進(jìn)行應(yīng)用。這意味著刪除的材質(zhì)分支決不會執(zhí)行,因此靜態(tài)開關(guān)在運(yùn)行時實(shí)際上是自由的。另一方面,對于材質(zhì)中 使用的 每一種靜態(tài)參數(shù)組合(濫用靜態(tài)參數(shù)組合可能會導(dǎo)致著色器激增),都必須通過編譯來產(chǎn)生材質(zhì)的新版本。請盡量減少材質(zhì)中的靜態(tài)參數(shù)數(shù)目以及實(shí)際使用的靜態(tài)參數(shù)排列數(shù)。

用法示例:靜態(tài)開關(guān)可用于除去材質(zhì)的整個分支,而不會產(chǎn)生運(yùn)行時成本。各個實(shí)例可具有不同的值,這使您能夠建立模板化的著色器設(shè)置,而不會影響性能。


轉(zhuǎn)換為參數(shù)
將數(shù)據(jù)轉(zhuǎn)換為實(shí)力材質(zhì)中可以修改的參數(shù)

創(chuàng)建實(shí)列材質(zhì)
必須在母材質(zhì)上右鍵創(chuàng)建

排序優(yōu)先級
同組節(jié)點(diǎn)排序方式從0開始逐漸遞增排序


分組
選擇分組放入,可以在實(shí)列材質(zhì)中看到

數(shù)據(jù)運(yùn)算概覽
官方表達(dá)式索引
https://docs.unrealengine.com/5.1/zh-CN/unreal-engine-material-expressions-reference/


數(shù)據(jù)維度
三原色+alpha組成4個通道



空間坐標(biāo)也用rgb標(biāo)識

uv坐標(biāo)用紅綠標(biāo)識



運(yùn)算

一維數(shù)據(jù)和高維數(shù)據(jù)進(jìn)行運(yùn)算時會直接升維


Abs與三維坐標(biāo)轉(zhuǎn)換


移動節(jié)點(diǎn)組到另一個節(jié)點(diǎn)上

變換效果一致

用mask拆分UV坐標(biāo)


紋理遮罩(mask) 是灰階紋理,或紋理的單個通道(R、G、B或A),用于限制 材質(zhì) 內(nèi)的效果區(qū)域。
遮罩通常包含在另一個紋理的單個通道中,例如漫反射或法線貼圖的 Alpha通道。 在其他情況下,單個圖像文件通常包含"粗糙度(Roughness)"、"金屬感(Metallic)"和"環(huán)境光遮蔽(Ambient Occlusion)"遮罩,每個遮罩占用一個通道。
這稱為"通道打包",是通過減少材質(zhì)所需的紋理樣本數(shù)來提高材質(zhì)性能的好方法。 從技術(shù)上講,任何紋理的任何通道都可以被認(rèn)為是紋理遮罩并用作紋理遮罩。
下面是初學(xué)者內(nèi)容包中 SM_Chair 靜態(tài)網(wǎng)格體的紋理遮罩的示例。

實(shí)際上,此圖像文件在四個顏色通道(RGBA)的每一個通道中包含不同的黑白遮罩。

Add

Add 表達(dá)式接受兩個輸入,將它們相加并輸出結(jié)果。
如果使用多個通道傳遞值,每個通道將分別添加。例如,如果將RGB顏色值傳遞給每個輸入,則將第一個輸入的R通道添加到第二個輸入的R通道中,結(jié)果存儲在輸出的R通道中;將第一個輸入的G通道添加到第二個輸入的G通道中,結(jié)果存儲在輸出的G通道中,以此類推。
兩個輸入必須有相同數(shù)量的值,但其中一個值是單個常量值時例外。在這種情況下,將多通道輸入的每個通道添加到單個浮點(diǎn)值,并將結(jié)果存儲在輸出值的單獨(dú)通道中。

示例:0.2與0.4相加得0.6;(0.2,-0.4,0.6)與(0.1,0.5,1.0)相加得(0.3,0.1,1.6);(0.2,-0.4,0.6)與1.0相加得(1.2,0.6,1.6)
使用示例:Add常用于使顏色變亮/變暗或偏移UV紋理坐標(biāo)。

AppendVector(App 組合通道)
AppendVector 表達(dá)式允許你組合通道,創(chuàng)建一個比原始通道更多的向量。例如,你可以獲取兩個單獨(dú)的 常量 值,并將它們添加到一個雙通道的 Constant2向量 值中。這種操作適合用于重新排列單個紋理中的通道,或?qū)⒍鄠€灰度紋理合并為一個RGB顏色紋理。

示例: 附加0.2 和 0.4 就是 (0.2,0.4);附加 (0.2,0.4) 和 (1.0) 就是 (0.2,0.4,1.0)。

控制物體偏移
做成實(shí)列材質(zhì)后可控制物體偏移



加減乘除
相加
紅色通道與紅色通道相加
綠色通道與綠色通道相加
藍(lán)色通道與藍(lán)色通道相加



相乘



減法


除法
0除以任何數(shù)都是0?


漸變
TextureCoordinateTextureCoordinate(紋理坐標(biāo))表達(dá)式以雙通道向量值形式輸出 UV 紋理坐標(biāo),從而允許材質(zhì)使用不同的 UV 通道、指定平鋪以及以其他方式對網(wǎng)格的 UV 執(zhí)行操作。

用法示例: 如需訪問網(wǎng)格體的第二個 UV 通道,請創(chuàng)建一個 TextureCoordinate(紋理坐標(biāo))節(jié)點(diǎn),將其"坐標(biāo)索引"(CoordinateIndex)設(shè)置為 1(0 表示第一個通道,1 表示第二個通道,等等),并將其連接到 TextureSample(紋理取樣)節(jié)點(diǎn)的 UV 輸入。


線性插值(混合節(jié)點(diǎn))
L+鼠標(biāo)左鍵
LinearInterpolate 表達(dá)式會以第三個輸入值為遮罩參數(shù),然后在兩個輸入值之間進(jìn)行插值??梢韵胂蟪蓛蓮埣y理根據(jù)一張遮罩進(jìn)行過渡,類似Photoshop中的圖層遮罩。遮罩Alpha的強(qiáng)度決定了兩個輸入值貢獻(xiàn)的權(quán)重。如果Alpha是0.0,就使用第一個輸入值。如果Alpha是1.0,就使用第二個輸入值。如果Alpha在0.0和1.0之間,輸出是兩個輸入之間的插值。注意,混合是按通道進(jìn)行的。 所以,如果Alpha是一個RGB顏色,則Alpha的紅色通道會定義A和B的紅色通道之間的插值,它 獨(dú)立 于Alpha的綠色通道,后者定義了A和B的綠色通道之間的插值。



alpha值只能在0-1之間
添加clamp節(jié)點(diǎn),控制節(jié)點(diǎn)的最大值和最小值

Clamp 表達(dá)式接受一個或多個值,并將它們約束到由最小值和最大值定義的指定范圍內(nèi)。如果最小值為0.0,最大值為0.5,則意味著結(jié)果值永遠(yuǎn)不會小于0.0,且永遠(yuǎn)不會大于0.5。

示例:在最小值為0.0且最大值為1.0的情況下對0.3((0.0)到(1.0))的輸入范圍進(jìn)行限制將得到結(jié)果0.3;在最小值為0.0且最大值為1.0的情況下對1.3進(jìn)行限制將得到結(jié)果1.0。

或是satuiate節(jié)點(diǎn),但不能修改數(shù)值,只能0-1

如果用圖本身的alpha通道連alpha可以透出下面的底

數(shù)據(jù)維度控制
維度分解
用mask來拆分需要的通道

維度升級
AppendVector

AppendVector 表達(dá)式允許你組合通道,創(chuàng)建一個比原始通道更多的向量。例如,你可以獲取兩個單獨(dú)的 常量 值,并將它們添加到一個雙通道的 Constant2向量 值中。這種操作適合用于重新排列單個紋理中的通道,或?qū)⒍鄠€灰度紋理合并為一個RGB顏色紋理。

示例: 附加0.2 和 0.4 就是 (0.2,0.4);附加 (0.2,0.4) 和 (1.0) 就是 (0.2,0.4,1.0)。

MaterialFunctionCall
連接一維數(shù)據(jù)并生成2、3、4維數(shù)據(jù)
表達(dá)式允許您使用來自其他材料或功能的外部MaterialFunction,外部函數(shù)的輸入和輸出節(jié)點(diǎn)成為函數(shù)調(diào)用節(jié)點(diǎn)的輸入和輸出。如果一個MaterialFunction在放置這些表達(dá)式時被選擇在內(nèi)容瀏覽器中,它將自動被分配。
