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