使用自发光材质输入

有关在虚幻引擎4的材质编辑器中使用自发光材质输入的操作指南。

Choose your operating system:

Windows

macOS

Linux

在项目开发过程中,可能会需要自发亮材质或发光材质。 在虚幻引擎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. 材质创建好之后,请在 内容浏览器 中使用 鼠标左键 双击 此材质以将其打开。 打开之后,请添加下列材质表达式节点和纹理。

    • 矢量参数 x 2

    • 标量参数 x 2

    • 纹理 - T_Tech_Panel_M

    • 纹理 - T_Tech_Panel_N

    点击查看大图。

    如果你找不到本操作指南中使用的 Tech_Panel 纹理,那么表示你可能忘记在项目中包含 初学者内容包 。 要找到此内容,你可以创建另一个项目,确保包含"初学者内容包",然后使用

    [迁移工具](Basics/AssetsAndPackages/Migrate)
    将纹理从该项目复制到你的项目中。

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

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

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

    • 标量参数 - Roughness - 0.5

    • 标量参数 - Emissive_Strength - 1.0

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

    点击查看大图。

  4. 材质表达式节点现已命名并填写完毕,我们可以开始将所有节点连接到一起。最需要连接正确的节点就是"自发光(Emissive)"输入, 因为没有"自发光(Emissive)"输入,"自发光(Emissive)"就都无法正常工作。完成后,你的材质应该如下所示。

    点击查看大图。

  5. "材质(Material)"现已连接完毕,请通过单击材质编辑器顶部的 应用(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) 然后从"新建关卡(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中,现在可以在材质中使用"自发光(Emissive)"输入来帮助照亮世界场景。要启用此功能,你只需确保为 材质中的"自发光(Emissive)"输入提供输入,然后将材质放在世界场景中的某个对象上。构建光线后,你应该会看到,世界场景中的静态对象现在看起来像是被 材质的"自发光(Emissive)"输入照亮一样。在以下示例中,我们使用黄色自发光光线来照亮测试关卡的黑暗部分。

点击查看大图。

控制自发光对世界场景的影响

使用"自发光(Emissive)"输入照亮世界场景时,你可能会觉得效果太弱或太强。为了解决此问题,创建的任何材质都应该可以调整 投射到世界场景的自发光光线的影响。在前面创建的着色器中,此参数名为 Emissive_Strength 。构建光线时,通过 增大 Emissive_Strength,可以 增加投射到世界场景的光线量。通过 缩小 Emissive_Strength,可以减少投射到世界场景的光线量。在下图中, 你可以看到增大 Emissive_Strength 将如何增加自发光对世界场景的影响。在第一张图片中,Emissive_Strength的值设置为1.0。在第二张图片中,Emissive_Strength 的值设置为10.0,最后在第三张图中,Emissive_Strength的值设置为100.0。

拖动滑条查看Emmisive_Strength更新后的效果。

开启或关闭自发光对世界场景的影响

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

  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) 时的网格体结果。

    不将自发光用于静态光照

    将自发光用于静态光照

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

自发光影响与泛光

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

EM_Bloom_On_PP.png

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

高自发光、高泛光

高自发光、低泛光

间接光照的多次反射

可通过调整 世界场景设置(World Settings) > 全局光照(Lightmass) 中的 天空光照反射次数(Num Sky Lighting Bounces) 设置来支持来自启用了 将自发光用于静态光照(Emissive for Static Lighting) 的网格体的间接光线的多次反射。

LightmassSettings.png

EmissiveMultiBounce.png

由自发光静态光照提供间接光照的多次反射的示例场景。

总结

向任何材质添加自发光光照都是一种系统开销低且非常有效的方法,这样可以模拟光源,而不必添加任何新光源。 但是,请记住,使用自发光光照时,自发光光照不会像普通光源那样照亮动态对象(例如角色)。 另外,如果辉光过强,请记得调整"后期处理体积(Post Process Volume)"的"泛光(Bloom)"设置。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消