虚幻中的材质系统集合了节点代码生成,shader参数绑定及设置,渲染状态管理等多种功能。UDK中使用的是2个资源类型Material和MaterialInstance,他们都可以赋予任何对象。但同时,他们的用途也是有区别的
Material更接近于传统我们见过的材质,可以使用MaterialEditor进行节点编辑生成一种材质,设置各种参数,直接在编辑器中绑定使用的纹理,并将Material赋予对象
MaterialInstance的原理有点类似于C++的虚表,这点可以从材质实例编辑器中看得出来
当前的既是MaterialInstance,其父就是Material,这种层次可以是多层的
Material在添加节点时有一种带有Parameter的节点例如
TextureSample是普通的材质采样器
TextureSampleParameter2D就是可以共享出来给外部设置的参数,换句话说,就是这个采样器可以在后期修改。
MaterialInstance就是可以修改这些Parameter。
通过这种结构的设置,我们就可以轻易的使用1种样式的材质效果,通过更换局部效果图片,变换组合出更多的效果。