ShaderFX 介绍性的采样工作流

此示例展示了如何创建两个纹理节点并将其融合在一起。

此示例展示了如何:

创建“ShaderFX”着色器

  1. 在场景中的对象上单击 () 并选择“指定新材质”(Assign New Material),然后从“指定新材质”(Assign New Material)窗口中选择 Shaderfx Shader
  2. 单击 ShaderfxShader“属性编辑器”(Attribute Editor)中的 Open ShaderFX 以打开“ShaderFX”编辑器窗口。

    会自动创建以下三个节点:“演示”(Color)“TraditionalGameSurfaceShader”“材质”(Material)。您可以断开“颜色”(Color)节点的连接;下面的工作流不需要它。

创建两个纹理并使用“浮点型”(Float)节点将其融合

  1. 选择 Hw Shader Nodes > Textures > Texture Map 以创建纹理。
  2. Texture Map 属性编辑器中,单击 MyTexture/Path 旁边的浏览按钮,并连接第一个纹理文件。在本示例中,使用的是混凝土纹理。
  3. 重复步骤 1 和 2 创建第二个纹理。在本示例中,使用的是草纹理。

    纹理由 www.cgtextures.com 提供。

  4. 选择 Hw Shader Nodes > Math > Linear Interpolate Mix 来创建 Linear Interpolate Mix 节点,以合并两个纹理。
  5. 选择 Hw Shader Nodes > Values > Float 以创建 Float 节点。
  6. 将第一个纹理贴图 Color 属性添加到 Linear Interpolate Mix 的第一个 Value 属性。
  7. 将第二个纹理贴图 Color 属性添加到 Linear Interpolate Mix 的第二个 Value 属性。
  8. Float 节点的 float 属性连接到 Linear Interpolate Mix Mix 属性。
    Float 节点可用于控制每个纹理对融合结果的影响有多大。例如,如果将该值设置为 0.2,则生成的纹理以混凝土纹理为主。如果将该值设置为 0.8,则生成的纹理以草纹理为主。如果将该值设置为 0.5,则会等量混合两种纹理。
  9. 若要查看结果的样例,请单击 Linear Interpolate 节点顶部的“渲染样例”(Render Swatch)图标
  10. “线性插值混合”(Linear Interpolate Mix)“结果”(Result)属性连接到“TraditionalGameSurfaceShader”节点的“漫反射颜色”(Diffuse Color)属性。现在,可以在 Viewport 2.0 中对着色器进行可视化。

使用“顶点颜色”(Vertex Color)节点融合纹理

  1. 选择 Hw Shader Nodes > Inputs Common > Vertex Color

    您将使用该顶点颜色而非 Float 节点来融合纹理。

  2. 断开 Linear Interpolate Float 节点的连接,然后将 Vertex Color Red 属性连接到 Linear Interpolate Mix Mix 属性。这样便可以使用 Red 通道融合纹理。
  3. 在绘制之前,选择平面。在“polyPlane”节点中,可以将“宽度细分数”(Subdivisions Width)“高度细分数”(Subdivisions Height)增加到 20(20 只是一个示例)。这可将更多顶点添加到平面,以增强绘制的定义。
  4. 选择“网格显示 > 应用颜色”(Mesh Display > Apply Color) > ,并将默认顶点“颜色”(Color)更改为黑色。这样可将默认顶点颜色设定为黑色。
  5. 选择“网格显示 > 颜色集编辑器”(Mesh Display > Color Set Editor)以打开颜色集编辑器,然后检查已创建的颜色集的名称。
  6. “ShaderFX”编辑器中选择“顶点颜色”(Vertex Color)节点,然后在“顶点/颜色集名称”(Vertex / Color Set Name)字段中输入颜色集的名称。
  7. 如果存在多个颜色集,请确保,在“颜色集编辑器”(Color Set Editor)中选择要在绘制前先进行绘制的集。
  8. 选定平面后,选择“网格显示 > 绘制顶点颜色工具”(Mesh Display > Paint Vertex Color Tool) >

    现在将部分顶点绘制为红色。绘制为红色的顶点将显示草纹理。

  9. “绘制顶点颜色工具”(Paint Vertex Color Tool)设置中,将“颜色值”(Color value)更改为红色。
  10. 在平面上进行绘制。绘制为红色的顶点将采用草纹理值。现在,已通过绘制顶点融合纹理。

乘以纹理以在平铺图案中重复它来创建更密集的不同效果

  1. 选择 Hw Shader Nodes > Inputs Common > UV Set 以创建 UV Set 节点。
  2. 选择 Hw Shader Nodes > Math > Multiply 以创建 Multiply 节点。
  3. 选择 Hw Shader Nodes > Values > Float 以创建 Float 节点。
  4. UV Set 节点的“UV”属性连接到 Multiply Value 属性。
  5. Float 节点的 float 属性连接到 Multiply 的其他 Value 属性。
  6. Multiply 节点的 Result 属性连接到 Texture Map (要重复其图案)的“UV”属性。
  7. 选择 Float 节点,然后在“属性编辑器”(Attribute Editor)中更改其 Value。将其设置为较高的值可以使图案重复更频繁、更密集,而设置为较低的值可以使图案不频繁重复。可以预览生成的图案,方法是单击 Texture Map 节点的“渲染样例”(Render Swatch) 图标。