Language:
Page Info
Engine Version:
Share

风格化渲染材质

我们对场景中的材质应用了一些特殊技术,将其展现为一副栩栩如生的绘画。有两个范例十分重要:一个是树冠上可见的“漂浮笔刷笔划”效果,另一个是固定朝向玩家的2D风格植物。

为此场景创建的多数材质实际均通过一个材质实例常量 应用。使用者能够借此快速进行属性调整和修改,无需等候材质完成重编译。

漂浮笔刷笔划叶片

TreeTopMaterial.png

要查看此材质网络,请在 内容浏览器 中找到并打开(双击M_Tree_Leaf_Base_Solid 材质。

场景中树冠周围是漂浮的绘制笔划,呈现出叶片的感觉。这种效果由遮罩材质结合临时抗锯齿得出。

网络的重要部分是DitherTemporalAA材质函数。此函数将创建一个随时间移动的点(点画)图案。用作被遮罩材质上不透明遮罩的一部分时,它们可使遮罩的效果不至于过于粗糙,呈现柔和的效果。

以下是树使用和未使用DitherTemporalAA节点的对比:

With DitherTemporalAA

Without DitherTemporalAA

但需要注意的是此技术需要使用 TemporalAA,而这项引擎功能为 默认启用。其可通过 AA法(AA Method) 属性(位于 杂项(Misc) 类目下)在后期处理体积中覆盖。

AAOverride.png

植物材质

FoliageExample.png

要查看此材质网络,请在 内容浏览器 中找到并打开(双击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);

这十分实用,但使用时须小心谨慎。自定义节点将阻止材质网络被重叠,这是一个内部优化进程。实际上,它会轻微降低此材质的性能。