《UE4材质函数帮助文档汇总.doc》由会员分享,可在线阅读,更多相关《UE4材质函数帮助文档汇总.doc(25页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、材质函数表达式 FunctionInput(函数输入)FunctionInput(函数输入)表达式只能放在材质函数中,用于在该函数中定义该函数的某 个输入。项目说明 属性 输入名称(Input Name)输入的名称,此名称将显示在使用了包含该输入的材质函数的 MaterialFunctionCall(材质函数调用)表达式中。 说明(Description)这是对输入的说明,当用户将鼠标指针悬停在 MaterialFunctionCall(材质函数调用)表达式中此输入的连接器上方时,此说明将显示为 “工具提示”。 输入类型(Input Type)此输入所需的数据类型。传递到此输入的数据将强制转换
2、为此 类型,如果因为数据不兼容而导致强制转换失败,那么将抛出编译器错误。 预览值(Preview Value)这是编辑包含此输入的材质函数时,要用作此输入的预览的值。使用预览值作为默认值(Use Preview Value As Default)如果启用此项目,并且未传入任何 数据,那么将使用 预览值 作为此输入的默认值。 排序优先顺序(Sort Priority)指定确定 MaterialFunctionCall(材质函数调用)表达式中 显示各个输入的顺序时,对于此输入要使用的优先顺序。 此节点与材质函数 配合使用。FunctionOutput(函数输出)FunctionOutput(函数输
3、出)表达式只能放在材质函数中,用于在该函数中定义该函数的某 个输出。项目说明 属性 输出名称(Output Name) 输出的名称,此名称将显示在使用了包含该输出的材质函数的 MaterialFunctionCall(材质函数调用)表达式中。 说明(Description)这是对输出的说明,当用户将鼠标指针悬停在 MaterialFunctionCall(材质函数调用)表达式中此输出的连接器上方时,此说明将显示为 “工具提示”。 排序优先顺序(Sort Priority)指定确定 MaterialFunctionCall(材质函数调用)表达式中 显示各个输出的顺序时,对于此输出要使用的优先顺序
4、。 此节点与材质函数 配合使用。MaterialFunctionCall(材质函数调用)MaterialFunctionCall(材质函数调用)表达式允许您使用来自另一材质或函数的外部 材质 函数 。这个外部函数的输入及输出节点将变成函数调用节点的输入和输出。如果放置其中 某个表达式时在 内容浏览器 中选中了某个材质函数,那么将自动指派该函数。快捷键:F + 鼠标左键单击项目说明 属性 材质函数(Material Function) 指定要使用的 材质函数 。 此节点与材质函数 配合使用。StaticBool(静态布尔值)StaticBool(静态布尔值)表达式用来为函数内的静态布尔函数输入提
5、供默认布尔值。此节 点不会在任何内容之间切换,因此必须与 StaticSwitch(静态开关)节点配合使用。项目说明 属性 值(Value) 布尔值 True(选中)或 False。 此节点与材质函数 配合使用。StaticSwitch(静态开关)StaticSwitch(静态开关)表达式的工作方式与 StaticSwitchParameter(静态开关参数)类 似,但是它仅实现开关,而不会创建参数。项目说明 属性 默认值(Default Value)参数的默认布尔值(用于确定哪个输入处于活动状态),即 True(选中)或 False。 输入 True当开关的 值(Value)为 True 时
6、使用的输入。 False当开关的 值(Value)为 False 时使用的输入。 值(Value) 接收一个布尔值,用于确定哪个输入处于活动状态。 此节点与材质函数 配合使用。TextureObject(纹理对象)TextureObject(纹理对象)表达式用来为函数内的纹理函数输入提供默认纹理。此节点不 会对该纹理进行实际取样,因此必须与“纹理取样”(TextureSample)节点配合使用。项目说明 属性 纹理(Texture)内容浏览器 中要应用于此节点的纹理。 取样类型(Sampler Type) 此节点所要输出的数据类型。材质属性表达式BreakMaterialAttributes(
7、中断材(中断材质质属性)属性)在使用 分层材质 (“材质功能”系统的一项特性)时,BreakMaterialAttributes(中(中断材断材质质属性)属性)表达式十分理想。在材质中使用 材材质层质层功能功能 时,您可能想只使用材质层的某一个方面。例如,您可能有一个定义漂亮的一般材质(如钢铁)的材质层。您可能希望在最终材质中仅使用该材质层的“粗糙度”和“底色”属性,而不是使用整个材质层。在此类情况下,您可使用 BreakMaterialAttributes(中断材质属性)节点对材质层的所有传入属性进行拆分,然后仅连接所需的属性。这也使您能够对各种材质属性进行复杂混合。MakeMaterial
8、Attributes(建立材(建立材质质属性)属性)MakeMaterialAttributes(建立材(建立材质质属性)属性)节点的作用与 BreakMaterialAttributes(中断材质属性)节点正好相反。此节点将各属性汇聚到一起,而不是拆分属性。这在您创建自己的 材质层 功能时非常有用,因为您将能够访问所有的标准属性以用于输出。此节点也可用于复杂材质设置,在这些设置中,您希望定义多种类型的材质,并将它们全部混合到一个材质中。在将 MakeMaterialAttributes(建立材质属性)节点连接到材质时,您需要确保将主材质节点的 使用材使用材质质属性(属性(Use Materi
9、al Attributes)属性设置为 True(选中)。这会将主节点折叠成单个输入,该输入将接受来自 MakeMaterialAttributes(建立材质属性)节点的传入输出。数学表达式Abs(绝对值绝对值)Abs(绝对值绝对值)是数学术语“绝对值(absolute value)”的缩写。Abs(绝对值)表达式输出其接收到的输入的绝对值(无符号值)。基本上,这意味着它通过删除减号将负数转换为正数,而正数和零将保持不变。示例:示例:-0.7 的 Abs(绝对值)为 0.7;-1.0 的 Abs(绝对值)为 1.0;1.0 的 Abs(绝对值)也是 1.0用法示例:用法示例:Abs(绝对值)一
10、般与 DotProduct(标量积) 配合使用。DotProduct(标量积)的结果是 -1.0.1,对 DotProduct(标量积)的结果执行 Abs(绝对值)的结果将是 1.0.1。Add(加)(加)Add(加)(加)表达式接收两个输入,将其相加,然后输出结果。这个加法运算按通道执行,这意味着输入的 R 通道、G 通道和 B 通道等等将分别相加。两个输入必须具有相同数目的通道,除非其中之一是单个常量值。常量可以添加到具有任意数目输入的矢量。项项目目说说明明属性属性常量常量 A(Const A)接收被加数的值。仅当未使用 A 输入时才使用。常量常量 B(Const B)接收加数的值。仅当未
11、使用 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(追加矢量)(追加矢量)表达式允许您将通道组合在一起,以创建通道数比原始矢量更多的
12、矢量。例如,您可以使用两个 常量 值并进行追加,以建立双通道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(小数
13、) 。示例:示例:对 0.2 执行 Ceil(加一取整)的结果是 1.0;对 (0.2,1.6) 执行 Ceil(加一取整)的结果是 (1.0,2.0)。Clamp(限制)(限制)Clamp(限制)(限制)表达式接收值,并将它们约束到由最小值和最大值定义的指定范围。最小值 0.0 和最大值 0.5 意味着结果值决不会小于 0.0,并且决不会大于 0.5。项项目目说说明明属性属性限制模式(限制模式(Clamp Mode)选择要使用的限制类型。CMODE_Clamp 将对范围的两端进行限制。CMODE_ClampMin 和 CMODE_ClampMax 将仅对范围的相应端进行限制。默默认认最小最小
14、值值(Min Default)接收限制时用作最小值的值。仅当未使用“最小值”(Min)输入时才使用。默默认认最大最大值值(Max Default)接收限制时用作最大值的值。仅当未使用“最大值”(Max)输入时才使用。输输入入最小最小值值(Min)接收限制时用作最小值的值。最大最大值值(Max)接收限制时用作最大值的值。示例:示例:在最小值为 0.0 且最大值为 1.0 的情况下对 0.3 进行限制将产生 0.3;在最小值为 0.0 且最大值为 1.0 的情况下对 1.3 进行限制将产生 1.0;ComponentMask(分量蒙版)(分量蒙版)ComponentMask(分量蒙版)(分量蒙版)
15、表达式允许从输入中选择通道(R、G、B 和/或 A)的特定子集以传递到输出。尝试传递输入中不存在的通道将导致错误,除非输入是单个常量值。在这种情况下,会将单个值传递到每个通道。选择传递的当前通道将显示在表达式的标题栏中。项项目目说说明明属性属性R如果选中此项目,那么会将输入值的红色通道(第一个通道)传递到输出。G如果选中此项目,那么会将输入值的绿色通道(第二个通道)传递到输出。B如果选中此项目,那么会将输入值的蓝色通道(第三个通道)传递到输出。A如果选中此项目,那么会将输入值的阿尔法通道(第四个通道)传递到输出。示例:示例:如果 ComponentMask(分量蒙版)的输入为 (0.2,0.8
16、,1.4) 并选中 R 和 B 通道,那么将输出 (0.2,1.4)。Cosine(余弦)(余弦)Cosine(余弦)(余弦)表达式反复输出 0, 1 范围内的余弦波值。最常见的情况是,通过将 Time(时间) 表达式连接至它的输入,输出连续的振荡波形。输出值将在 -1 与 1 之间来回循环。下图显示波的视觉表示:项项目目说说明明属性属性周期(周期(Period)指定产生的波的周期。换而言之,这是发生一次振荡的长度。用法示例:用法示例:在任何需要振荡效果的场合,此表达式都非常有用。通过将时间输入(速度)或输出(振幅)倍增,可以轻松地动态控制振荡的速度和振幅。在以上示例中,颜色将以余弦频率振荡。
17、CrossProduct(矢量(矢量积积)CrossProduct(矢量(矢量积积)表达式计算两个三通道矢量值输入的矢量积,并输出所产生的三通道矢量值。给定空间中的两个矢量,矢量积是与两个输入都垂直的矢量。项项目目说说明明输输入入A接收三通道矢量值。B接收三通道矢量值。用法示例:用法示例:CrossProduct(矢量积)通常用来计算与另外两个方向都垂直的方向。Divide(除)(除)Divide(除)(除)表达式接收两个输入,并输出第一个输入除以第二个输入的结果。除法按通道进行,即,第一个输入的 R 通道将除以第二个输入的 R 通道,第一个输入的 G 通道将除以第二个输入的 G 通道,依此类
18、推。除非除数是单个浮点值,否则两个输入必须具有相同数目的值。切勿以零作除数。项项目目说说明明属性属性常量常量 A(Const A)接收被除数的值。仅当未使用 A 输入时才使用。常量常量 B(Const B)接收除数的值。仅当未使用 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(标标量量积积)表达式计算标量积,即一个矢量投射到另一个矢量上的长度。许多技术使用此计算来计算衰减。Do
19、tProduct(标量积)要求两个矢量输入具有相同数目的通道。项项目目说说明明输输入入A接收一个值,或接收任意长度的矢量。B接收一个值,或接收任意长度的矢量。Floor(减一取整)(减一取整)Floor(减一取整)表达式接收值,使其 向下向下 舍入到上一个整数,并输出结果。另请参阅 Ceil(加一取整) 和 Frac(小数) 。示例:示例:对 0.2 执行 Floor(减一取整)的结果是 0.0;对 (0.2,1.6) 执行 Floor(减一取整)的结果是 (0.0,1.0)。FMod(浮点余数)(浮点余数)FMod(浮点余数)(浮点余数)表达式返回对两个输入执行除法运算的浮点余数。在此示例中
20、,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(如果)(如果)表达式对两个输
21、入进行比较,然后根据比较结果传递另外三个输入值中的一个。所比较的两个输入必须都是单个浮点值。项项目目说说明明输输入入A接收单个浮点值。B接收单个浮点值。A B接收 A 的值大于 B 的值时要输出的值。A = B接收 A 的值等于 B 的值时要输出的值。A B接收 A 的值小于 B 的值时要输出的值。在此示例中,If(如果)表达式接收高度贴图,并根据高度是低于还是高于值 0.2 来输出红色或绿色。LinearInterpolate(线线性插性插值值)LinearInterpolate(线线性插性插值值)表达式根据用作蒙版的第三个输入值,在两个输入值之间进行混合。您可以将其想像成用于定义两个纹理之
22、间的过渡效果的蒙版,例如 Photoshop 中的层蒙版。蒙版“阿尔法”(Alpha)的强度确定从两个输入值获取颜色的比例。如果“阿尔法”(Alpha)为 0.0/黑色,那么将使用第一个输入。如果“阿尔法”(Alpha)为 1.0/白色,那么将使用第二个输入。如果“阿尔法”(Alpha)为灰色(介于 0.0 与 1.0 之间的值),那么输出是两个输入之间的混合。请记住,混合按通道进行。因此,如果“阿尔法”(Alpha)为 RGB 颜色,那么“阿尔法”(Alpha)的红色通道值定义 A 与 B 的红色通道之间的混合,而与“阿尔法”(Alpha)的绿色通道 无关无关,该通道定义 A 与 B 的绿色
23、通道之间的混合。项项目目说说明明属性属性常量常量 A(Const A)映射到黑色 (0.0) 的值。仅当未连接 A 输入时才使用。常量常量 B(Const B)映射到白色 (1.0) 的值。仅当未连接 B 输入时才使用。常量阿常量阿尔尔法(法(Const Alpha)接收要用作蒙版阿尔法的值。仅当未连接“阿尔法”(Alpha)输入时才使用。输输入入项项目目说说明明A接收映射到黑色 (0.0) 的值。B接收映射到白色 (1.0) 的值。阿阿尔尔法(法(Alpha)接收要用作蒙版阿尔法的值。程序程序员员需知:需知:LinearInterpolate(线性插值)根据参数值“阿尔法”(Alpha)在
24、A 与 B 之间执行按通道插值。Max(最大(最大值值)Max(最大(最大值值)表达式接收两个输入,然后输出其中的较大者。此节点类似于 Photoshop 的“变亮”。在以上示例中,A 为 “0“,B 为 “1“;因此,产生的底色为 “1“(白色)。项项目目说说明明属性属性常量常量 A(Const A)接收第一个值。仅当未使用 A 输入时才使用。常量常量 B(Const B)接收第二个值。仅当未使用 B 输入时才使用。输输入入A接收要比较的第一个值。B接收要比较的第二个值。Min(最小(最小值值)Min(最小(最小值值)表达式接收两个输入,然后输出其中的较小者。此节点类似于 Photoshop
25、 的“变暗”。在以上示例中,A 为 “0“,B 为 “1“;因此,产生的底色为 “0“(黑色)。项项目目说说明明属性属性常量常量 A(Const A)接收第一个值。仅当未使用 A 输入时才使用。常量常量 B(Const B)接收第二个值。仅当未使用 B 输入时才使用。输输入入A接收要比较的第一个值。B接收要比较的第二个值。Multiply(乘)(乘)Multiply(乘)(乘)表达式接收两个输入,将其相乘,然后输出结果。类似于 Photoshop 的多层混合。乘法按通道进行,即,第一个输入的 R 通道将乘以第二个输入的 R 通道,第一个输入的 G 通道将乘以第二个输入的 G 通道,依此类推。除
26、非其中一个值是单个浮点值,否则两个输入必须具有相同数目的值。项项目目说说明明属性属性常量常量 A(Const A)接收第一个要相乘的值。仅当未使用 A 输入时才使用。项项目目说说明明常量常量 B(Const B)接收第二个要相乘的值。仅当未使用 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
27、(乘)的结果是 (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(一减)(一减)表达式接收一个输入值,并输出“一减去该值”。此运算按通道执行。示例:示例
28、:对 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)自乘“
29、指数”(Exp)次。项项目目说说明明属性属性常量指数(常量指数(Const Exponent)接收指数值。仅当未使用“指数”(Exp)输入时才使用。输输入入底数(底数(Base)接收底数值。指数(指数(Exp)接收指数值。示例:示例:底数为 0.5,指数为 2.0 时,Power(幂)的结果为 0.25。用法示例:用法示例:如果传递到 Power(幂)的颜色在 0,1 范围内,那么 Power(幂)可以用作对比度调整,即,仅保留较亮的值。Sine(正弦)(正弦)Sine(正弦)(正弦)表达式反复输出 0, 1 范围内的正弦波值。最常见的情况是,通过将Time(时间) 表达式连接至它的输入,输出
30、连续的振荡波形。输出值将在 -1 与 1 之间来回循环。此表达式与 Cosine(余弦) 表达式输出之间的差别是,输出波形偏移半个周期。下图显示波的视觉表示:项项目目说说明明属性属性周期(周期(Period)指定产生的波的周期。换而言之,这是发生一次振荡的长度。用法示例:用法示例:在任何需要振荡效果的场合,此表达式都非常有用。通过将时间输入(速度)或输出(振幅)倍增,可以轻松地动态控制振荡的速度和振幅。SquareRoot(平方根)(平方根)SquareRoot(平方根)(平方根)表达式输出输入值的平方根。SquareRoot(平方根)只能对单个浮点输入值执行运算。Subtract(减)(减)
31、Subtract(减)(减)节点接收两个输入,从第一个输入中减去第二个输入,然后输出它们的差。减法按通道进行,即,第一个输入的 R 通道将减去第二个输入的 R 通道,第一个输入的 G 通道将减去第二个输入的 G 通道,依此类推。除非第二个输入是单个常量值,否则两个输入必须具有相同数目的通道。常量可以从具有任意数目输入的矢量中减去。项项目目说说明明属性属性常量常量 A(Const A)接收被减数的值。仅当未使用 A 输入时才使用。常量常量 B(Const B)接收减数的值。仅当未使用 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 偏移。
限制150内