UE4材质函数帮助文档.docx

上传人:b****6 文档编号:7863240 上传时间:2023-01-26 格式:DOCX 页数:24 大小:959.32KB
下载 相关 举报
UE4材质函数帮助文档.docx_第1页
第1页 / 共24页
UE4材质函数帮助文档.docx_第2页
第2页 / 共24页
UE4材质函数帮助文档.docx_第3页
第3页 / 共24页
UE4材质函数帮助文档.docx_第4页
第4页 / 共24页
UE4材质函数帮助文档.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

UE4材质函数帮助文档.docx

《UE4材质函数帮助文档.docx》由会员分享,可在线阅读,更多相关《UE4材质函数帮助文档.docx(24页珍藏版)》请在冰豆网上搜索。

UE4材质函数帮助文档.docx

UE4材质函数帮助文档

材质函数表达式

FunctionInput(函数输入)

FunctionInput(函数输入)表达式只能放在材质函数中,用于在该函数中定义该函数的某个输入。

项目说明

属性

输入名称(InputName)输入的名称,此名称将显示在使用了包含该输入的材质函数的MaterialFunctionCall(材质函数调用)表达式中。

说明(Description)这是对输入的说明,当用户将鼠标指针悬停在MaterialFunctionCall(材质函数调用)表达式中此输入的连接器上方时,此说明将显示为“工具提示”。

输入类型(InputType)此输入所需的数据类型。

传递到此输入的数据将强制转换为此类型,如果因为数据不兼容而导致强制转换失败,那么将抛出编译器错误。

预览值(PreviewValue)这是编辑包含此输入的材质函数时,要用作此输入的预览的值。

使用预览值作为默认值(UsePreviewValueAsDefault)如果启用此项目,并且未传入任何数据,那么将使用预览值作为此输入的默认值。

排序优先顺序(SortPriority)指定确定MaterialFunctionCall(材质函数调用)表达式中显示各个输入的顺序时,对于此输入要使用的优先顺序。

此节点与材质函数配合使用。

FunctionOutput(函数输出)

FunctionOutput(函数输出)表达式只能放在材质函数中,用于在该函数中定义该函数的某个输出。

项目说明

属性

输出名称(OutputName)输出的名称,此名称将显示在使用了包含该输出的材质函数的MaterialFunctionCall(材质函数调用)表达式中。

说明(Description)这是对输出的说明,当用户将鼠标指针悬停在MaterialFunctionCall(材质函数调用)表达式中此输出的连接器上方时,此说明将显示为“工具提示”。

排序优先顺序(SortPriority)指定确定MaterialFunctionCall(材质函数调用)表达式中显示各个输出的顺序时,对于此输出要使用的优先顺序。

此节点与材质函数配合使用。

MaterialFunctionCall(材质函数调用)

MaterialFunctionCall(材质函数调用)表达式允许您使用来自另一材质或函数的外部材质函数。

这个外部函数的输入及输出节点将变成函数调用节点的输入和输出。

如果放置其中某个表达式时在内容浏览器中选中了某个材质函数,那么将自动指派该函数。

快捷键:

F+鼠标左键单击

项目说明

属性

材质函数(MaterialFunction)指定要使用的材质函数。

此节点与材质函数配合使用。

StaticBool(静态布尔值)

StaticBool(静态布尔值)表达式用来为函数内的静态布尔函数输入提供默认布尔值。

此节点不会在任何内容之间切换,因此必须与StaticSwitch(静态开关)节点配合使用。

项目说明

属性

值(Value)布尔值True(选中)或False。

此节点与材质函数配合使用。

StaticSwitch(静态开关)

StaticSwitch(静态开关)表达式的工作方式与StaticSwitchParameter(静态开关参数)类似,但是它仅实现开关,而不会创建参数。

项目说明

属性

默认值(DefaultValue)参数的默认布尔值(用于确定哪个输入处于活动状态),即True(选中)或False。

输入

True当开关的值(Value)为True时使用的输入。

False当开关的值(Value)为False时使用的输入。

值(Value)接收一个布尔值,用于确定哪个输入处于活动状态。

此节点与材质函数配合使用。

TextureObject(纹理对象)

TextureObject(纹理对象)表达式用来为函数内的纹理函数输入提供默认纹理。

此节点不会对该纹理进行实际取样,因此必须与“纹理取样”(TextureSample)节点配合使用。

项目说明

属性

纹理(Texture)内容浏览器中要应用于此节点的纹理。

取样类型(SamplerType)此节点所要输出的数据类型。

 

材质属性表达式

BreakMaterialAttributes(中断材质属性)

在使用 分层材质 (“材质功能”系统的一项特性)时,BreakMaterialAttributes(中断材质属性)表达式十分理想。

在材质中使用 材质层功能 时,您可能想只使用材质层的某一个方面。

例如,您可能有一个定义漂亮的一般材质(如钢铁)的材质层。

您可能希望在最终材质中仅使用该材质层的“粗糙度”和“底色”属性,而不是使用整个材质层。

在此类情况下,您可使用BreakMaterialAttributes(中断材质属性)节点对材质层的所有传入属性进行拆分,然后仅连接所需的属性。

这也使您能够对各种材质属性进行复杂混合。

MakeMaterialAttributes(建立材质属性)

MakeMaterialAttributes(建立材质属性)节点的作用与BreakMaterialAttributes(中断材质属性)节点正好相反。

此节点将各属性汇聚到一起,而不是拆分属性。

这在您创建自己的 材质层 功能时非常有用,因为您将能够访问所有的标准属性以用于输出。

此节点也可用于复杂材质设置,在这些设置中,您希望定义多种类型的材质,并将它们全部混合到一个材质中。

在将MakeMaterialAttributes(建立材质属性)节点连接到材质时,您需要确保将主材质节点的 使用材质属性(UseMaterialAttributes)属性设置为 True(选中)。

这会将主节点折叠成单个输入,该输入将接受来自MakeMaterialAttributes(建立材质属性)节点的传入输出。

 

数学表达式

Abs(绝对值)

Abs(绝对值)是数学术语“绝对值(absolutevalue)”的缩写。

Abs(绝对值)表达式输出其接收到的输入的绝对值(无符号值)。

基本上,这意味着它通过删除减号将负数转换为正数,而正数和零将保持不变。

示例:

-0.7的Abs(绝对值)为0.7;-1.0的Abs(绝对值)为1.0;1.0的Abs(绝对值)也是1.0

用法示例:

Abs(绝对值)一般与 DotProduct(标量积) 配合使用。

DotProduct(标量积)的结果是-1..0..1,对DotProduct(标量积)的结果执行Abs(绝对值)的结果将是1..0..1。

Add(加)

Add(加)表达式接收两个输入,将其相加,然后输出结果。

这个加法运算按通道执行,这意味着输入的R通道、G通道和B通道等等将分别相加。

两个输入必须具有相同数目的通道,除非其中之一是单个常量值。

常量可以添加到具有任意数目输入的矢量。

项目

说明

属性

常量A(ConstA)

接收被加数的值。

仅当未使用A输入时才使用。

常量B(ConstB)

接收加数的值。

仅当未使用B输入时才使用。

输入

A

接收被加数的值。

B

接收加数的值。

示例:

对0.2和0.4执行Add(加)的结果是0.6;对(0.2,-0.4,0.6)和(0.1,0.5,1.0)执行Add(加)的结果是(0.3,0.1,1.6);对(0.2,-0.4,0.6)和1.0执行Add(加)的结果是(1.2,0.6,1.6)

用法示例:

Add(加)通常用来使颜色变亮/变暗,或者使UV纹理坐标偏移。

AppendVector(追加矢量)

AppendVector(追加矢量)表达式允许您将通道组合在一起,以创建通道数比原始矢量更多的矢量。

例如,您可以使用两个 常量 值并进行追加,以建立双通道 Constant2Vector(常量2矢量) 值。

这有助于将单个纹理中的通道重新排序,或者将多个灰阶纹理组合成一个RGB彩色纹理。

项目

说明

输入

A

接收作为追加目标的值。

B

接收要追加的值。

示例:

对0.2和0.4执行追加的结果是(0.2,0.4);对(0.2,0.4)和(1.6)执行追加的结果是(0.2,0.4,1.6)。

Ceil(加一取整)

Ceil(加一取整)表达式接收值,使其 向上 舍入到下一个整数,并输出结果。

另请参阅 Floor(减一取整) 和 Frac(小数) 。

示例:

对0.2执行Ceil(加一取整)的结果是1.0;对(0.2,1.6)执行Ceil(加一取整)的结果是(1.0,2.0)。

Clamp(限制)

Clamp(限制)表达式接收值,并将它们约束到由最小值和最大值定义的指定范围。

最小值0.0和最大值0.5意味着结果值决不会小于0.0,并且决不会大于0.5。

项目

说明

属性

限制模式(ClampMode)

选择要使用的限制类型。

CMODE_Clamp将对范围的两端进行限制。

CMODE_ClampMin和CMODE_ClampMax将仅对范围的相应端进行限制。

默认最小值(MinDefault)

接收限制时用作最小值的值。

仅当未使用“最小值”(Min)输入时才使用。

默认最大值(MaxDefault)

接收限制时用作最大值的值。

仅当未使用“最大值”(Max)输入时才使用。

输入

最小值(Min)

接收限制时用作最小值的值。

最大值(Max)

接收限制时用作最大值的值。

示例:

在最小值为0.0且最大值为1.0的情况下对0.3进行限制将产生0.3;在最小值为0.0且最大值为1.0的情况下对1.3进行限制将产生1.0;

ComponentMask(分量蒙版)

ComponentMask(分量蒙版)表达式允许从输入中选择通道(R、G、B和/或A)的特定子集以传递到输出。

尝试传递输入中不存在的通道将导致错误,除非输入是单个常量值。

在这种情况下,会将单个值传递到每个通道。

选择传递的当前通道将显示在表达式的标题栏中。

项目

说明

属性

R

如果选中此项目,那么会将输入值的红色通道(第一个通道)传递到输出。

G

如果选中此项目,那么会将输入值的绿色通道(第二个通道)传递到输出。

B

如果选中此项目,那么会将输入值的蓝色通道(第三个通道)传递到输出。

A

如果选中此项目,那么会将输入值的阿尔法通道(第四个通道)传递到输出。

示例:

如果ComponentMask(分量蒙版)的输入为(0.2,0.8,1.4)并选中R和B通道,那么将输出(0.2,1.4)。

Cosine(余弦)

Cosine(余弦)表达式反复输出[0,1]范围内的余弦波值。

最常见的情况是,通过将 Time(时间) 表达式连接至它的输入,输出连续的振荡波形。

输出值将在-1与1之间来回循环。

下图显示波的视觉表示:

项目

说明

属性

周期(Period)

指定产生的波的周期。

换而言之,这是发生一次振荡的长度。

用法示例:

在任何需要振荡效果的场合,此表达式都非常有用。

通过将时间输入(速度)或输出(振幅)倍增,可以轻松地动态控制振荡的速度和振幅。

在以上示例中,颜色将以余弦频率振荡。

CrossProduct(矢量积)

CrossProduct(矢量积)表达式计算两个三通道矢量值输入的矢量积,并输出所产生的三通道矢量值。

给定空间中的两个矢量,矢量积是与两个输入都垂直的矢量。

项目

说明

输入

A

接收三通道矢量值。

B

接收三通道矢量值。

用法示例:

CrossProduct(矢量积)通常用来计算与另外两个方向都垂直的方向。

Divide(除)

Divide(除)表达式接收两个输入,并输出第一个输入除以第二个输入的结果。

除法按通道进行,即,第一个输入的R通道将除以第二个输入的R通道,第一个输入的G通道将除以第二个输入的G通道,依此类推。

除非除数是单个浮点值,否则两个输入必须具有相同数目的值。

切勿以零作除数。

项目

说明

属性

常量A(ConstA)

接收被除数的值。

仅当未使用A输入时才使用。

常量B(ConstB)

接收除数的值。

仅当未使用B输入时才使用。

输入

A

接收被除数的值。

B

接收除数的值。

示例:

当A=(1.0,0.5,-0.4)且B=(2.0,2.0,4.0)时,Divide(除)的输出为(0.5,0.25,-0.1)

DotProduct(标量积)

DotProduct(标量积)表达式计算标量积,即一个矢量投射到另一个矢量上的长度。

许多技术使用此计算来计算衰减。

DotProduct(标量积)要求两个矢量输入具有相同数目的通道。

项目

说明

输入

A

接收一个值,或接收任意长度的矢量。

B

接收一个值,或接收任意长度的矢量。

Floor(减一取整)

Floor(减一取整)表达式接收值,使其 向下 舍入到上一个整数,并输出结果。

另请参阅 Ceil(加一取整) 和 Frac(小数) 。

示例:

对0.2执行Floor(减一取整)的结果是0.0;对(0.2,1.6)执行Floor(减一取整)的结果是(0.0,1.0)。

FMod(浮点余数)

FMod(浮点余数)表达式返回对两个输入执行除法运算的浮点余数。

在此示例中,FMod(浮点余数)每秒返回一个重复值,该值的范围限制在0到1。

达到1之后,该值将恢复为0,并无穷反复。

Frac(小数)

Frac(小数)表达式接收值,并输出这些值的小数部分。

另请参阅 Ceil(加一取整) 和 Floor(减一取整) 。

示例:

对0.2执行Frac(小数)的结果是0.2;对(0.0,1.6)执行Frac(小数)的结果是(0.0,0.6)。

在此示例中,Frac(小数)节点将时间转换为重复的0-1级数序列,从而通过线性插值使颜色从绿色渐变为红色,然后恢复为绿色,并无穷反复。

If(如果)

If(如果)表达式对两个输入进行比较,然后根据比较结果传递另外三个输入值中的一个。

所比较的两个输入必须都是单个浮点值。

项目

说明

输入

A

接收单个浮点值。

B

接收单个浮点值。

A>B

接收A的值大于B的值时要输出的值。

A=B

接收A的值等于B的值时要输出的值。

A

接收A的值小于B的值时要输出的值。

在此示例中,If(如果)表达式接收高度贴图,并根据高度是低于还是高于值0.2来输出红色或绿色。

LinearInterpolate(线性插值)

LinearInterpolate(线性插值)表达式根据用作蒙版的第三个输入值,在两个输入值之间进行混合。

您可以将其想像成用于定义两个纹理之间的过渡效果的蒙版,例如Photoshop中的层蒙版。

蒙版“阿尔法”(Alpha)的强度确定从两个输入值获取颜色的比例。

如果“阿尔法”(Alpha)为0.0/黑色,那么将使用第一个输入。

如果“阿尔法”(Alpha)为1.0/白色,那么将使用第二个输入。

如果“阿尔法”(Alpha)为灰色(介于0.0与1.0之间的值),那么输出是两个输入之间的混合。

请记住,混合按通道进行。

因此,如果“阿尔法”(Alpha)为RGB颜色,那么“阿尔法”(Alpha)的红色通道值定义A与B的红色通道之间的混合,而与“阿尔法”(Alpha)的绿色通道 无关,该通道定义A与B的绿色通道之间的混合。

项目

说明

属性

常量A(ConstA)

映射到黑色(0.0)的值。

仅当未连接A输入时才使用。

常量B(ConstB)

映射到白色(1.0)的值。

仅当未连接B输入时才使用。

常量阿尔法(ConstAlpha)

接收要用作蒙版阿尔法的值。

仅当未连接“阿尔法”(Alpha)输入时才使用。

输入

A

接收映射到黑色(0.0)的值。

B

接收映射到白色(1.0)的值。

阿尔法(Alpha)

接收要用作蒙版阿尔法的值。

程序员需知:

LinearInterpolate(线性插值)根据参数值“阿尔法”(Alpha)在A与B之间执行按通道插值。

Max(最大值)

Max(最大值)表达式接收两个输入,然后输出其中的较大者。

此节点类似于Photoshop的“变亮”。

在以上示例中,A为"0",B为"1";因此,产生的底色为"1"(白色)。

项目

说明

属性

常量A(ConstA)

接收第一个值。

仅当未使用A输入时才使用。

常量B(ConstB)

接收第二个值。

仅当未使用B输入时才使用。

输入

A

接收要比较的第一个值。

B

接收要比较的第二个值。

Min(最小值)

Min(最小值)表达式接收两个输入,然后输出其中的较小者。

此节点类似于Photoshop的“变暗”。

在以上示例中,A为"0",B为"1";因此,产生的底色为"0"(黑色)。

项目

说明

属性

常量A(ConstA)

接收第一个值。

仅当未使用A输入时才使用。

常量B(ConstB)

接收第二个值。

仅当未使用B输入时才使用。

输入

A

接收要比较的第一个值。

B

接收要比较的第二个值。

Multiply(乘)

Multiply(乘)表达式接收两个输入,将其相乘,然后输出结果。

类似于Photoshop的多层混合。

乘法按通道进行,即,第一个输入的R通道将乘以第二个输入的R通道,第一个输入的G通道将乘以第二个输入的G通道,依此类推。

除非其中一个值是单个浮点值,否则两个输入必须具有相同数目的值。

项目

说明

属性

常量A(ConstA)

接收第一个要相乘的值。

仅当未使用A输入时才使用。

常量B(ConstB)

接收第二个要相乘的值。

仅当未使用B输入时才使用。

输入

A

接收第一个要相乘的值。

B

接收第二个要相乘的值。

请注意,UE4中的材质不限于[0,1]。

如果颜色/值大于1,那么Multiply(乘)实际上会使颜色变亮。

示例:

对0.4和0.5执行Multiply(乘)的结果是0.2;对(0.2,-0.4,0.6)和(0.0,2.0,1.0)执行Multiply(乘)的结果是(0.0,-0.8,0.6);对(0.2,-0.4,0.6)和0.5执行Multiply(乘)的结果是(0.1,-0.2,0.3)。

用法示例:

Multiply(乘)通常用来使颜色/纹理变亮或变暗。

Normalize(规范化)

Normalize(规范化)表达式计算并输出其输入的规范化值。

这表示该输入的每个分量都会除以矢量的L-2范数(长度)。

不必对连接到“法线”(Normal)材质输出的表达式进行规范化。

OneMinus(一减)

OneMinus(一减)表达式接收一个输入值,并输出“一减去该值”。

此运算按通道执行。

示例:

对0.4执行OneMinus(一减)的结果是0.6;对(0.2,0.5,1.0)执行OneMinus(一减)的结果是(0.8,0.5,0.0);对(0.0,-0.4,1.6)执行OneMinus(一减)的结果是(1.0,1.4,-0.6)。

用法示例:

当输入颜色在[0,1]范围内时,OneMinus(一减)的作用就是通常所谓的“反色”--即,OneMinus(一减)将返回互补色,这种颜色与输入相加将产生白色。

Power(幂)

Power(幂)表达式接收两个输入,计算“底数”(Base)的“指数”(Exp)次幂,并输出结果;换而言之,“底数”(Base)自乘“指数”(Exp)次。

项目

说明

属性

常量指数(ConstExponent)

接收指数值。

仅当未使用“指数”(Exp)输入时才使用。

输入

底数(Base)

接收底数值。

指数(Exp)

接收指数值。

示例:

底数为0.5,指数为2.0时,Power(幂)的结果为0.25。

用法示例:

如果传递到Power(幂)的颜色在[0,1]范围内,那么Power(幂)可以用作对比度调整,即,仅保留较亮的值。

Sine(正弦)

Sine(正弦)表达式反复输出[0,1]范围内的正弦波值。

最常见的情况是,通过将 Time(时间) 表达式连接至它的输入,输出连续的振荡波形。

输出值将在-1与1之间来回循环。

此表达式与 Cosine(余弦) 表达式输出之间的差别是,输出波形偏移半个周期。

下图显示波的视觉表示:

项目

说明

属性

周期(Period)

指定产生的波的周期。

换而言之,这是发生一次振荡的长度。

用法示例:

在任何需要振荡效果的场合,此表达式都非常有用。

通过将时间输入(速度)或输出(振幅)倍增,可以轻松地动态控制振荡的速度和振幅。

SquareRoot(平方根)

SquareRoot(平方根)表达式输出输入值的平方根。

SquareRoot(平方根)只能对单个浮点输入值执行运算。

Subtract(减)

Subtract(减)节点接收两个输入,从第一个输入中减去第二个输入,然后输出它们的差。

减法按通道进行,即,第一个输入的R通道将减去第二个输入的R通道,第一个输入的G通道将减去第二个输入的G通道,依此类推。

除非第二个输入是单个常量值,否则两个输入必须具有相同数目的通道。

常量可以从具有任意数目输入的矢量中减去。

项目

说明

属性

常量A(ConstA)

接收被减数的值。

仅当未使用A输入时才使用。

常量B(ConstB)

接收减数的值。

仅当未使用B输入时才使用。

输入

A

接收被减数的值。

B

接收减数的值。

示例:

对0.5和0.2执行Subtract(减)的结果是0.3;对(0.2,-0.4,0.6)和(0.1,0.1,1.0)执行Subtract(减)的结果是(0.1,-0.5,-0.4);对(0.2,0.4,1.0)和0.2执行Subtract(减)的结果是(0.0,0.2,0.8)。

用法示例:

Subtract(减)可用来使颜色变暗以及使UV偏移。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1