虛幻中的材質(zhì)系統(tǒng)集合了節(jié)點(diǎn)代碼生成,shader參數(shù)綁定及設(shè)置,渲染狀態(tài)管理等多種功能。UDK中使用的是2個(gè)資源類型Material和MaterialInstance,他們都可以賦予任何對象。但同時(shí),他們的用途也是有區(qū)別的
Material更接近于傳統(tǒng)我們見過的材質(zhì),可以使用MaterialEditor進(jìn)行節(jié)點(diǎn)編輯生成一種材質(zhì),設(shè)置各種參數(shù),直接在編輯器中綁定使用的紋理,并將Material賦予對象
MaterialInstance的原理有點(diǎn)類似于C++的虛表,這點(diǎn)可以從材質(zhì)實(shí)例編輯器中看得出來
當(dāng)前的既是MaterialInstance,其父就是Material,這種層次可以是多層的
Material在添加節(jié)點(diǎn)時(shí)有一種帶有Parameter的節(jié)點(diǎn)例如
TextureSample是普通的材質(zhì)采樣器
TextureSampleParameter2D就是可以共享出來給外部設(shè)置的參數(shù),換句話說,就是這個(gè)采樣器可以在后期修改。
MaterialInstance就是可以修改這些Parameter。
通過這種結(jié)構(gòu)的設(shè)置,我們就可以輕易的使用1種樣式的材質(zhì)效果,通過更換局部效果圖片,變換組合出更多的效果。