This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
专业(SIM)
UnigineEditor
界面概述
资源工作流程
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Materials and Shaders
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
创建内容
内容优化
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

用料

material是一组属性(状态,选项,参数)和资产(2D,3D纹理),在文本文件中描述并与特定的对象表面相关联。

UNIGINE拥有自己的材料系统,包括:

  • 程序员实施的基础(user)材料。
  • 从基础材料继承的用户(base)材料,并由3D艺术家通过“材料编辑器”进行了调整。
注意
由于UNIGINE使用自己的材料系统,因此您不能使用任何第三方应用程序提供的材料。

基础材料#

基础材料存储一组材料属性,并引用片段,顶点和几何shaders,描述了材料的外观。

着色器以GLSL和HLSL着色语言编写。在UNIGINE中,还有统一UNIGINE着色器语言(UUSL)也可用于编写着色器:它允许为两个3D图形API(OpenGL和Direct3D11)创建单个着色器文件。

基础材料存储在*.basemat文件中。不能通过材料编辑器对其进行编辑:要自定义基础材料,您应直接编辑文本文件。或者,您可以创建一个全新的链接

注意
出于研究目的,可以使基础材料可编辑。但是,通过“材质编辑器”对此类材质所做的更改不会保存到*.basemat文件中。

基础材料无法形成材料层次结构:不能从其他基础材料继承任何基础材料。基础资料始终位于层次结构的顶部:用户资料是从其继承的。

注意
*.basemat文件中,存储基础材料的名称。子*.mat文件存储对基础材料的基于名称的引用。在运行时为基础材料生成一个 GUID

一组内置基础材料很大,其中包含大多数常见问题的材料。

用户资料#

用户材质会覆盖发送给材质的着色器的属性,该材质由继承用户材质(或其父级)的基础材质使用。用户资料本身不能引用着色器。

用户资料存储在*.mat文件中,该文件包含对父级和基础资料的引用。通常,当通过“材质编辑器”从基础材质或其他用户材质继承新材质时,会创建此类文件。用户材料无法自定义:一组用户材料属性不能与引用的基础材料的属性不同。但是,您可以通过“材料编辑器”编辑用户材料。

注意
用户资料GUID存储在*.mat文件中。子*.mat文件通常存储基于GUID的对父用户材料的引用。

与基础资料不同,用户资料可以构成资料层次结构

手册和内部材料#

在UNIGINE中,还有手册资料。此类材料是手动创建和编辑的:在运行时通过材料编辑器进行的更改无法保存。所有基础材料(内置材料和自定义材料)都是手动的。但是,并非每种手册资料都是基础资料:用户资料也可以是手册。

注意
您可以在一个项目中对基础(*.basemat),用户(*.mat)和手册(0__igt或*.mat)材质使用相同的名称:不会引起任何冲突。

*.mat文件中,存储了手动用户材料名称。子*.mat文件可以存储基于基于名称或基于GUID的对父手册材料的引用。

注意
只有手册材料可以通过名称引用父手册材料。

当需要在不使用“材料编辑器”的情况下创建材料时,程序员可以使用手动材料。

内部材料是没有名称的材料。克隆或继承材质时,每个新材质都将成为内部材质,直到为其分配了名称。

也可以看看#

最新更新: 2022-10-10
Build: ()