如何创建一个双纹理材质进行顶点颜色绘制

此页面介绍了一个特定实例,讲述如何创建并使用一个双纹理材质,在网格体上进行顶点颜色绘制。

Windows
MacOS
Linux

顶点颜色绘制(Vertex Color Painting)是一个非常强大的工具,它拥有多种使用方式。创建材质进行双向纹理混合 页面中拥有基础解释,讲述如何设置材质将纹理与顶点颜色绘制进行混合。此页面更为详细讲述了此技术的使用情况。 此文档介绍了如何创建一个双纹理材质进行顶点颜色绘制,其将与一个岩石纹理和一个青苔纹理混合。创建此混合材质后,即可使用网格体绘制模式将此纹理绘制到关卡中的任意网格体上。可以在网格体绘制模式面板中调整设置,增加或减少覆盖,让纹理在网格体上呈现多样性。

不带青苔的岩石

带青苔的岩石

步骤

创建材质

  1. 在内容浏览器中点击 新增(Add New) > 材质(Material)

    点击查看大图。

  2. 为新材质命名。在此例中我们使用的是 M_2TextureMoss

    RenameMaterial.png

  3. 双击新材质将其在材质编辑器中打开。

创建并设置TextureSample节点

  1. 首先需要添加一个纹理。在图表中点击右键,然后在搜索栏中输入 texture。在结果列表中选择 TextureSample。如此便会将 TextureSample 节点添加到图表。

    点击查看大图。

  2. 范例中需要4个节点,所以需要复制TextureSample节点并粘贴3次,最后便拥有一共4个TextureSample节点。

    点击查看大图。

  3. 放置节点,让其中两个靠近图表顶部,让两个靠图表底部。这样便于区分,也更直观。

  4. 首先选择 漫反射(Diffuse) 纹理。点击一个上方的TextureSample节点。在左边的 细节(Details) 面板中找到 材质表达式纹理基础(Material Expression Texture Base) 部分。点击 纹理(Texture) 属性的下拉菜单选择一个纹理。在搜索栏中输入 rock_b,在结果中选择 T_Rock_Basalt_D

    点击查看大图。

  5. 点击顶部的另一个TextureSample节点。在细节面板中点击"纹理(Texture)"下拉菜单,然后在搜索栏中输入 grass。在结果中选择 T_Ground_Grass_D。这是第二个漫反射贴图。

    点击查看大图。

  6. 现在需要选择 法线(Normal) 贴图。点击下方的第一个TextureSample节点。在细节面板中点击"纹理(Texture)"下拉菜单并再次输入 rock_b。此时选择 T_Rock_Basalt_N。这个法线贴图与步骤4和步骤5中选择的漫反射贴图相匹配。

    点击查看大图。

  7. 点击最后一个TextureSample节点,在细节面板中点击"纹理(Texture)"下拉菜单并再次输入 grass。在结果中选择 T_Ground_Grass_N

    点击查看大图。

添加顶点颜色和线性插值节点

  1. 现在我们将添加顶点颜色(Vertex Color)节点。在图表中点击右键,然后在搜索栏中输入 vertex。在结果中选择 VertexColor。添加VertexColor节点后,您将注意到它是一个红色的输入数据节点。

    点击查看大图。

  2. VertexColor节点将基于线性插值或 lerp 将两个漫反射贴图组合在一起。右键点击图表并在搜索栏中输入 linear。然后在结果中选择 LinearInterpolate。如此一来将在图表上放置一个 Lerp 节点。

    点击查看大图。

  3. 我们需要两个节点,所以先复制第一个Lerp节点,然后将第二个粘贴到图表上。一个用于漫反射贴图,另一个用于法线贴图,所以要以此来放置Lerp节点的位置。

    点击查看大图。

  4. 在岩石漫反射贴图上拖出 RGB 输出并将其连接到首个Lerp节点上的 A 输出。

    点击查看大图。

  5. 在草地漫反射贴图上拖出 RGB 输出并将其连接到首个Lerp节点上的 B 输出。现在两个漫反射贴图都已连接。

    点击查看大图。

  6. 在岩石法线贴图上,从 RGB 输出连出引线,将其连接到第二个Lerp节点的 A 输入。在草地法线贴图上,从 RGB 输出连出引线并将其连接到第二个Lerp节点上的 B 输入。现在两个法线贴图均已连接。

    点击查看大图。

  7. Lerp节点上的 Alpha 输入是控制岩石和草地纹理混合的变量。VertexColor节点将控制透明度值,因此要从VertexColor节点的顶部输出连出引线,然后连接到漫反射Lerp节点上的Alpha输入,然后再次在法线Lerp节点上执行相同操作。

    点击查看大图。

  8. 现在从漫反射Lerp(Diffuse Lerp)节点的输出连出引线,连接到Material节点上的 底色(Base Color) 输入。从法线Lerp(Normal Lerp)节点的输出连出引线,然后连接到Material节点的 法线(Normal) 输入。

    点击查看大图。

设置剩余的材质属性

  1. 现在我们在Material节点上设置剩余的属性。从Material节点上的 Metallic 输出连出引线,然后在搜索栏中输入 constant。选择 Constant 添加一个常量节点。保留默认值 0

    点击查看大图。

  2. 我们还需要将高光度(Specular)值设为0,所以将Material节点上的 Specular 输入连接到步骤1中设置的同一个Constant节点。

  3. 我们希望将 粗糙度(Roughness) 值设为大于0,因此需要将原始Constant节点复制粘贴来创建另一个节点。再将 Roughness 输入连接到第二个Constant节点。选择此Constant节点,然后在细节面板中将值设为 1

    点击查看大图。

最终结果

现在我们便拥有了用于顶点颜色绘制的材质,在网格体上绘制纹理。在 笔刷(Brush) 部分中调整 强度(Strength) 设置即可改变绘制到网格体上的青苔纹理的量。可根据大型部分或小细节的绘制来上下调整 半径(Radius) 设置。而调整 衰减(Falloff) 设置即可创建纹理的硬边,或使其逐渐淡化。

RockAfterVertexPaint.png

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