在材质中使用次表面轮廓

设置材质以使用次表面轮廓,这样可以提供更好的方法来渲染皮肤及蜡状表面。

Choose your operating system:

Windows

macOS

Linux

渲染逼真人体皮肤的能力,对于任何现代电子游戏引擎来说都不可或缺。为了满足此需求,虚幻引擎4(UE4)现在提供了一种专门用于皮肤或蜡状表面的明暗处理方法,称为 次表面轮廓 。 次表面轮廓明暗处理模型有与 次表面 明暗处理模型类似的属性,其关键区别在于渲染方式有所不同。 次表面轮廓使用基于屏幕空间的渲染方法,因为这有助于更好地显示人体皮肤上的微妙次表面效果,而反向散射是仅在少数情况(例如,耳朵)下才会出现的次级效果。 以下文档将阐述什么是次表面轮廓以及如何在工作中使用它们。

使材质能够使用次表面轮廓

你可通过下列步骤使材质能够使用次表面轮廓。

  1. 首先,在 内容浏览器 右键单击 ,然后从 创建基本资源(Create Basic Asset) 列表中选择"材质(Material)",创建新材质。 创建之后,务必对该材质进行命名。在本示例中,我们已将此材质命名为 MAT_Subsurface_Profile_00 。 完成后,你的 内容浏览器 应该如下所示。

    SSP_Create_New_Material.png

  2. 接着,在 内容浏览器 中,使用 鼠标左键 双击 该材质以将其打开。

  3. 材质现已打开,我们需要将其 明暗处理模型(Shading Model) 默认点亮(Default Lit) 更改为 次表面轮廓(Subsurface Profile)

  4. 现在,你可以通过在 细节(Details) 面板的 次表面轮廓(Subsurface Profile) 部分中输入,指定一个 次表面轮廓

    SSP_Apply_SSP.png

  5. 现在,此材质已准备好与次表面轮廓配合使用。

创建次表面轮廓

以下是创建次表面轮廓的步骤。

  1. 首先,在 内容浏览器 右键单击 。然后,选择 材质与纹理(Materials & Textures) 选项,并选择 次表面轮廓(Subsurface Profile) 选项。

    2.png

  2. 选择并创建次表面轮廓之后,可以对其进行命名。 在此示例中,我们将这个次表面轮廓命名为 SSP_00 。 完成后,结果如下图所示。

    SSP_Creating_Naming_SSP.png

创建使用次表面轮廓的材质

材质和次表面轮廓现已创建完毕,你可以开始在其中填充数据。 在下列步骤中,我们将创建可以使用次表面轮廓的材质和材质实例。

  1. 我们需要执行的第一项操作是,确保打开上文所创建的次表面材质。如果你已打开该材质,请前进到下一步。 否则,为了打开该材质,请先在 内容浏览器 中找到它,然后通过 鼠标左键 双击 将其打开。 完成后,你在屏幕上应该看到类似下图的内容。

  2. 打开材质后,可以布置一些材质表达式节点。在本教程中,我们将使用下列节点。

    • 矢量参数(Vector Parameter) x 1

    • 标量参数(Scalar Parameter) x 2

    SSP_Material_Nodes.png

  3. 材质表达式节点现已添加到图中,我们现在需要对其进行命名,并在其中填充一些默认值。在此示例中,我们将对节点指定下列名称和默认值。

    属性名称

    Base_Color

    R:1.0 G:1.0 B:1.0

    Roughness

    0.35

    Subsurface_Amount

    0.5

    填写所有内容后,你的着色器图应该如下所示。

    SSP_Named_Value_Nodes.png

  4. 材质表达式节点现已设置完毕,我们现在可以将它们连接到主材质节点。 要将节点连接到主材质节点,请使用 鼠标左键 单击节点 右侧 白色圆圈 。 按住 鼠标左键 拖动,这时会出现连接线。按住 鼠标左键 继续向 拖动,直至到达主材质节点上要使用的输入为止。 当鼠标位于你要使用的输入上时,释放 鼠标左键 以建立连接。

  5. 所有内容现已连接完毕,我们现在可以向材质添加次表面轮廓。 为此,请先在 细节(Details) 面板的 材质(Material) 部分中找到 次表面轮廓(Subsurface Profile) 输入。 然后,使用 鼠标左键 在指示 无(None) 的区域中单击。 执行此操作时,你将看到上述步骤中创建的次表面轮廓,请通过单击选中此轮廓。

    如果你未提供次表面轮廓,那么系统将会使用默认的次表面轮廓。使用的默认次表面轮廓是白种人皮肤的近似表示。

  6. 次表面轮廓已应用,材质表达式已链接至主材质节点,你现在可以编译着色器并准备好根据此材质建立材质实例。 完成材质后,它应该如下所示。

在材质实例中使用次表面轮廓

  1. 材质现已创建并通过编译,你现在可以建立一些材质实例,以便更快地微调参数。 要根据材质来建立材质实例,请先在 内容浏览器 中找到该材质,然后 右键单击 该材质并选择 创建材质实例(Create Material Instance) 选项。 完成后,你的 内容浏览器 应该如下所示。

    SSP_Create_New_Material_Instance.png

  2. 材质实例现已创建完毕,请在 内容浏览器 中使用 鼠标左键 双击 将其打开。打开后,你应该会看到类似下图的内容。

  3. 要更改材质实例中的次表面轮廓,请先确保启用 覆盖次表面轮廓(Override Subsurface Profile) ,然后 通过使用 鼠标左键 单击 次表面轮廓(Subsurface Profile) 输入,提供要使用的次表面轮廓。单击该输入后,你应该会看到可供你选择的次表面轮廓。

    如果你已在主材质中提供次表面轮廓,那么不需要在材质实例中将其覆盖。仅当你希望使用与已使用的次表面轮廓不同的次表面轮廓时,才需要进行覆盖。

应用次表面轮廓材质

  1. 材质实例现已创建完毕,我们可以开始测试新材质。 为此,我们首先需要创建新的空白关卡以便在其中工作,方法如下:打开主菜单,然后从 文件(File) 选项中选择 新建关卡(New Level) 。 当系统提示你选择关卡类型时,请选择 空关卡(Empty Level)

  2. 新关卡已创建完毕,我们现在需要添加一些光源,以便测试次表面材质的外观。我们将要添加的第一个光源是 点光源 。要向场景中添加点光源,我们首先需要找到点光源:它位于 模式(Modes) 菜单的 光源(Lights) 选项下。找到点光源之后,你可添加一个点光源到屏幕,方法如下:首先使用 鼠标左键 选中这个点光源,然后按住 鼠标左键 将其拖到场景中,最后释放 鼠标左键 即完成添加。添加到场景后,请使用 鼠标左键 单击该光源,将其选中。然后,输入下列值。

    属性名称

    位置(Location):

    X:230,Y:-67,Z:79

    强度(Intensity):

    128

    接下来,我们将添加一个 聚光源 。聚光源位于"模式"(Modes)面板的 光源(Lights) 部分中点光源的正下方。你可以像添加点光源一样,将聚光源添加到屏幕。添加聚光源之后,请输入下列值。

    属性名称

    位置(Location):

    X:-320,Y:100,Z:-270

    旋转(Rotation):

    X:0,Y:50,Z:0

    强度(Intensity):

    39764

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

  3. 所有光源现已添加完毕,我们现在可以添加用来执行测试的静态网格体。在本示例中,我们将使用下列网格体。

    StaticMesh'/Game/StarterContent/Props/SM_Chair.SM_Chair'

    如果你找不到SM_Chair网格体,那么可能是因为你未将初学者内容包包括在你的项目中。 要了解更多关于初学者内容包的信息,请参阅 初学者内容包 文档页面。

    找到该网格体后,请将其从 内容浏览器 拖放到关卡中。 放入关卡后,请将其位置设置为环境中的 0,0,0 。 完成后,你的关卡视口应该如下所示。

    SSM_Adding_Meshes.png

  4. 静态网格体现已放入关卡,我们现在可以对其应用次表面材质。 为此,请先在 内容浏览器 中找到次表面材质。 找到该材质后,请将其从 内容浏览器 拖放到网格体上,以应用该材质。

调整次表面轮廓

  1. 将材质实例应用于椅子之后,现在可以调整次表面轮廓设置。 为此,我们首先需要在 内容浏览器 中使用 鼠标左键 双击 该次表面轮廓,以将其打开。 执行此操作时,你应该会看到类似于下图的显示内容。

    SSP_Subsurface_Profile.png

    你可使用 鼠标左键 单击要编辑的属性以显示取色器,从而调整 次表面轮廓 的属性。

    • 散射半径: 执行散射的距离(采用世界空间单位)。

    • 次表面颜色: 次表面颜色可用作次表面效果的遮罩或权重。黑色表示不会发生次表面散射。 白色表示所有光线都进入材质并向四周散射。非灰阶值可以对进入表面的 颜色成分进行更多控制,从而产生外观更加复杂的着色。

    • 衰减颜色(Falloff Color): 衰减颜色用于定义光线进入材质后的材质散射颜色。 如果你希望在看到散射的区域实现更加复杂的着色,那么应该避免在此处使用鲜艳的颜色。

  2. 请记住,你可以实时调整次表面轮廓的参数,如下所示。

提示与技巧

次表面轮廓的渲染方式决定了你需要了解一些提示与技巧,才能充分地加以利用。

散射半径

将次表面轮廓的 散射半径(Scatter Radius) 设置为相当大的数值将导致下图所示的渲染错误。 SSP_Big_Small_Scatter_Radius.png

在左侧的图中,"散射半径"(Scatter Radius)设置为 50。 请注意,这看起来就像是在表面渲染了多幅图像一样。 现在,看一下右图。在此图中,"散射半径"(Scatter Radius)设置为 5.0。 请注意,图像看上去更加柔和更加自然。这就是我们尝试实现的效果类型。

将材质实例与次表面轮廓相结合

将材质实例与次表面轮廓结合使用是一种相当不错的方法,这样就可以 对结果进行最大程度的控制,其原因如下。

  • 材质实例允许你实时地调整值,这样就可以更迅速地看到结果。

  • 你可使用 不透明(Opacity) 输入来限制次表面对表面的影响。但是,建议你保持此值设置为1,并在次表面轮廓内调整参数。仅当你发现单单调整次表面轮廓无法实现所需的结果时,才应调整此值。

  • 每个取色器的 值(Value) 滑块都控制次表面效果的影响范围。这个值设置得越接近白色,效果越显著。这个值设置得越接近黑色,效果就越不明显。

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