材质
材质是一组属性(状态,选项,参数)和资源(2D,3D纹理),在文本文件中描述并与特定的对象表面相关联。
UNIGINE拥有自己的材质系统,包括:
- 程序员实施的基础(base)材质。
- 从基础材质继承的用户(user)材质,并由3D艺术家通过“材质编辑器”进行了调整。
基础材质#
基础材质存储一组材质属性,并引用片段,顶点和几何着色程序,描述了材质的外观。
着色程序以GLSL和HLSL着色语言编写。在UNIGINE中,还有统一UNIGINE着色程序语言(UUSL)也可用于编写着色程序:它允许为两个3D图形API(OpenGL和Direct3D11)创建单个着色程序文件。
基础材质存储在*.basemat文件中。不能通过材质编辑器对其进行编辑:要自定义基础材质,您应直接编辑文本文件。或者,您可以创建一个全新的。
基础材质无法形成材质层次结构:不能从其他基础材质继承任何基础材质。基础材质始终位于层次结构的顶部:用户材质是从其继承的。
一组内置基础材质很大,其中包含大多数常见问题的材质。
用户材质#
用户材质会覆盖发送给材质的着色程序的属性,该材质由继承用户材质(或其父级)的基础材质使用。用户材质本身不能引用着色程序。
用户材质存储在*.mat文件中,该文件包含对父级和基础材质的引用。通常,当通过“材质编辑器”从基础材质或其他用户材质继承新材质时,会创建此类文件。用户材质无法自定义:一组用户材质属性不能与引用的基础材质的属性不同。但是,您可以通过“材质编辑器”编辑用户材质。
与基础材质不同,用户材质可以构成材质层次结构。
手动和内部材质#
在UNIGINE中,还有手动材质。此类材质是手动创建和编辑的:在运行时通过材质编辑器进行的更改无法保存。所有基础材质(内置材质和自定义材质)都是手动的。但是,并非每种手动材质都是基础材质:用户材质也可以是手动创建的。
在*.mat文件中,存储了手动用户材质名称。子*.mat文件可以存储基于基于名称或基于GUID的对父手动材质的引用。
当需要在不使用“材质编辑器”的情况下创建材质时,程序员可以使用手动材质。
内部材质是没有名称的材质。克隆或继承材质时,每个新材质都是内部的,直到保存到文件中。
也可以看看#
- 层次结构和继承 文章可了解有关材质组织方式的更多信息。
- 材质GUID 文章,了解如何引用基础材质和用户材质。
- 材质文件 部分,以了解有关基础材质和用户材质,.mat和.basemat文件及其与着色程序文件的连接的更多信息。
- 自定义材质 文章了解新材质创建的基础。
- 统一的Unigine着色程序语言 文章,了解如何为两个3D图形API实现着色程序文件。