风格化渲染后期处理

虚幻引擎4风格化渲染演示中所使用后期处理效果的概览。

Windows
MacOS
Linux

PostProcessHeader.png

演示的主要功能之一是使用后期处理,其主要用于在场景中的对象周围创建出卡通式轮廓。其也可用于在场景上提供类似于纸质的纹理覆层。还可用于在视图外部创建胶带美术效果。后期处理效果完全在一个单一的后期处理体积中进行处理。该后期处理体积包含后期处理效果的最重要部分:后期处理材质。要使材质成为后期处理效果需要两个步骤,以下我们将进行详细讲解。

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

后期处理材质应该节约使用,仅在真正需要时使用。在可能的情况下,如颜色校正或调整、泛光、景深和各种其他效果,您应该使用后期处理体积中固有的设置,这些设置已经过优化,而且更有效。

为了获得这些参数,您需要根据后期处理材质创建一个材质实例。

如果你是新用户,希望学习后期处理材质的设置教程,请参见Post Process材质文档

自定义后期处理材质

PostStylized.png

此材质分解为一系列的效果。以下是它们的整体介绍:

  • 在对象周围创建轮廓。

  • 只在无环境光遮蔽的区域选择性地进行绘制。

  • 为场景中对象周围线条的整体颜色增添饱和度。

  • 为视图边缘的颜色增添饱和度。

  • 遮挡视图边缘创建胶带美术效果。

  • 创建类似于纸质的纹理覆层。

后期处理材质技术含量颇高,对刚开始在虚幻引擎4中创建材质的新用户而言可能较为困难。此处的讲解重在概述材质的原理和作用,而非具体的步骤说明。

建议打开 M_PostProcess_BaseM_PostProcess_Paper 材质,了解效果每个部分的创建方式。

卡通轮廓

Outline.png

在上图中,我们提取了后期网络中处理轮廓的网络部分,并显示其自身,使效果更加清晰。

此效果可在M_PostProcess_Base材质中看到,主要位于 线条渲染(Line Render) 的部分下。

针对以上各图,如果希望以完整大小查看,建议对每个 点击右键 并选择"另存为"(材质网络仍能在风格化演示中找到)。

场景中对象周围轮廓的处理方式是通过一个SceneTexture表达式对场景深度进行采样。在正负方向上轻微水平和垂直调整UV坐标即可进行偏移。之后结果将被组合,并用于定义轮廓的位置。

然而在线条被实际渲染前,将从环境光遮蔽计算第二个SceneTexture。其用于遮挡掉轮廓。目的是防止部分线框边缘上出现内部线条。可按如下显示:

Before AO Masking

After AO Masking

纸质效果

围绕视图外部的轮廓实际上由两个部分的效果组成。屏幕最远的边缘被转换为一个纸质纹理。此处内部的区域已加重饱和度,以便为屏幕边缘添加更多视觉效果。

这主要的实现方式是使用一个特殊的屏幕对齐纹理。此纹理使用R、G、B通道来保存遮罩。以下是纹理和每个单独的通道。

T_MaskedPaper_Screen_RGB.png

T_MaskedPaper_Screen_R.png

T_MaskedPaper_Screen_G.png

T_MaskedPaper_Screen_B.png

RGB

仅R

仅G

仅B

用绿色通道遮挡掉屏幕边缘并覆盖噪点纸质纹理和颜色后,便会出现场景绘制在一张纸上的效果。

除此之外,纸质纹理被分布到整个视图中,为整个场景赋予一种纸质颗粒效果。

StylizedPaper.png

此系统的核心在于 纸质遮罩(Paper Mask) 评论区。此网络使用上方显示的纹理,但利用了一个 ScreenAlignedUVs 材质函数。其将获取纹理坐标并将其应用到屏幕之上,将纹理有效拉伸到整个屏幕上。用作后期处理材质的部分时,出现的结果是纹理将完美填充视图。

PaperMaskNetwork.png

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback