Choose your operating system:
Windows
macOS
Linux
我们对场景中的材质应用了一些特殊技术,展示出一副栩栩如生的绘画。有两个示例十分重要:一个是树冠上可见的"漂浮笔刷笔划"效果,另一个是固定朝向玩家的2D风格植被。
大多数为此场景创建的材质实际上都通过一个材质实例常量应用。你可以借此快速进行属性调整和修改,无需等候材质完成重编译。
漂浮笔刷笔划叶片
要查看此材质网络,请在 内容浏览器 中找到并打开(双击)M_Tree_Leaf_Base_Solid 材质。
场景中树冠周围是漂浮的绘制笔划,呈现出叶片的感觉。如需实现这种效果,需要结合遮罩材质(Masked Material)和临时抗锯齿(Temporal Anti-Aliasing)。
网络的重要部分是DitherTemporalAA材质函数。此函数将创建一个随时间移动的点(点画)图案。用作被遮罩材质上不透明遮罩的一部分时,它们可使遮罩的效果不至于过于粗糙,呈现柔和的效果。
以下是树使用和未使用DitherTemporalAA节点的对比:
但需要注意的是此技术需要使用 临时抗锯齿(TemporalAA),而这项引擎功能为 默认启用。它可以通过位于 杂项(Misc) 类目中的 AA法(AA Method),在后期处理体积中覆盖。
植被材质
要查看此材质网络,请在 内容浏览器 中找到并打开(双击)M_Grass_Masked Material 材质。
地貌上分散着一系列植被,虽然它们是扁平的,但却固定朝向玩家。此行为通过世界位置偏移材质(World Position Offset Material)输入在材质中定义。此输入允许通过材质中的向量运算对网格体顶点进行编辑。可以调整对象的形状、大小,或者在此示例中将其几何体旋转朝向相机。
可在 Face camera on 1 axis comment block 中找到处理这一部分的表达式。
点击查看大图
在此网络中,自定义表达式节点十分重要,此节点允许针对其输入编写HLSL代码。当前它执行以下数学表达式:
float2 output;
float2 Input1;
output = atan2 (In.y,In.x);
return (output);
这个表达式十分实用,但使用时须小心谨慎。自定义节点将阻止材质网络被折叠,这是一个内部优化过程。实际上,它会稍微降低此材质的性能。