风格化材质

我们对场景中应用的材质采用了一些特殊技术,使得场景看起来像是栩栩如生的油画作品。 两个关键的示例是可在树顶附近看到的"floating brush stroke"(悬浮画刷描画)效果以及总是朝向玩家的2D风格植被。

大多数为此场景创建的材质实际上是通过材质实例常量 来进行应用的。 这使得我们可以快速调整属性而无需等待材质的重新编译。

悬浮画刷描画的树叶

TreeTopMaterial.png

如需查看此材质网络,请找到并打开(双击)材质编辑器中的 M_Tree_Leaf_Base_Solid 材质。

场景中树的顶部附近是看上去像树叶的悬浮画刷描画。 这是通过蒙板材质和时间性抗锯齿的组合来实现的。

这个网络的关键部分是DitherTemporalAA材质函数。 这个函数创建出随时间移动的点(点画)样式。 当作为蒙板材质上的不透明蒙板的一部分来使用时,它们可以使得蒙板看起来不太尖锐,让蒙板更柔和。

下面的两张图分别为使用DitherTemporalAA节点和不使用该节点的情况:

DitheredStrokes.png NonDitheredStrokes.png
使用DitherTemporalAA 不使用DitherTemporalAA

但是,我们应该注意,这项技术需要使用 TemporalAA (时间性抗锯齿),这是 默认启用 的引擎功能。 您可以通过 Misc (杂项)分类下的 AA Method (抗锯齿方式)属性在后期处理体积内进行覆盖。

AAOverride.png

植被材质

FoliageExample.png

如需查看此材质网络,请找到并打开(双击)材质编辑器中的 M_Grass_Masked Material

分散于地形上的是一系列植被,尽管为平面,但总是朝向玩家。 这个操作是通过世界位置偏移材质输入来在材质中定义的。 此输入使得可在材质中通过向量操作来编辑网格物体的顶点。 可对物体进行重新调整,重设它们的尺寸,或者在本例中,可以旋转它们的几何体以面向相机。

您可以在 Face camera on 1 axis comment block (将相机朝向单轴的注释区域)中找到处理它的表达式。

点击查看完整尺寸

在此网络中特别重要的是自定义表达式节点,它可以让HLSL代码被写入其输入。 当前,它正在执行下述数学表达式:

float2 output; 
float2 Input1; 
output = atan2 (In.y,In.x); 
return (output);

这个表达式是有效的,但使用时必须小心。 自定义节点使得材质网络不会展开,而这是一种内部的最优化过程。 就实际效果而言,这样做会使得材质的性能表现略微降低。