使用“自发光”(Emissive)材质输入

在项目开发过程中,可能会需要自发亮材质或发光材质。 在虚幻引擎 4 (UE4) 中,自发亮材质也称为自发光材质。 在以下操作指南中,我们将阐述如何设置材质以使用“自发光”(Emissive)输入,以及如何使用“自发光”(Emissive)输入以实际照亮您所创建的环境。

放射性辉光

放射性辉光(在 UE4 中称为“自发光材质”)为美工提供了一种非常有效而低成本的方法,可在材质实际未投射光线时产生其正在投射光线的错觉。 自发光材质通过允许美工将“自发光”(Emissive)输入的值提高到大于 1.0 来实现此效果,这将使材质进入 HDR 范围, 从而发出您注视非常明亮的光源时可能会看到的高光效果。

照亮与不照亮自发光材质

自发光材质是自发亮材质,这表示它们可以与照亮和不照亮明暗处理模型配合使用。 但是,自发光材质应该尽可能使用不照亮明暗处理模型,因为这将产生渲染成本较低的着色器。 在这两种不同的明暗处理模型之间,渲染自发光的方式并没有视觉上的差别。 所以,应尽可能使用成本较低的不照亮阴影模式。

EM_Shading_Model.png

  • 何时使用照亮明暗处理模型:如果您的自发光材质必须与“底色”(Base Color)输入或“法线贴图”(Normal Map)输入等其他着色器输入结合使用,那么您应该使用 照亮明暗处理模型。例如,您要为光线照射下的枪支创建材质。在这种情况下,您仍想使用照亮明暗处理模型,以使法线贴图和 其他着色器输入仍与关卡中的照明配合工作。

  • 何时使用不照亮明暗处理模型:如果自发光材质不必使用其他着色器输入,那么您应该使用不照亮明暗处理模型。例如,您 要完全使用自发光材质来模拟光源,比如灯光卡或灯泡的表面区域。

创建自发光材质

UE4 中,创建自发光材质与创建任何其他材质没有不同。下一节阐述设置任何材质以使用“自发光”(Emissive)输入所需完成的所有操作。

如果您的项目包含 起步内容,那么您可找到下列各节中使用的所有内容。虽然此处展示的技巧适用于任何纹理,但如果您想采用这些技巧,请确保项目包含 起步内容

  1. 首先,在 内容浏览器右键单击,然后在弹出菜单的 创建基本资产(Create Basic Asset)部分中,选择 材质(Material)。 选择此选项将创建新的 材质,请将其命名为 Emissive_Material

  2. 创建材质之后,请在 内容浏览器 中使用 鼠标左键双击 此材质以将其打开。 打开之后,请添加下列材质表达式节点和纹理。

    • 矢量参数(Vector Parameter)x 2

    • 标量参数(Scalar Parameter)x 2

    • 纹理(Texture)- T_Tech_Panel_M

    • 纹理(Texture)- T_Tech_Panel_N

    EM_Adding_Nodes_&_Textures_To_Material.png

    如果您找不到本操作指南中使用的 Tech_Panel 纹理,那么可能表示您忘记在项目中包括 起步内容。 要查找此内容,您可以创建另一个项目,确保包括“起步内容”,然后使用 迁移工具 将纹理从该项目复制到您的项目中。

  3. 需要的材质表达式节点现已添加完毕,我们可以开始设置材质。首先,需要命名材质表达式节点 并填写数据。以下是我们将要使用的名称和值的列表。

    • 矢量参数 - Base_Color - 1, 1, 1

    • 矢量参数 - Emissive_Color - 1, 0, 0

    • 标量参数 - Roughness - 0.5

    • 标量参数 - Emissive_Strength - 1.0

    完成后,您应该看到类似下图的内容。

    EM_Naming_Nodes.png

  4. 材质表达式节点现已标注并填写完毕,我们可以开始将所有节点连接到一起。确保连线正确的最重要一点就是, 没有“自发光”(Emissive)输入自发光就不工作。完成后,您的材质应该如下所示。

    EM_Completed_Material.png

  5. 材质现已连接完毕,请通过单击材质编辑器顶部的 应用(Apply)保存(Save),确保 编译保存 材质。 完成之后,您可以关闭材质。

    EM_Save_&_Compile.png

  6. 材质现已通过编译并关闭,请在 内容浏览器 中查找该材质,然后 右键单击 该材质并选择 创建材质实例(Create Material Instance)选项以 根据 Emissive_Material 材质建立材质实例。

    EM_Create_New_Material_Instance.png

  7. 材质实例现已创建完毕,请通过 鼠标左键双击 将其打开。打开之后,请查看 参数组(Parameter Groups)部分。 在这部分中,您将找到父材质中公开的所有控制,例如 Emisive_Color 和 Emissive_Strength。

    EM_Emissive_Material_Instance.png

  8. 要更改某个参数,您必须先使用 鼠标左键 单击要启用的参数名称旁边的复选框,以将其启用。 单击之后,该复选框中将出现一个勾选标记,并且名称和输入区域都不再显示为灰色。现在,我们只需输入所要使用的值 并保存材质实例。

用于“自发光”(Emissive)输入的纹理或标量

您可以将纹理、数字或这两者的组合输入到“自发光”(Emissive)输入。实际上,您输入的内容视材质的需要而定。如果自发光材质仅用于模拟光线, 那么应该使用数值,而不是纹理。但是,如果要模拟对象上的光线,那么应使用纹理作为自发光蒙板,因为您可以在蒙板纹理中准确定义 应该照亮的部分。在以上示例中,我们使用的是自发光遮罩,因为我们使用了纹理来定义材质的自发光部分。

创建测试贴图

  1. 在进一步操作之前,我们需要先设置一个小测试间,以便查看作用中的自发光材质。为此,请创建一个新关卡:选择 文件(File)-> 新建关卡(New Level), 然后从新建关卡对话框中选择 默认(Default)选项。

    EM_Create_New_Level.png

    您也可以通过在键盘上按 CRTL + N 来创建新关卡。

  2. 创建关卡后,请找到现有的地板 SM_Template_Map_Floor,将其选中,并在键盘上按 4 次 CRTL + W 以复制 4 次。 复制所有地板之后,进行排列以形成在某一侧敞开的房间,其屋顶有一个小间隙,可产生一些有趣的光照条件。 完成后,您的房间应该如下所示。 EM_Testing_Level.png

  3. 房间完成后,务必在键盘上按 CTRL + S 以保存您的工作。

作用中的自发光材质

  1. 房间设置完成后,可以开始添加一些网格以用于测试。 在 起步内容(Starter Content)文件夹中,有一个标为 形状(Shapes)的文件夹。在该文件夹中,您将找到名为 Shape_Cube 的网格。请使用 鼠标左键 选中 Shape_Cube,然后将此网格从 内容浏览器 拖入关卡,当网格位于关卡视口上方时,释放 鼠标左键。这会将该网格放入关卡。

    EM_Adding_Test_Box.png

  2. 网格现已添加到关卡,您可以开始对其应用自发光材质。为此,请在 内容浏览器 中找到 自发光材质(Emissive Material)文件夹。 找到之后,请使用 鼠标左键 选中 材质实例,然后将该材质实例从 内容浏览器 拖到 Shape_Cube 网格上。

    EM_Applying_Material_Instance.png

  3. 材质实例应用于 Shape_Cube 网格后,请使用 鼠标左键双击 材质实例以将其打开。打开之后,我们可以开始 调整材质实例的参数,以影响自发光的外观。例如,如果我们调整 Emissive_Strength,那么我们可以控制自发光的影响。 以下是将 Emissive_Strength 设置为值 0(左)、1(中)和 25(右)时的情况示例。

    EM_Different_Emissive_Values.png

  4. 您还可以通过更改 Emissive_Color 矢量参数来改变自发光颜色。以下是一些改变自发光颜色的示例。

    EM_Different_Emissive_Color.png

使用自发光材质来照亮环境

此功能仅在虚幻引擎 4.6 版及更高版本中可用。

在虚幻引擎 4 中,可以在材质中使用“自发光”(Emissive)输入来帮助照亮环境。要启用此功能,您只需确保为 材质中的“自发光”(Emissive)输入提供输入,然后将材质放在环境中的某个对象上。构建光线后,您应该会看到,环境中的静态对象现在看起来像是被 材质的“自发光”(Emissive)输入照亮一样。在以下示例中,我们使用黄色自发光光线来照亮测试关卡的黑暗部分。 EM_Emissive_Material_Light.png

控制自发光对环境的影响

使用“自发光”(Emissive)输入照亮环境时,您可能会觉得效果太弱或太强。为了解决此问题,创建的任何材质都应该可以调整 投射到环境的自发光光线的影响。在前面创建的着色器中,此参数名为 Emissive_Strength。构建光线时,通过 增大 Emissive_Strength,可以 增加投射到环境的光线量。通过 减小 Emissive_Strength,可以减少投射到环境的光线量。在下图中, 您可以看到增大 Emissive_Strength 将如何增加自发光对环境的影响。在左侧,Emissive_Strength 的值设置为 1.0。在中间,Emissive_Strength 的值设置为 10.0,而在右侧,Emissive_Strength 的值设置为 100.0。

EM_Emissive_Lighting_World.png

开启或关闭自发光对环境的影响

在某些情况下,您可能希望也可能不希望自发光材质向环境中投射光线。要启用或禁用此功能,请完成下列步骤。

  1. 首先,选择您不希望向环境中投射自发光光线的材质。

  2. 然后,在 细节(Details)面板的 照明(Lighting)部分中,使用 鼠标左键 单击选中 将自发光用于静态照明(Use Emissive for Static Lighting)框。

    EM_Turn_Off_Use_As_SL.png

    默认情况下,对于您放入世界中的所有网格,将自发光用于静态照明(Use Emissive for Static Lighting)都处于禁用状态。您必须将其启用才能使用。

  3. 在下图中,左右分别是禁用和启用 将自发光用于静态照明(Use Emissive for Static Lighting)时的网格结果。 EM_SL_Off_On.png

您需要构建关卡照明才能看到自发光对世界的影响。否则,更改效果不可见。这也意味着,您每次更改自发光材质后,还必须重新构建照明才能看到这些更改的效果。

自发光影响与高光

您可能会注意到,当您提高材质实例内“自发光”(Emissive)输入的强度时,材质自发光部分所产生的高光会越来越亮。 调低高光效果而不调低材质实例内的值的一种方法是,调整 后期处理体积(Post Process Volume)高光(Bloom)设置。

EM_Bloom_On_PP.png

调整这个值有助于在您将自发光值设置得非常大时进行补偿,以将自发光材质的更多静态光线投射到世界中。在下图的左侧,您可看到 当自发光值设置为非常大的数值 (100) 且未相应调整高光(Bloom)时的情况。在右侧的图中,“高光”(Bloom)设置已从 1 调整为 0.1。 这将仍允许自发光将大量静态光线投射到世界中,同时不会抵消高光。

EM_Tweak_PP.png

总结

向任何材质添加放射性辉光是一种低成本而成效的方法,这样可以模拟光源,而不必添加任何新光线。 但是,请记住,使用放射性辉光时,放射性辉光不会像普通光线那样照亮动态对象(例如人物)。 另外,如果辉光过强,请记住调整“后期处理体积”(Post Process Volume)的“高光”(Bloom)设置。