




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第二章
材質(zhì)基礎(chǔ)
目錄2.1材質(zhì)概述2.2材質(zhì)編輯器2.3材質(zhì)關(guān)鍵節(jié)點2.4材質(zhì)優(yōu)化2.5材質(zhì)練習案例2.6材質(zhì)綜合案例2.1.1PBR材質(zhì)概述首先需要了解什么是PBR?PBR全稱是基于物理的渲染(PhysicallyBascdRcnding),它是一套先進的渲染方案,能夠基于物理屬性,對光線照射作出精確的反應(yīng)。還可以通過定義模型的基礎(chǔ)顏色、法線貼圖信息、粗糙度和金屬值就可以設(shè)置模型在不同光照條件下反應(yīng)出來的真實渲染效果。PBR目前應(yīng)用廣泛,在渲染器中,NVIDIAiray、Octanerenderer、PixarRenderman都已采用新的PBR模式。
同樣,在RealTime渲染工具或游戲引擎中廣泛使用。主流引擎如UnrealEngine4、CryEngine、Unity乃至問世不久的AutoDeskStingray引擎也都采用PBR模式。PBR材質(zhì)優(yōu)點1.能夠準確的定義非常真實的材質(zhì)表現(xiàn),相反對于非寫實類型的材質(zhì)同樣同樣也能容易完成。2.對于開發(fā)者,完成所需要的材質(zhì)質(zhì)感表現(xiàn)更為直觀,并不需要手動繪制陰影高光細節(jié)等。更為簡單快捷。3.Metallic通道為數(shù)值或簡單的黑白貼圖,相比傳統(tǒng)材質(zhì),可以節(jié)約貼圖數(shù)量或者減少素材資源的容量這是不同光照條件下的實時渲染結(jié)果。傳統(tǒng)貼圖VSPBR貼圖PBR重要輸入數(shù)據(jù)SubstanceDesignerUnrealEditor4基色,可以理解為物體本身的顏色。控制PBR的三種屬性主要貼圖類型介紹:BaseColor/Oiffuse/Albedo主要貼圖類型介紹:NormalmapNormalmap法線貼圖是低模展現(xiàn)高模細節(jié)的手段。在有限面數(shù)下,要完成高質(zhì)量貼圖,就需要用到凹凸貼圖和法線貼圖來完成一些小的細節(jié),并展示模型的精度。主要貼圖類型介紹:Metallic(金屬值)當數(shù)值為(0,0,0),則物體為非金屬;當數(shù)值為(1,1,1)或(255,255,255),變?yōu)榧儼咨?,則物體是純粹的金屬。主要貼圖類型介紹:AmbientOcclusionAO(也稱OCC,環(huán)境光遮罩)利用物體自身夾角所產(chǎn)生的陰影,使用灰度圖,0~255或0~1區(qū)間來進行數(shù)值輸入,使用OCC通道可以增強畫面層次感。主要貼圖類型介紹:Roughness(粗糙度)定義模型某一區(qū)域的光滑程度,也是通過灰度圖來控制,而灰度值區(qū)間在SubstanceDesigner中,是0~255;在UnrealEditor4中,則是0~1。兩種PBR制作流程:掌握PBR材質(zhì)理論的關(guān)鍵點2:掌握PBR材質(zhì)理論的關(guān)鍵點1:
使用通道的思維來看貼圖,基礎(chǔ)顏色(貼圖)、法線(貼圖)、金屬(貼圖)、高度(貼圖)都是不同維度的數(shù)據(jù)。
顏色、法線都是三維數(shù)據(jù),粗糙度、高度、Occlusion都是一維數(shù)據(jù)。傳統(tǒng)材質(zhì)VSPBR材質(zhì)2.1.2數(shù)據(jù)基礎(chǔ)什么是數(shù)據(jù)?
其實一切信息都可以看作數(shù)據(jù),例如:一個數(shù)值、顏色信息、貼圖信息、法線信息、UV(紋理坐標)信息。
連接的節(jié)點就是數(shù)據(jù)處理的流程,各節(jié)點類似于工廠里的機器,整個節(jié)點數(shù)相當于一條流水線,將需要處理的原料放進去,經(jīng)過加工處理后,輸出的結(jié)果就是產(chǎn)品。數(shù)據(jù)維度
用數(shù)據(jù)維度來對數(shù)據(jù)進行分類,從數(shù)學角度來說,關(guān)于空間維度的解釋,是指在空間中的任意一點作相互垂直的直線,能作出幾條相互垂直的線,那么這個空間就是幾維空間。
在三維空間中,當我們表達某一點的位置時,需要觀察點分別在三個坐標軸上的位置,假設(shè)點位置為(x,y,z),由此可知位置信息由3個元素構(gòu)成,所以稱它為三維數(shù)據(jù)。三維數(shù)據(jù)三維數(shù)據(jù)包括三維空間的位置或向量、RGB顏色、模型法線信息、法線貼圖。二維數(shù)據(jù)
從以下的二維坐標看出,其由兩個數(shù)據(jù)組成,再例如:UV信息,在UV中我們把三維的點的分布,改為二維的分布,所以展現(xiàn)的效果是平的,反應(yīng)了二維到三維之間的投射關(guān)系。一維數(shù)據(jù)
我們可以這樣理解,所謂的一維就是一條線,線上的每個點的位置可以用一個坐標值來表示。注:一維數(shù)據(jù)由一個元素構(gòu)成,舉例:整數(shù):1、2、3、4、5、6、7、8、9、0小數(shù):0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9四維數(shù)據(jù)
四維數(shù)據(jù)主要用于顏色,比如RGBA模式的顏色,不僅包含RGB信息,還有一個透明信息,這種模式的信息就是一個四維數(shù)據(jù)。每個維度的數(shù)據(jù)不單單是一個數(shù)據(jù),也可以是一組數(shù)據(jù),比如:一個顏色是一個三維數(shù)據(jù),但一張圖片是一個三維數(shù)組。一維數(shù)組
下圖中的數(shù)據(jù)用Texture節(jié)點來載入一張這樣的貼圖
怎樣將三維數(shù)組轉(zhuǎn)化為一維數(shù)組?使用其中一個通道,如下:數(shù)據(jù)的自動轉(zhuǎn)換
數(shù)據(jù)維度的自動轉(zhuǎn)換:在編輯器中完成,按理說不同維度的數(shù)據(jù)是不能進行計算的,但在虛幻4的材質(zhì)編輯器中,我們可以用高維數(shù)據(jù)和低維數(shù)據(jù)來進行數(shù)學運算。但是在虛幻4材質(zhì)編輯器中,不能用二維數(shù)據(jù)和三維數(shù)據(jù)來進行運算。想要進行計算,就要把二維,三維轉(zhuǎn)化為低維數(shù)據(jù),才能和高維數(shù)據(jù)進行計算。注:只有一維數(shù)據(jù)才能和高維數(shù)據(jù)進行運算。
數(shù)據(jù)意義的自動轉(zhuǎn)換:通過我們的大腦意識去完成,一維數(shù)據(jù)與高維數(shù)據(jù)運算原理
用二維數(shù)據(jù)和一維數(shù)據(jù)進行運算,一維數(shù)據(jù)就會通過復(fù)制自身的方式,將自身升級為二維,然后再和二維數(shù)據(jù)進行計算。一維數(shù)據(jù)乘以三維數(shù)據(jù)或四維數(shù)據(jù)均同上原理。
例如:用二維數(shù)據(jù)(4,5)乘以一維數(shù)據(jù)2一維數(shù)據(jù)通過復(fù)制本身得到二維數(shù)據(jù)(2,2)數(shù)據(jù)意義的自動轉(zhuǎn)換
數(shù)據(jù)意義的轉(zhuǎn)換在我們的腦子里進行,需要同時具有美術(shù)和程序員兩種職業(yè)的思維,
當我們看見一個顏色時,它或許還表示位置信息、UV信息,這些信息都可以相互轉(zhuǎn)換,如下圖所示:1(1,1,1)on≠(0,1,0)0(0,0,0)off0.5(0.5,0.5,0.5)half
例如,當我們創(chuàng)建一個顏色,發(fā)現(xiàn)不能在屬性欄中看見,這時,就要創(chuàng)建一個Constant3Vector節(jié)點,可以在這里定義了一個三維數(shù)據(jù),可以通過拾色器或者輸入數(shù)值來改變顏色,則此節(jié)點會以顏色形式表現(xiàn)出來。在數(shù)據(jù)運算中,每個通道的范圍將由0~255轉(zhuǎn)換為0~1,如下:這樣,我們的顏色在與向量、位置等數(shù)據(jù)進行計算的時候就不會出現(xiàn)問題了。2.1.3紋理格式壓縮與紋理大小設(shè)置
在虛幻4的材質(zhì)中,紋理是一個非常重要的部分。首先創(chuàng)建一個新文件夾,命名為textures,雙擊textures文件夾,導(dǎo)入紋理圖片,可以通過點擊Import,或者右擊最下方面板,在彈出的面板選擇import,又或者直接將圖片拖入textures文件夾。怎么導(dǎo)入紋理?關(guān)于紋理壓縮
我們所有導(dǎo)入UE4引擎里的紋理貼圖都會被壓縮,不管它之前的體積有多大,導(dǎo)入到UE4以后同樣的壓縮率,同樣的分辨率下,圖像的大小都是一樣大的。
虛幻4常用的紋理格式包括PSD、TGA、PNG、JPEG、BMP等在諸多紋理格式中只有PSD和TGA是未壓縮的圖片格式;默認情況紋理導(dǎo)入到就會被統(tǒng)一壓縮成DXTC或BC格式;因此PSD和TGA格式也成為了虛幻4引擎最常用的紋理素材格式
雙擊紋理圖片,可以發(fā)現(xiàn)正常圖片和法線圖片彈出的面板右側(cè)細節(jié)面板上的壓縮形式不同。正常圖片法線圖片
還可以通過選擇Grayscale(R8,RGB8sRGB8),去掉顏色信息,改變圖片顏色壓縮格式的改變會影響圖片的大小
虛幻4常用的紋理素材尺寸大小一般都設(shè)置為2的冪數(shù),最大不超過8192X8192如:1X1;2X2;4X4;8X8;16X16;32X32;64X64;128X128;256X256;512X512;1024X1024;2048X2048;4096X4096;8192X8192
當然我們也可以使用這些參數(shù)相互配合,如:1024X4096長方形貼圖也是可以的,但是它的長度和高度必須是2的冪數(shù)紋理大小設(shè)置
即使導(dǎo)入的圖片為500×500,也會重新?lián)Q算成512×512,每次使用都要進行一次換算,不僅麻煩,還要占用系統(tǒng)資源。2.2.1材質(zhì)創(chuàng)建以及材質(zhì)編輯器介紹材質(zhì)創(chuàng)建首先在資源管理器中右鍵創(chuàng)建Material,也可以在Materials&Textures中創(chuàng)建Material,或者在內(nèi)容管理器AddNew中創(chuàng)建Material。
鼠標右鍵,創(chuàng)建一個文件夾Material,打開文件夾,創(chuàng)建一個新材質(zhì),材質(zhì)命名為M-Sculpture-Mat(Material首字母-模型名稱-材質(zhì))
雙擊創(chuàng)建好的材質(zhì)球,打開材質(zhì)編輯器,中間最大的區(qū)域為節(jié)點操作內(nèi)容的區(qū)域,節(jié)點算法均可在這里實現(xiàn)。右側(cè)區(qū)域為控制板,可以找到需要的節(jié)點拖入中間最大的區(qū)域。在節(jié)點操作區(qū)域,可以通過鼠標滑輪鍵放大縮小視圖,左鍵可以框選節(jié)點,右鍵可以拖動視圖節(jié)點預(yù)覽視口
節(jié)點預(yù)覽視口右下角前4個圖標的意思是四種顯示形態(tài),像什么用什么,而第五個是當物體不像前面任何四個時,可以在資源管理器中,選擇模型,將模型在茶壺中進行指定。如果沒有選擇模型,點擊茶壺,就會彈出錯誤窗口。如果模型過于復(fù)雜,在材質(zhì)運算過程中消耗也會比較大。一般,只會用基礎(chǔ)幾何體來進行材質(zhì)模擬。當選擇某一節(jié)點,細節(jié)面板會出現(xiàn)相應(yīng)的信息。當材質(zhì)選擇無光照,最終節(jié)點那一塊有很多是被鎖定的。可以根據(jù)需要自主選擇不同的模式
有的時候在用到玻璃材質(zhì)時,需要用到半透明材質(zhì),這時能發(fā)現(xiàn)半透明參數(shù)被激活
做植被時,需要遮罩,需要打開不透明遮罩,同時不透明遮罩通道也被開啟。
點擊Stats,節(jié)點操作區(qū)域下方出現(xiàn)一個統(tǒng)計面板,它可以顯示在節(jié)點區(qū)域的正常操作或錯誤操作,操作錯誤時,我們可以根據(jù)提示,及時更改。常用工具欄:Browse:點擊放大鏡,會直接找到材質(zhì)球Apply:當給材質(zhì)添加顏色,節(jié)點預(yù)覽窗口的模型顏色改變,但是材質(zhì)球的顏色依舊不變,這時,需要點擊Apply(應(yīng)用),材質(zhì)球顏色改變Search:可以搜索出在材質(zhì)編輯器中用了哪些資源。Home:回到主頁,當節(jié)點操作視圖偏移,點擊Home,節(jié)點回到正中心。Connectors:當我們編輯時,默認的打開,若關(guān)閉,則只顯示最簡化,有效節(jié)省了視圖空間。LivePreview:實時顯示,當賦予材質(zhì)顏色時,預(yù)覽視圖會跟隨變化LiveNodes:實時節(jié)點,一般用于動態(tài)貼圖,LiveUpdate:實時更新,在預(yù)覽視口實時更新貼圖。HideUnrelated:隱藏不相關(guān)的設(shè)置PlatformStats:不同平臺的統(tǒng)計數(shù)據(jù)和操作PreviewNodes:節(jié)點預(yù)覽Hierarchy:層級,材質(zhì)層級包含材質(zhì)實例材質(zhì)實例2.2.2賦予材質(zhì)與紋理顯示如何賦予材質(zhì)?兩種方法:1、選擇需要賦予材質(zhì)的模型對象,將材質(zhì)拖拽到模型上。2、或者直接將材質(zhì)球拖拽到細節(jié)面板,material的材質(zhì)框中;還可以選擇材質(zhì),再點擊材質(zhì)框下的箭頭直接賦予。怎樣將貼圖應(yīng)用到材質(zhì)中?
可以在材質(zhì)文件夾里選擇紋理圖片,拖入到材質(zhì)編輯器中,在節(jié)點視圖中會出現(xiàn)對應(yīng)的紋理節(jié)點,也可以在材質(zhì)編輯器中,直接按T鍵,出現(xiàn)Texture節(jié)點,再將紋理圖片進行指定,選擇需要的紋理圖片,再到材質(zhì)編輯器的細節(jié)面板Texture中點擊箭頭進行指定。還可以先選擇圖片紋理,再到材質(zhì)編輯器中按T鍵,這時材質(zhì)會直接賦予。又或者直接在節(jié)點視圖鼠標右鍵搜索Texture,或在控制面板搜索。藍圖連接,再點擊Apply,在場景中可以看見貼圖被指定在模型上
當模型較多時,可以選擇模型,在細節(jié)面板,StaticMesh中雙擊模型,打開靜態(tài)模型的編輯面板,可以直接選擇材質(zhì)球,再點擊如圖2所示的箭頭進行指定,或者直接將材質(zhì)球拖到圖2中的材質(zhì)框里,回到場景中,發(fā)現(xiàn)所有模型都被賦予材質(zhì)。圖1圖22.2.3虛幻4材質(zhì)簡單的數(shù)學運算虛幻4的簡單數(shù)學計算
數(shù)字1+鼠標左鍵,創(chuàng)建一維常量;數(shù)字2+鼠標左鍵,創(chuàng)建二維常量;數(shù)字3+鼠標左鍵,創(chuàng)建三維常量,以此類推?;蛘咴诳刂泼姘逯兴阉鱟onstant創(chuàng)建。加法快捷鍵:A乘法快捷鍵:M除法快捷鍵:D減法沒有快捷鍵
新建兩個一維常量,可以給他們賦予想要的值,通過算法連接,就能實現(xiàn)加減乘除。在加法和乘法運算中,與兩個數(shù)的位置順序無關(guān),而兩數(shù)的位置會影響減法和除法的結(jié)果。簡單的兩個數(shù)據(jù)間的運算
當設(shè)置兩個一維常量相加,給它們都賦值1時,最終應(yīng)該等于2,但在顯示器中只能顯示唯一的參數(shù)值,如果想要顯示為2,只能是光的溢出,將Add節(jié)點連到自發(fā)光,并把賦值調(diào)大,可以明顯看出光的溢出,乘法運算同理;減除除了與運算順序有關(guān),其他大致同理。找到兩張圖片,拖到材質(zhì)編輯器中,由于圖片由許多像素組成,故為數(shù)組(Add)加法運算Add接收兩個輸入,將其相加,然后輸出結(jié)果。這個加法運算按通道執(zhí)行,這意味著輸入的R通道、G通道和B通道等等將分別相加。兩個輸入必須具有相同數(shù)目的通道,除非其中之一是單個常量值。常量可以添加到具有任意數(shù)目輸入的矢量。注:Add常用于使顏色變亮/變暗(加正負值)或偏移UV紋理坐標(參考二維向量那里)(Multiply)乘法運算
表達式接收兩個輸入,將其相乘,然后輸出結(jié)果。類似于Photoshop的多層混合。乘法按通道進行,即,第一個輸入的R通道將乘以第二個輸入的R通道,第一個輸入的G通道將乘以第二個輸入的G通道,依此類推。除非其中一個值是單個浮點值,否則兩個輸入必須具有相同數(shù)目的值。(Subtract)減法運算
右鍵搜索創(chuàng)建Subtract(減法)節(jié)點,節(jié)點接收兩個輸入,從第一個輸入中減去第二個輸入,然后輸出它們的差。減法按通道進行,即,第一個輸入的R通道將減去第二個輸入的R通道,第一個輸入的G通道將減去第二個輸入的G通道,依此類推。除非第二個輸入是單個常量值,否則兩個輸入必須具有相同數(shù)目的通道。常量可以從具有任意數(shù)目輸入的矢量中減去。(Divide)除法運算
表達式接收兩個輸入,并輸出第一個輸入除以第二個輸入的結(jié)果。除法按通道進行,即,第一個輸入的R通道將除以第二個輸入的R通道,第一個輸入的G通道將除以第二個輸入的G通道,依此類推。除非除數(shù)是單個浮點值,否則兩個輸入必須具有相同數(shù)目的值。切勿以零作除數(shù)。2.3.1線性插值節(jié)點與限制節(jié)點線性插值節(jié)點
在控制板的Math中選擇Linearlnterpolate并拖入節(jié)點操作視圖,也可在操作面板中所需要創(chuàng)建節(jié)點的位置點擊鍵盤鍵L并點擊鼠標左鍵
起過渡作用,在Photoshop中,可以想象成一個圖層的效果,類似于圖層遮罩。將兩個圖片進行混合,調(diào)節(jié)Alpha值,Alpha的大小決定下面那張圖片的顯示
如果Alpha是0.0,就使用第一個輸入值。如果Alpha是1.0,就使用第二個輸入值。如果Alpha在0.0和1.0之間,輸出是兩個輸入之間的插值,當Alpha小于0或大于1,圖片會出現(xiàn)不正常顯示。這時可以添加限制節(jié)點Clam,不管設(shè)置的數(shù)值多大,最終都會回歸0~1之間。在A中插入RGB(0,100,0),在B中插入RGB(0,-100,0)的數(shù)值,通過插入Time和Sine在Alpha中進行柔和過渡,最后把Lerp連接到世界坐標軸中(WorldPostionOffset)怎么讓材質(zhì)球在Y軸左右移動?限制節(jié)點
Clamp表達式接受一個或多個值,并將它們約束到由最小值和最大值定義的指定范圍內(nèi)。如果最小值為0.0,最大值為1,則意味著結(jié)果值永遠不會小于0.0,且永遠不會大于1。2.3.2一減節(jié)點的原理與使用方法原理
當直接用1-x節(jié)點連接材質(zhì)節(jié)點時,則用1分別減去輸入的R、G、B值
而添加Subtract節(jié)點并連接兩個輸入通道,將第一個輸入減去第二個輸入,然后輸出差值。
如果使用多個通道傳遞值,每個通道將分別相減。當A和B中全部連接的是RGB,則A的R值減去B的R值,A的G值減去B的G值,A的B值減去B的B值,最后結(jié)果保存并輸出使用方法1、把材質(zhì)貼圖只留下一個紅色通道R,把材質(zhì)R節(jié)點連接到Subtract的B中,A使用數(shù)值1連接,最后連接到BaseColor中就會得到反轉(zhuǎn)的顏色,既黑色變成白色,白色變成黑色2、把材質(zhì)貼圖只留下一個紅色通道R,把材質(zhì)R節(jié)點連接到Subtract的B中,A使用數(shù)值1連接,如果把Subtract連接到Roughness中,貼圖的RGB連接到BaseColor中,此時就會使得白色區(qū)域的光滑度變高2.3.3貼圖的UV控制節(jié)點
TextureCoordinate節(jié)點用于控制貼圖的UV,快捷鍵是U。其中CoordinateInde屬性是選擇貼圖的UV層,一張貼圖可能會包含多層UV;UTiling屬性是U方向的平鋪次數(shù);VTiling屬性是V方向的平鋪次數(shù)。
貼圖中的UVW對應(yīng)三維中的XYZ,但是UVW的原點在左上角。在UVW代表的是顏色的空間位置時,U朝向紅色R,V朝向綠色G,W朝向藍色B。
使Utiling為15,Vtiling為0.5,再把TexCoor連接到貼圖和法線貼圖中即可呈現(xiàn)拉絲效果。還可以運用加減乘除運算來調(diào)整金屬拉絲效果。2.3.4算法練習制作寫實金屬材質(zhì)
在材質(zhì)面板中帶點擊鼠標右鍵,選擇“Material”,雙擊進入材質(zhì)編輯器。
然后找到貼圖,并將貼圖拖拽到材質(zhì)編輯器中,將貼圖的RGB連接到基礎(chǔ)顏色BaseColor,將貼圖的Alpha連接到粗糙度Roughness中,金屬值設(shè)置為1。
改變金屬的顏色,在面板中添加一個偏藍的三維RGB顏色,與貼圖的RGB顏色相乘Multiply,就會得到一個完整的貼圖基礎(chǔ)顏色添加金屬坑坑洼洼的效果,在材質(zhì)面板中選擇一個法線貼圖,拖入到材質(zhì)編輯器中,法線貼圖RGB連接到Normal寫實金屬,對材質(zhì)的粗糙度用線性插值曲線Lerp控制,給A值為0.5,給B值為0.3
添加銹漬。把帶有銹漬的貼圖拖拽到材質(zhì)編輯器中,但如果此時直接與基礎(chǔ)顏色相乘的話就會完全失去金屬的樣子,所有我們先把銹漬貼圖用UV節(jié)點控制重復(fù)次數(shù),但在UV連接時只有一對的話就會顯得銹漬單調(diào)且不真實,所以我們使用多對貼圖UV相乘的方法疊加,得到一個較為真實的銹漬
將相乘得到的數(shù)值連接到基礎(chǔ)顏色中。如果覺得鐵銹的顏色太黑,可以在每個貼圖RGB的R通道中添加亮度使其變量,或者也可以在最后相加的到的數(shù)值上直接添加亮度。最后將第六點鐵銹貼圖最后的值與金屬貼圖的Alpha疊加,再連接到粗糙度中2.3.5向量運算點積叉積歸一化點積運算
可以描述為一個矢量投影到另一個矢量上的長度,最后輸出的是一個數(shù)。DotProduct要求兩個矢量輸入具有相同數(shù)量的通道。
兩條有方向的向量A和B,如果向量A和向量B同向則A與B的點積為1;如果向量A和向量B之間的夾角為90°向則A與B的點積為0;如果向量A和向量B之間的夾角是銳角則A與B的點積為小于0;如果向量A和向量B反向則A與B的點積為-1叉積運算
計算兩個三通道向量值輸入的交叉乘積,并輸出產(chǎn)生的三通道向量值。
當我們知道三維向量中其中兩個向量時,就可使用叉積算出條向量的向量值。并且兩個向量的叉積與這兩個向量都垂直向量歸一化
Normalize(歸一化)表達式計算并輸出其輸入的歸一化值。歸一化矢量(也稱“單位矢量”)的整體長度為1.0。這意味著輸入的每個分量都除以矢量的總大?。ㄩL度)。
示例:將一個紅色貼圖傳遞給沒有光照的材質(zhì)球的自發(fā)光EmissiveColor中,則會呈現(xiàn)自發(fā)光效果;如果在其中添加歸一化Normalize,則會呈現(xiàn)紅色材質(zhì)球的效果注:沒有必要對插入到法線材質(zhì)輸出中的表達式進行歸一化2.3.6菲涅爾節(jié)點的原理
菲涅爾材質(zhì)表達式會根據(jù)表面法線與攝像機方向的點積再使用一減節(jié)點和數(shù)值控制,最后傳遞給線性插值節(jié)點輸出。如果想要控制范圍可以添加一個power值。
菲涅爾公式計算的衰減基于標量乘積的表面法線和相機的方向。當曲面法線朝向攝像機時,輸出值為0。當曲面法線垂直于攝像機時,輸出值為1。結(jié)果限制在[0,1]范圍內(nèi),以確保中心不產(chǎn)生負片色彩。Exponentln:指定輸出值衰減的速率。值越大,表示衰減越緊密或越快。BaseReflectFractionln:從表面的方向查看表面時的鏡面反射的強度。值越小反射越強,值為1將有效地禁用菲涅耳效應(yīng)。反轉(zhuǎn)菲涅爾(B)(InvertFresnel(B)):反轉(zhuǎn)菲涅爾的效果。當需要菲涅爾僅在中心或邊緣應(yīng)用時,可以運用此函數(shù)。使用低開銷對比度(B)(UseCheapContrast(B)):啟用此屬性后,菲涅爾節(jié)點會使用開銷更低的方法來計算亮色與暗色之間的對比度。限制菲涅爾點積(B)(ClampFresnelDotProduct(B):將菲涅爾點積的結(jié)果限制在0到1之間。此屬性默認為true,但你可以使用設(shè)置為false的靜態(tài)布爾(StaticBool)將其覆蓋。2.4.1材質(zhì)優(yōu)化算法1.可以讓近處的物體顯示高分辨率貼圖,遠處物體顯示低分辨率貼圖。2.可以通過這種算法優(yōu)化置換貼圖對電腦產(chǎn)生的功率損耗,遠處物體細分值低,近處物體細分值高,這樣就可以讓置換貼圖的效果更好的運用在近景物體的細節(jié)表現(xiàn)材質(zhì)優(yōu)化算法的作用材質(zhì)優(yōu)化具體算法導(dǎo)入兩張貼圖,一張大,一張小,大貼圖細節(jié)豐富,離視口較近,小貼圖離視口較遠。怎么獲取這樣的材質(zhì)?首先獲取當前攝像機的位置,通過攝像機的位置來決定場景中每個點離視口的距離。
首先創(chuàng)建一個材質(zhì)球,打開材質(zhì)編輯器,獲取攝像機位置CameraPosition,接著獲取世界位置,二者相減,得到攝像機位置和世界位置的距離。指定哪些范圍內(nèi)用大的貼圖,哪些距離用小的?
新建兩個節(jié)點,Divide和距離,將距離設(shè)為2048,則在此范圍內(nèi)顯示大貼圖,超出2048,則是小貼圖。建一個power節(jié)點,將兩張圖柔和過渡。將過渡值設(shè)為2,過渡值越大,則越硬,越小則越柔和。將數(shù)據(jù)作為一個alpha通道,將值轉(zhuǎn)化為0~1,新建clamp,Lerp節(jié)點,再調(diào)兩個顏色,分別看作大小貼圖,給其指定,并運行。將兩張貼圖拖入材質(zhì)編輯器,運用加法,將數(shù)據(jù)進行加法運算的疊加。使用無光照,再創(chuàng)建一個材質(zhì)實例,指定給當前地貌。并調(diào)整合適的參數(shù)回到材質(zhì)編輯器,創(chuàng)建一個LandsacpeCoords節(jié)點,運用除法運算,大貼圖給到20,小貼圖給10??梢栽诓馁|(zhì)實例中調(diào)整距離參數(shù),加大其數(shù)值。另一種運算方法新建攝像機和世界節(jié)點,再建一個Distance節(jié)點,運用除法運算,設(shè)置一個近距離2048,再建一個Clamp設(shè)置一個遠距離4096。將數(shù)值取絕對值,建立Abs節(jié)點,連接,將其優(yōu)化到0~1區(qū)間,再建一個Clamp,作為Alpha運算通過Clamp節(jié)點約束了近距離的解算最大值小于遠距離的開始位置。近距離用減法來計算近距離范圍,遠距離用除法,遠距離值為分母確認遠距離的范圍和開始位置數(shù)據(jù)。藍圖最終呈現(xiàn)2.4.2材質(zhì)優(yōu)化算法應(yīng)用材質(zhì)函數(shù)創(chuàng)建在內(nèi)容瀏覽器中點擊右鍵并選擇新建(New)>材質(zhì)與紋理(Materials&Textures)>材質(zhì)函數(shù)(MaterialFunction)以創(chuàng)建一個材質(zhì)函數(shù),改名為DistanceTessellation,雙擊,打開函數(shù)編輯器,新建input節(jié)點,將其與output連接,并點擊應(yīng)用
將材質(zhì)函數(shù)拖到材質(zhì)編輯器中,可以對齊通過數(shù)據(jù)的輸入運用算法得到結(jié)果輸出。復(fù)制上節(jié)課的材質(zhì)優(yōu)化算法到材質(zhì)函數(shù)編輯器。給input命名,把它轉(zhuǎn)化為scalar一維數(shù)據(jù),命名為Min-Diatance-Height(輸入最小距離高度),用命名給它打上標簽,連接Stubtract“B”,Ctrl+D復(fù)制以上節(jié)點,命名為Max-Diatance-Height(輸入最大距離高度),連接Clamp“Max”。再添加一個input,轉(zhuǎn)化為scalar,命名為HeightMap(輸入置換貼圖),運用乘法節(jié)點,將置換貼圖與數(shù)據(jù)進行修正。給置換貼圖取一個中間值0.5再新建一個input,轉(zhuǎn)化為scalar,命名為Max-Height(輸入最大高度0),復(fù)制到標簽。最大距離范圍除以最大高度,產(chǎn)生的數(shù)值小于輸入最大距離高度,作為遠距離進行相除。給最大距離高度設(shè)置1200,最小距離高度600,最大高度3,進行減法運算,建一個Stubtract,與最大高度相連,取絕對值(針對置換貼圖的高度來進行補償),通過Multiply,乘以一個-0.5,置換的轉(zhuǎn)換值添加,再建一個input,轉(zhuǎn)化為scalar,默認參數(shù)為0,命名Tessalation-shift(輸入鑲嵌轉(zhuǎn)化值),把它們進行加法運算,打個組,凹陷補償,添加一個拐點。添加一個VertexNormaIWS,與之相乘。
我們最終輸出的值是置換貼圖,命名Displacement,增加一個Lerp,如果使用前面的算法,連接B,數(shù)值唯一,不適用則是默認數(shù)值(0,0,1),連A。設(shè)一個轉(zhuǎn)化開關(guān)Switch,真為1,假為0。
新建input,選擇Bool類型,命名Tessalation-Enabled(是否啟用置換貼圖效果),再輸入Bool,開啟輸出為真(如圖),并連接。
增加一個輸出端output,改名為Multiplier(輸出細分乘積),排列位置歸1,操作與前面大致同理,只不過把最大距離高度、最小距離高度、最大高度,改為最大距離乘積、最小距離乘積、輸入迭代值。把這一堆運算最后通過線性插值lerp節(jié)點,連接到B。如果不啟用置換效果,則迭代次數(shù)為0
材質(zhì)函數(shù)編輯完成,點擊應(yīng)用,在材質(zhì)編輯器中看出,我們在函數(shù)編輯器中標記好的輸入端,回到函數(shù)編輯器,可以通過調(diào)整排列位置大小,來排列輸入端位置。將迭代值降低為2,以防死機,乘積值增大,讓它在離得遠或近時,遠高于高度值。點擊應(yīng)用,回到材質(zhì)編輯器。將置換貼圖拖進材質(zhì)編輯器中,使用置換貼圖其中一個通道,輸入一個最小距離高度,默認值設(shè)置600,再輸入一個最大距離高度,默認值1200,最大高度3,鑲嵌轉(zhuǎn)換值0,最小距離乘積1200,最大距離乘積1500,迭代次數(shù)2,用Bool開啟是否啟用置換貼圖效果?;謴?fù)默認,置換貼圖效果選擇PN,WorldDisplacement被打開,與置換貼圖連接將所有材質(zhì)貼圖拖入材質(zhì)編輯器,分別將它們依次連接,再應(yīng)用到場景中,創(chuàng)建材質(zhì)實例,可以通過調(diào)整參數(shù),改變材質(zhì)展現(xiàn)效果。與函數(shù)相關(guān)節(jié)點MaterialFunctionCall(材質(zhì)函數(shù)調(diào)用)-允許使用來自另一個材質(zhì)或函數(shù)的外部函數(shù)。這個外部函數(shù)的輸入及輸出節(jié)點將變成函數(shù)調(diào)用節(jié)點的輸入和輸出。FunctionInput(函數(shù)輸入)-只能放在材質(zhì)函數(shù)中,用于在該函數(shù)中定義該函數(shù)的某個輸入。FunctionOutput(函數(shù)輸出)-只能放在材質(zhì)函數(shù)中,用于在該函數(shù)中定義該函數(shù)的某個輸出。TextureObject(紋理對象)-用來為函數(shù)內(nèi)的紋理函數(shù)輸入提供默認紋理。此節(jié)點不會對該紋理進行實際取樣,因此必須與TextureSample(紋理樣本)節(jié)點配合使用。TextureObjectParameter(紋理對象參數(shù))-定義一個紋理參數(shù)并輸出紋理對象,以便在調(diào)用具有紋理輸入的函數(shù)的材質(zhì)中使用。此節(jié)點不會對該紋理進行實際取樣,因此必須與TextureSample(紋理樣本)節(jié)點配合使用。StaticSwitch(靜態(tài)開關(guān))-根據(jù)輸入值在兩個輸入之間執(zhí)行編譯時選擇。StaticBool(靜態(tài)布爾值)-用來為函數(shù)內(nèi)的靜態(tài)布爾函數(shù)輸入提供默認布爾值。此節(jié)點不會在任何內(nèi)容之間切換,因此必須與StaticSwitch(靜態(tài)開關(guān))節(jié)點配合使用。StaticBoolParameter(靜態(tài)布爾參數(shù))-定義一個靜態(tài)布爾參數(shù)并輸出靜態(tài)布爾值,以便在調(diào)用具有靜態(tài)布爾輸入的函數(shù)的材質(zhì)中使用。此節(jié)點不會在任何內(nèi)容之間切換,因此必須與StaticSwitch(靜態(tài)開關(guān))節(jié)點配合使用。2.5.1材質(zhì)案例練習玻璃材質(zhì)
首先創(chuàng)建材質(zhì)球,將材質(zhì)球命名為M_Glass。雙擊材質(zhì)球進入材質(zhì)編輯器面板,在左下角面板中將“混合模式”改為半透明
繼續(xù)勾選“屏幕空間反射”,“光照模式”改為表面半透明體積
設(shè)置基礎(chǔ)顏色,按住數(shù)字3同時單擊鼠標左鍵,創(chuàng)建“三維向量”。將其“G值”改為0.1,既顏色改為墨綠色,將此三維向量命名為“玻璃顏色”
設(shè)置高光以及粗糙度。按住數(shù)字1同時按下鼠標左鍵新建“一維向量”,將其“默認值”改為0.85,再次新建“一維向量”,將“默認值”改為0
設(shè)置玻璃材質(zhì)的不透明度。通過“菲尼爾方式Fresnel_Function”制作玻璃的透明遮罩。按住S鍵同時按下鼠標左鍵,新建“標量參數(shù)Param”,并命名為“透明度菲尼爾功率”,將其“默認值”改為4
L鍵+鼠標左鍵,新建“Lerp節(jié)點”,將“菲尼爾方式Fresnel_Function”連接至“Lerp節(jié)點”的“Alpha”通道,S鍵+鼠標左鍵,新建“標量參數(shù)Param”,命名為“透明度線性插值A(chǔ)”,復(fù)制一份并改名為“透明度線性插值B”,分別連接至Lerp的A、B。修改“透明度線性插值A(chǔ)”節(jié)點的“默認值”為0.05,“透明度線性插值B”的“默認值”為0.25。新建“乘法節(jié)點Multiply”,再新建“標量參數(shù)Param”,改名為“設(shè)置整體透明度”,將其“默認值”改為5
設(shè)置玻璃材質(zhì)的折射。新建“菲尼爾節(jié)點Fresnel_Function”,新建“Lerp節(jié)點”,命名為“折射功率”,將其“默認值”改為14。新建線性插值“Lerp節(jié)點”,將“菲尼爾節(jié)點Fresnel_Function”連接至“Lerp節(jié)點”的“Alpha”通道。數(shù)字1+鼠標左鍵,新建“一維向量”,值改為1。S鍵+鼠標左鍵,新建“標量參數(shù)Param”,命名為“折射”,將其“默認值”改為1.5,分別連接至“Lerp節(jié)點”的“A”、“B”通道最后,可以在創(chuàng)建材質(zhì)實例中對參數(shù)進行適當修改。2.5.2玻璃的假反射效果制作
承接上一節(jié)課,在M_Glass材質(zhì)的材質(zhì)編輯器面板中,T鍵+鼠標左鍵調(diào)入“TextureSample節(jié)點”,在“材質(zhì)表達式紋理Base”中將“紋理”替換成HDR貼圖“HDRI_Epic_Courtyard_Daylight(Texturecube)”
新建“CustomReflectionVector節(jié)點”,新建“菲尼爾方法Fresnel_Function”節(jié)點,S鍵+鼠標左鍵,新建“標量參數(shù)Param”,命名為“假反射邊緣功率”,“默認值”改為2。新建“PixeNormalWS”節(jié)點,新建“乘法節(jié)點Multiply”以及”加法節(jié)點Add”,再新建“標量參數(shù)Param”,并將其命名為“玻璃深度”,將其“默認值”改為6.36。新建“1-X(反向表達式)”節(jié)點,再新建“標量參數(shù)Param”,并將其命名為“貼圖反射乘積”,將其“默認值”改為0.3。新建“Power”節(jié)點,新建“標量參數(shù)Param”,命名為“反射功率EXP”,將其“默認值”改為1.407
新建“菲尼爾方法節(jié)點(Fresnel_Function)”,新建“標量參數(shù)Param”,并命名為“假反射菲尼爾功率”,并將其“默認值”改為4。再新建“Lerp節(jié)點”,新建“標量參數(shù)Param”,并命名為“假反射線性插值A(chǔ)”,復(fù)制該標量參數(shù),改名為“假反射線性插值B”,并將其“默認值”改為1
新建“CheapContrast”節(jié)點,連接“Lerp節(jié)點”,新建“標量參數(shù)Param”節(jié)點,命名為“假反射菲尼爾對比度”,并將其“默認值”改為0.1619。新建“Clamp節(jié)點”,新建“Lerp節(jié)點”,再新建“一維向量”,新建“乘法節(jié)點Multiply”,再新建“加法節(jié)點Add”將假反射算法與“玻璃顏色”相加,再將“加法節(jié)點Add”與“玻璃材質(zhì)”的“基礎(chǔ)顏色”連接。最后回到材質(zhì)實例中對參數(shù)進行調(diào)整。2.5.3磨砂玻璃的制作
創(chuàng)建材質(zhì),在“內(nèi)容瀏覽器面板”中點擊鼠標右鍵,再點擊材質(zhì),將材質(zhì)命名為“M_GlassBlur”
雙擊“M_GlassBlur”材質(zhì)球進入“材質(zhì)編輯器面板”,在“材質(zhì)”中找到“混合模式”,將“混合模式”改為“半透明”
新建“SpiralBlur-SceneTexture”節(jié)點,將“SpiralBlur-SceneTexture”節(jié)點的“Result”連接至“M_GlassBlur”節(jié)點的“自發(fā)光通道”,“SceneColorclampto0”連接至“M_GlassBlur”節(jié)點的“不透明度通道”。S鍵+鼠標右鍵新建“Param”節(jié)點,命名為“距離”,在“材質(zhì)表達式標量參數(shù)”中將“默認值”改為0.05,“滑條最大值”改為0.1,將“距離”節(jié)點連接至“SpiralBlur-SceneTexture”節(jié)點的“Distance(S)”通道
新建“Param”節(jié)點,命名為“距離過渡”,將其默認值改為16。再次新建“Param”節(jié)點,命名為“過渡半徑”,將其“默認值”改為8.0,“滑條最小值”改為0.85,“滑條最大值”改為50.0。將“距離過渡”節(jié)點連接至“SpiralBlur-SceneTexture”節(jié)點的“DistanceSteps(S)”通道。將“過渡半徑”節(jié)點連接“SpiralBlur-SceneTexture”節(jié)點的“RadialSteps(S)”通道
新建“Param”節(jié)點,命名為“半徑偏移”,將其“默認值”改為0.62,“滑條最大值”改為1。將“半徑偏移”節(jié)點連接至“SpiralBlur-SceneTexture”節(jié)點的“RadialOffset(S)”通道。再次新建“Param”節(jié)點,命名為“模糊半徑AA”,將其“默認值”改為1,“滑條最大值”改為100。將“半徑偏移”節(jié)點連接至“SpiralBlur-SceneTexture”節(jié)點的“TempAARadialBlur(S)”通道
按住S鍵+鼠標左鍵,新建“Param”節(jié)點,命名為“模糊距離AA”,將其“默認值”改為1,“滑條最大值”改為500。新建“Param”節(jié)點,命名為“距離遮罩”,將其“默認值”改為1回到材質(zhì)實例中對參數(shù)進行調(diào)整。2.5.4皮革和布料材質(zhì)的制作
導(dǎo)入文件貼圖,新建材質(zhì)球。在“內(nèi)容瀏覽器面板”中右鍵“新建Material”,命名為“M_LeatherCloth”。雙擊進入材質(zhì)編輯器面板,將“皮革_AO”,“皮革法線”,“皮革粗糙”這三張貼圖拖拽進入“M_LeatherCloth”材質(zhì)球的材質(zhì)編輯器面板
右鍵將“TextureSample”紋理采樣節(jié)點“轉(zhuǎn)化為參數(shù)”,分別相應(yīng)地命名為“粗糙度貼圖”,“法線貼圖”,“AO貼圖”
通過“TexCoord”節(jié)點來控制貼圖的UV。新建“TexCoord”節(jié)點,新建“標量參數(shù)Param”節(jié)點,命名為“紋理重復(fù)次數(shù)”,將“標量參數(shù)Param”節(jié)點的默認值改為2,再新建“乘法節(jié)點Multiply”。將“TexCoord”節(jié)點連接至“乘法節(jié)點Multiply”的“A通道”,“一維向量”節(jié)點連接至“乘法節(jié)點Multiply”的“B通道”。將“乘法節(jié)點Multiply”與各個貼圖節(jié)點的“UVs”通道相連接
新建“TransformVecter”節(jié)點,連接“法線貼圖”節(jié)點。新建“VertexNormalWS”節(jié)點,“L”鍵+鼠標左鍵,新建“Lerp”節(jié)點,將“TransformVecter”節(jié)點,連接“Lerp”節(jié)點的“B”通道,“VertexNormalWS”節(jié)點連接至“Lerp”節(jié)點的“A”通道,再新建“標量參數(shù)Param”節(jié)點,并命名為“法線強度混合”。將“法線強度混合”節(jié)點的默認值改為1,滑條最大值改為1。再將“Lerp”節(jié)點連接至“材質(zhì)編輯節(jié)點M_LeatherCloth”的“Normal”通道
在“細節(jié)”面板中取消勾選“切線空間法線”既改使用世界空間法線。新建“CheapContrast”節(jié)點,連接“AO貼圖”節(jié)點,新建“乘法節(jié)點Multiply”,將“CheapContrast”節(jié)點連接至“A通道”,再新建標量參數(shù)“Param”,連接至“CheapContrast”節(jié)點的“contrast”通道,將“AO對比度”節(jié)點的默認值改為0.5。點擊“Multiply”節(jié)點,在細節(jié)面板中將“Multiply”節(jié)點的“常量B”改為1
新建“Lerp”節(jié)點來控制粗糙度的紅色通道。將“粗糙度貼圖”節(jié)點的“紅色通道”連接至“Lerp”節(jié)點的“Alpha”通道。S鍵+鼠標左鍵新建“標量參數(shù)Param”,將其命名為“最小粗糙度”。
復(fù)制一份并改名為“最大粗糙度”,將“最小粗糙度”和:“最大粗糙度”節(jié)點分別連接至“Lerp”節(jié)點的“A”、“B”通道。右鍵“Lerp”節(jié)點,點擊“開始預(yù)覽節(jié)點”,可以知道當材質(zhì)的最小粗糙度和最大粗糙度的數(shù)值為0時,材質(zhì)為黑色。將將“最小粗糙度”節(jié)點的默認值改為0.2,將“最大粗糙度”節(jié)點的默認值改為0.45,新建“乘法節(jié)點Multiply”,連接上述“Lerp”節(jié)點。S鍵+鼠標左鍵,新建“標量參數(shù)Param”,并命名為“整體粗糙度調(diào)節(jié)”,默認值改為1.5,并將其連接至“乘法節(jié)點Multiply”的“B”通道。將“乘法節(jié)點Multiply”連接至“M_LeatherCloth”材質(zhì)輸出節(jié)點的“粗糙度”。
新建“1-x”節(jié)點,新建“乘法節(jié)點Multiply”,將“AO貼圖”連接至“乘法節(jié)點Multiply”的“B”通道,將“1-x”節(jié)點連接至至“乘法節(jié)點Multiply”的“A”通道。將另一個“乘法節(jié)點Multiply”連接至“M_LeatherCloth”材質(zhì)輸出節(jié)點的“環(huán)境光遮擋”
L鍵+鼠標左鍵新建“l(fā)erp”節(jié)點,將上面的最后一個“乘法節(jié)點Multiply”連接至新建的“l(fā)erp”節(jié)點,S鍵+鼠標左鍵新建“標量參數(shù)Param”節(jié)點,命名為“最小高光”,復(fù)制一份,改名為“最大高光”,分別連接至“Lerp”節(jié)點的“A”、“B”通道。再將“Lerp節(jié)點”連接至“M_LeatherCloth”材質(zhì)輸出節(jié)點的“高光度”。設(shè)置“最小高光”的默認值為0.35,“最大高光”的默認值為0.55
數(shù)字3+鼠標左鍵新建三維向量,右鍵點擊“轉(zhuǎn)換為參數(shù)”,并命名為“基礎(chǔ)顏色”,將皮革顏色調(diào)整為藍色。再到材質(zhì)實例調(diào)整其參數(shù)。
最后復(fù)制一份上述皮革材質(zhì)的材質(zhì)實例,只需要替換“AO貼圖”,“法線貼圖”以及“粗糙度貼圖”并修改其參數(shù)2.5.4車漆材質(zhì)制作
新建材質(zhì)球,命名為“M_CarPaint”,雙擊進入材質(zhì)編輯面板,在“細節(jié)”面板中將“著色模型”選擇為“透明圖層”。新建“一維向量”節(jié)點,設(shè)置其數(shù)值為0.8,將“一維向量”連接至“M_CarPaint”材質(zhì)輸出節(jié)點的“Metallic”。
導(dǎo)入一張彩色貼圖將彩色貼圖命名為“RandomAngles”。一張帶紋理的,凹凸不平的質(zhì)感的法線貼圖(目的是體現(xiàn)車漆內(nèi)部的細節(jié)),命名為“T_Bump_N”。一張顆粒貼圖(目的是模擬粗糙度,用來體現(xiàn)車漆內(nèi)部的金屬質(zhì)感),命名為“T_FlakeMask”。
將顆粒貼圖“T_FlakeMask”拖拽到“M_CarPaint”的材質(zhì)編輯器面板。新建“AbsoluteWorldPosition(絕對世界位置)”和“CameraPosition”節(jié)點。新建“Subtract”節(jié)點,將“AbsoluteWorldPosition”節(jié)點連接至“Subtract”節(jié)點的“A”通道,“CameraPosition”節(jié)點連接至“B”通道,既用物理位置減去攝像機位置。將“Subtract”節(jié)點備注“獲取坐標差值”
新建“VectorLength”節(jié)點,新建“除法節(jié)點Divide”,再輸入到顆粒貼圖節(jié)點的“UVs”通道。S鍵+鼠標右鍵,新建“標量參數(shù)Param”,并命名為“顆粒尺寸”,默認值改為2。新建“乘法節(jié)點Multiply”,將顆粒貼圖節(jié)點連接至“A”通道,再新建“Param”節(jié)點,命名為“顆粒倍增”,將其默認值改為1.5,連接至“B”通道。新建“加法Add”節(jié)點,將顆粒貼圖與“乘法節(jié)點Multiply”相加。
新建“Power”節(jié)點,讓“加法節(jié)點Add”輸出到“Power”節(jié)點。新建“Param”節(jié)點,命名為“顆粒對比值”,默認值改為3,連接到“Power”節(jié)點的“Exp”通道。新建“Lerp”節(jié)點,讓“Power”節(jié)點輸出到“Lerp”節(jié)點的“Alpha”通道。S鍵+鼠標左鍵,新建“Param”節(jié)點,命名為“底層材質(zhì)做小粗糙度”,默認值改為0.2,復(fù)制一份,改名為“底層材質(zhì)最大粗糙度”,默認值改為0.8,并分別連接至“l(fā)erp”節(jié)點的“A”,“B”通道。最后,讓“Lerp”節(jié)點輸出到“M_CarPaint”材質(zhì)輸出節(jié)點的“粗糙度”。全選這些節(jié)點,C鍵打組,備注為“粗糙度設(shè)置”3+鼠標左鍵調(diào)出“三維向量”節(jié)點,右鍵將其轉(zhuǎn)換為參數(shù),在“細節(jié)”面板將其顏色改為黃色
將彩色貼圖“RandomAngles”拖拽到此材質(zhì)編輯器面板。新建“TexCoord”節(jié)點,輸出到“乘法節(jié)點Multiply”,再新建“Param”節(jié)點,命名為“雜色貼圖重復(fù)次數(shù)”,輸出到“乘法節(jié)點Multiply”的“B”通道。再將“乘法節(jié)點Multiply”輸出到彩色貼圖節(jié)點
再新建“三維向量”節(jié)點,右鍵將其轉(zhuǎn)換為參數(shù),并改名為“疊加顏色”,將“疊加顏色”改為白色(既R,G,B,A值均為1)。新建“乘法節(jié)點Multiply”,讓彩色貼圖節(jié)點與“疊加顏色”相乘。新建“Lerp”節(jié)點,讓“疊加顏色”輸出到“Lerp”節(jié)點的“A”通道,“乘法節(jié)點Multiply”輸出到“B”通道。再次新建“Param”節(jié)點,輸出到“Lerp”節(jié)點的“Alpha”通道。
新建“Power”節(jié)點,將下面的“粗糙度設(shè)置”的“Add”節(jié)點輸出到“Power”節(jié)點的“Base”通道。S鍵+鼠標左鍵新建“param”節(jié)點,命名為“雜色噪波對比強度”,將其默認值改為5,輸出到“Power”節(jié)點的“Exp”通道。新建“Multiply”節(jié)點,讓“Lerp”節(jié)點和“Power”節(jié)點分別輸出到“Multiply”節(jié)點的“A”,“B”通道。再次新建“Multiply”節(jié)點,使上面的“Multiply”節(jié)點輸出到現(xiàn)在新建的“Multiply”節(jié)點的“A”通道,S鍵+鼠標左鍵,新建“Param”節(jié)點,命名為“雜色整體控制”,輸出到“Multiply”節(jié)點的“B”通道,默認值改為1。再新建“加法Add”節(jié)點,讓“車漆顏色”與“Multiply”節(jié)點相加,最后輸出到“M_CarPaint”材質(zhì)輸出節(jié)點的“基礎(chǔ)顏色”。全選這些節(jié)點,C鍵打組,并備注為“車漆顏色設(shè)置”
將法線貼圖“T_Bump_N”拖拽到材質(zhì)編輯器面板,新建“TexCoord”節(jié)點,輸出到“Multiply”節(jié)點,再新建“Param”節(jié)點,命名為“底層法線貼圖尺寸”,修改其默認值為50,連接至“Multiply”節(jié)點的“B”通道。再將“Multiply”節(jié)點輸出到法線貼圖節(jié)點的“UVs”通道。再新建“三維向量”,將其顏色改為藍色(既B值改為1)。新建“Lerp”節(jié)點,使“三維向量”與法線貼圖節(jié)點分別連接至“Lerp”節(jié)點的“A”,“B”通道。S鍵+鼠標左鍵,新建“Param”節(jié)點并命名為“底層法線貼圖強度”,連接至“Lerp”節(jié)點的“Alpha”通道。最后輸出到“M_CarPaint”材質(zhì)輸出節(jié)點的“Normal”。全選節(jié)點,C鍵打組,并修改備注為“法線控制”。創(chuàng)建材質(zhì)實例,并進行參數(shù)修改。
“項目設(shè)置”中,找到“渲染”,在“材質(zhì)”中勾選“透明圖層啟用第二法線”,按提示重啟應(yīng)用,如圖3-89所示。在材質(zhì)編輯器中,右鍵空白地方搜索“ClearCoatNormalCustomOutput”,新建這個節(jié)點。將顆粒法線貼圖拖拽到材質(zhì)編輯器中,新建“TexCoord”節(jié)點,新建“Multiply”節(jié)點,再新建“Param”節(jié)點,命名為“透明圖層法線尺寸”,分別連接至“Multiply”節(jié)點的“A”,“B”通道。將“Multiply”節(jié)點輸出到顆粒法線貼圖節(jié)點的“UVs”通道。新建“三維向量”節(jié)點,將其“B”值改為1,新建“Lerp”節(jié)點,讓“三維向量”節(jié)點輸出到“Lerp”節(jié)點的“A”通道,“法線貼圖”節(jié)點連接至“B”通道。S鍵+鼠標左鍵,新建“Param”節(jié)點,并命名為“透明圖層法線強度”,將其“滑條最大值”改為1,輸出到“Lerp”節(jié)點的“Alpha”,再將“Lerp”節(jié)點輸出到“ClearCoatNormalCustomOutput”節(jié)點,最后修改材質(zhì)實例的數(shù)值即可實現(xiàn)影視級別的材質(zhì)2.6.1材質(zhì)練習-汽車材質(zhì)制作A
導(dǎo)入汽車模型:找到模型后拖拽到面板中即可,選擇全部導(dǎo)入。因為我們時對模型添加貼圖,所以我們可以把模型自帶的材質(zhì)全部刪除,保留骨骼。
選擇燈光,把燈光的移動性改為可移動的,這樣場景就不會去烘培燈光,減少烘培的時間
把汽車模型“Chevrolet”拖拽到場景中,在內(nèi)容瀏覽器中雙擊汽車模型,進入編輯器。選中材質(zhì)實例“M_CarPaint_Inst”(第18課制作的車漆材質(zhì)),進入右側(cè)的“AssetDetails”中找到汽車外殼噴漆“CarYellowPaintMat”,可以選擇右側(cè)的高光和隔離確定是否選擇正確。再點擊小箭頭(如圖3-93),就會賦予上材質(zhì),這樣做的目的是防止材質(zhì)只對本關(guān)卡場景有用。
制作塑料外殼材質(zhì)。在材質(zhì)面板鼠標右鍵選擇材質(zhì),給材質(zhì)命名為“M_suliao”對材質(zhì)鼠標右鍵創(chuàng)建材質(zhì)實例,選擇它,在到汽車模型中賦予到“CarBlackPlasitc”中
選擇塑料的材質(zhì),雙擊,進入材質(zhì)編輯器。在Textures中找到“suliao”和“suliaoFAX”拖拽到材質(zhì)編輯器中。觀察要被賦予材質(zhì)的模型法線比較復(fù)雜,所以我們關(guān)掉“切線空間法線”使用世界法線。
將法線貼圖的RGB來連接TransformVector,再使其與線性插值Lerp連接,同時匹配VertexNormalWS,在材質(zhì)面板中按住鍵盤S鍵在點擊鼠標左鍵,就可以快速導(dǎo)出ScalarParameter節(jié)點,將節(jié)點命名為法線強度,默認值改為0.68,最小值為0,最大值為1。最后將Lerp輸出連接至Normal中。
因為我們制作的是塑料材質(zhì),所以金屬值為0。
對粗糙度進行細節(jié)的調(diào)整。因為我們的貼圖是一個灰度圖,所以無論是RGB的哪個顏色通道都是一樣的,這里來我們選擇藍色B通道。在調(diào)出Lerp,將B通道連接至Alpha中,再調(diào)出兩個ScalarParameter節(jié)點,一個命名為“最大粗糙度”取值為0.72,連接到Lerp的B中,另一個為“最小粗糙度”取值為0.35,連接到Lerp的A中。再將Lerp的輸出連接到粗糙度中。
調(diào)整高光值,設(shè)置兩個參數(shù),一個命名為“高光值A(chǔ)”取值為0.3,連接到Lerp的B中,另一個為“高光值B”取值為0.6 ,連接到Lerp的A中。再將Lerp的輸出連接到粗糙度中。
調(diào)整顏色,連接線性插值Lerp的Alpha中,再在面板中按住鍵盤鍵3并且的點擊鼠標左鍵,添加一個Constant3Vector節(jié)點,對節(jié)點點擊鼠標右鍵,把節(jié)點轉(zhuǎn)化為參數(shù),將這個節(jié)點命名為基礎(chǔ)顏色A,對其的顏色調(diào)整偏灰色,并且連接到Lerp的A中。用同樣的方法再添加一個Constant3Vector節(jié)點,命名為基礎(chǔ)顏色B,對其顏色調(diào)整偏深藍顏色,并且連接到Lerp的B中。
顆粒紋理太大怎么辦?在面板中按住鍵盤U鍵再點擊鼠標左鍵,添加一個坐標節(jié)點TextureCoordinate,再調(diào)出ScalarParameter節(jié)點設(shè)置值為1,用乘法節(jié)點Multiply使其相乘后連接兩張貼圖的UV。
不銹鋼材質(zhì):在材質(zhì)面板中添加一個材質(zhì),命名為“M_buxiugang”,對其實例化后,雙擊進入材質(zhì)編輯器,創(chuàng)建一個三維參數(shù),給基礎(chǔ)顏色為RGB(0.9,0.9,0.9)的顏色,調(diào)出三個ScalarParameter節(jié)點,第一個命名為金屬值,值為0.9,第二個命名為高光度,值為0.8,第三個命名為粗糙度,值為0.1,如圖3-104汽車不銹鋼材質(zhì)所示。選擇汽車中不銹鋼材質(zhì)的模型區(qū)域WhiteStainlessSteelMat,將不銹鋼材質(zhì)賦予上去。如果對賦值有自己的想法,可以雙擊不銹鋼實例化進入面板,在右邊修改屬性值。
在材質(zhì)面板中找到“M_Glass”的實例化材質(zhì)(玻璃材質(zhì)在第14課案例中有詳細講到,這里直接引用),賦予到“GlassAMat”中,再結(jié)合實際修改一個材質(zhì)的參數(shù)
后車窗玻璃的制作,因為后車窗玻璃和前擋風玻璃的材質(zhì)不同,前者的透明度沒有后者的高,所以我們對“M_Glass_Inst”進行實例化變成“M_Glass_Inst_Inst”再對其修改屬性值。對“M_Glass_Inst_Inst”設(shè)置雙面材質(zhì)。最后把“M_Glass_Inst_Inst”賦予給“GlassCMat”和“GlassBMat”。
給汽車座椅添加皮革材質(zhì)。在材質(zhì)面板中選擇“M_LeatherCloth”將他賦予到車座“CarZuoYiMat”中改變材質(zhì)中紋理重復(fù)次數(shù),控制它的粗糙度。
在材質(zhì)面板中創(chuàng)建素材,命名為“M_Rad”,作為汽車內(nèi)的紅色內(nèi)飾。雙擊進入材質(zhì)編輯器,對基礎(chǔ)顏色調(diào)一個紅色,高光值為1,粗糙值為0,金屬值為0.最后把材質(zhì)實例化后賦予到“PlasticRedMat”。2.6.2材質(zhì)練習-汽車材質(zhì)制作B
在材質(zhì)面板中創(chuàng)建材質(zhì),命名為“M_ClearCoat”,雙擊材質(zhì)進入材質(zhì)編輯器,在細節(jié)處,將著色模型改為“透明圖層”。
在材質(zhì)面板中找到“yibiaopan”圖片,拖拽到材質(zhì)編輯器中與基礎(chǔ)顏色連接。
添加一個轉(zhuǎn)化判斷節(jié)點“StaticSwitchParameter”,我們要使它在是true得時候不顯示貼圖,在false的時候顯示貼圖,金屬值為0,高光為0.3,法線貼圖也使用“StaticSwitchParameter”,使它在true的時候顯示法線,在false的時候不顯示,最后這兩張貼圖用ScalarParameter節(jié)點連接控貼圖。
將“pige”拖拽到材質(zhì)編輯器中,使用Lerp設(shè)置兩個ScalarParameter節(jié)點,一個為最小粗糙度值為0,另一個為最大粗糙度值為1,再將Lerp與名為粗糙度值為0.7的ScalarParameter節(jié)點相乘Multply,再使用名為“使粗糙度貼圖”的StaticSwitchParameter節(jié)點連接到粗糙度中,其意思就是,當為true時就使貼圖與粗糙度值相乘得到粗糙度,當為false時就只使用粗糙度為0.7。最后把材質(zhì)“M_ClearCoat”賦給“YiBiaoPanMat”即可。
將“M_Glass”賦予給“CarCamGlassMat”中,將“M_suliao”賦予“CarCameraMat”中。
將“M_CarPaint”實例化得到“M_CarPaint_Inst1”,對其的顏色更改為黑色。最后賦予給“CarBlackPaintMat”。
新建一個材質(zhì),命名為“M_Lighte”,對其的關(guān)照模型改為無光照。如圖3-112所示,自發(fā)光材質(zhì)的無光照照射。再對自發(fā)光顏色屬性,使用藍色和值為5Paran相乘得到的值輸出給自發(fā)光顏色。
對“M_buxiugan”進行實例化,得到“M_buxiugan_Inst_Inst2”對其的粗糙度,金屬感和高光值進行調(diào)節(jié),賦給“CarMirrorA”
創(chuàng)建一個新的材質(zhì),命名為“M_weiyi”,把貼圖“weiyi”拖拽到材質(zhì)編輯器中,對于尾翼材質(zhì)的基礎(chǔ)顏色,我們使用線性插值與尾翼的貼圖進行調(diào)整
給尾翼的金屬值設(shè)置為0。對尾翼的粗糙程度。我們使用Lerp控制尾翼貼圖,設(shè)置粗糙度為1再在B端連接一個Lerp,下有塑料材質(zhì)所用到的貼圖。對于法線Normal
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025建筑項目勞務(wù)服務(wù)合同
- 2025電子產(chǎn)品購銷合同模板(標準版)
- 2025如何強化合同監(jiān)管功能促進企業(yè)信用體系建設(shè)
- 2025培訓考試合同范本
- 2025中介合同與代理合同的區(qū)別
- 2025年上海市租房合同模板
- 小學生動漫繪畫課程課件
- 蒙臺利索教育教學
- 財務(wù)管理與投資決策課件
- 住院醫(yī)師規(guī)范化培訓-婦產(chǎn)科學真題庫-29
- 2025購銷商品合同模板
- 2024年山西華陽新材料科技集團有限公司招聘筆試真題
- 2025年03月雙鴨山市“市委書記進校園”引才活動黑龍江能源職業(yè)學院13人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年湖南興湘投資控股集團有限公司春季校園招聘28人筆試參考題庫附帶答案詳解
- 比例的應(yīng)用(教學設(shè)計)-2024-2025學年六年級下冊數(shù)學北師大版
- 農(nóng)業(yè)機械設(shè)備使用與操作指南
- 2025年03月州省氣象部門第二批公開招聘應(yīng)屆高校畢業(yè)生34人(第6號)筆試歷年參考題庫考點剖析附解題思路及答案詳解
- 圖書管理員的崗位技能要求與試題及答案
- 自體輸血管理制度與技術(shù)規(guī)范
- 燃氣管道管道吹掃方案
- 2025年浙江省初中學校TZ8共同體中考數(shù)學一模試卷
評論
0/150
提交評論