风格化材质
我们对场景中应用的材质采用了一些特殊技术,使得场景看起来像是栩栩如生的油画作品。 两个关键的示例是可在树顶附近看到的"floating brush stroke"(悬浮画刷描画)效果以及总是朝向玩家的2D风格植被。
大多数为此场景创建的材质实际上是通过材质实例常量来进行应用的。 这使得我们可以快速调整属性而无需等待材质的重新编译。
悬浮画刷描画的树叶
如需查看此材质网络,请找到并打开(双击)材质编辑器中的 M_Tree_Leaf_Base_Solid 材质。
场景中树的顶部附近是看上去像树叶的悬浮画刷描画。 这是通过蒙板材质和时间性抗锯齿的组合来实现的。
这个网络的关键部分是DitherTemporalAA材质函数。 这个函数创建出随时间移动的点(点画)样式。 当作为蒙板材质上的不透明蒙板的一部分来使用时,它们可以使得蒙板看起来不太尖锐,让蒙板更柔和。
下面的两张图分别为使用DitherTemporalAA节点和不使用该节点的情况:
使用DitherTemporalAA | 不使用DitherTemporalAA |
但是,我们应该注意,这项技术需要使用 TemporalAA (时间性抗锯齿),这是 默认启用 的引擎功能。 您可以通过 Misc (杂项)分类下的 AA Method (抗锯齿方式)属性在后期处理体积内进行覆盖。
植被材质
如需查看此材质网络,请找到并打开(双击)材质编辑器中的 M_Grass_Masked Material 。
分散于地形上的是一系列植被,尽管为平面,但总是朝向玩家。 这个操作是通过世界位置偏移材质输入来在材质中定义的。 此输入使得可在材质中通过向量操作来编辑网格物体的顶点。 可对物体进行重新调整,重设它们的尺寸,或者在本例中,可以旋转它们的几何体以面向相机。
您可以在 Face camera on 1 axis comment block (将相机朝向单轴的注释区域)中找到处理它的表达式。
点击查看完整尺寸
在此网络中特别重要的是自定义表达式节点,它可以让HLSL代码被写入其输入。 当前,它正在执行下述数学表达式:
float2 output; float2 Input1; output = atan2 (In.y,In.x); return (output);
这个表达式是有效的,但使用时必须小心。 自定义节点使得材质网络不会展开,而这是一种内部的最优化过程。 就实际效果而言,这样做会使得材质的性能表现略微降低。
,