使用自发光材质输入

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

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 纹理,那么表示你可能忘记在项目中包含 初学者内容包。 要找到此内容,你可以创建另一个项目,确保包含"初学者内容包",然后使用迁移工具 将纹理从该项目复制到你的项目中。

  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.6 版及更高版本中可用。

在虚幻引擎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)"设置。

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback