径向动态模糊

简要介绍径向动态模糊的设置。

Windows
MacOS
Linux
前置主题

此页面假定您已掌握以下主题的前置知识。请在继续之前先阅读它们。

本页面的内容

PerBoneMotionBlurTopicImage-1.png

虚幻引擎4(UE4)支持的标准 动态模糊 假设对象表面上的点在帧间保持直线移动,然后利用其在上一帧所处位置的信息来应用模糊效果。此设置适用于从一个位置将对象移至另一位置。但在应用于单帧内旋转180度的对象时,例如飞速旋转的汽车车轮,此方法会产生视觉误差。在本例中,动态模糊朝向于车轮一侧的点,然后假设其以直线运动至车轮另一侧,而非圆周运动。

为了协助解决此问题,我们开发了特殊 径向动态模糊 材质,使对象仿佛在快速旋转,接着应用相应的模糊效果,以获得更准确的结果。在下列范例图像中,可以看到在旋转对象上使用标准动态模糊的结果(左侧)与使用径向动态模糊材质的结果(右侧)的对比。

MotionBlurError.png

本教程将对在对象上设置径向动态模糊材质的过程进行讲解。

必要设置

为讲解本指南,我们将使用 内容示例 样本项目中的资源。若尚无此样本项目,请在启动器的 学习(Learn) 选项卡下载并安装。

点击查看全图。

我们将在 Materials_Advanced 贴图中构建示例,其中已设置径向动态模糊的工作范例。而要在自己的项目中使用径向动态模糊材质,只需在 内容浏览器 中选择并点击 MI_RadialMotionBlur 材质实例,然后在 资源操作(Asset Actions) 下选择 迁移资源(Migrate Assets) 选项。

点击查看大图。

迁移资源工具将自动在迁移中包括MI_RadialMotionBlur和基础径向运动模糊(RadialMotionBlur)材质。欲了解本主题更多信息,参见迁移资源 相关指南。

步骤

  1. 确保关闭UE4编辑器。在项目文件夹中,打开 Config 文件夹并找到 DefaultEngine.ini

    点击查看大图。

  2. 用文本编辑器打开 DefaultEngine.ini,然后在 [/Script/Engine.RendererSettings] 段添加 r.CustomDepth=3

    RadialMotionBlur_iniSettings.png

  3. 接着,需要两个 网格体:要应用径向动态模糊的网格体,以及将其覆盖的"虚拟"网格体。虚拟网格体不仅要覆盖将被模糊的对象,还要完全覆盖其旋转时掠过的空间,其应尽量紧密包裹掠过的空间,而不与原始对象的几何体相交。

    点击查看大图。

    在上述示例图像中,要应用模糊效果的网格体应用了标准材质,而"仿真"网格体是一个环绕它的凸包,用黄色线框显示。注意,它与静态网格体紧密贴合,且不穿透静态网格体。可以决定使用自己的网格体,但出于本指南的目的,将使用资源 SM_WheelSM_Wheel_Blur,可在 Content/ExampleContent/Materials/Meshes 下的内容示例项目中找到它们。

    点击查看大图。

  4. SM_Wheel 拖入场景来新建 StaticMeshActor

    点击查看全图。

  5. 在此 StaticMeshActor 的 细节面板(Details Panel) 中,点击 蓝图/添加脚本(Blueprint/Add Script) 以基于此Actor新建蓝图。将其命名为 BP_StaticMesh_MotionBlur,并保存到 Content/Blueprints 文件夹。此Actor将转换为新的蓝图Actor类型,同时自动打开 蓝图编辑器

    点击查看全图。

  6. 蓝图编辑器 中,找到 组件面板(Components Panel) 并选择网格体的 静态网格体组件(StaticMeshComponent)。然后,在 细节面板(Details Panel) 中,找到 渲染(Rendering) 下的 高级(Advanced) 部分。将 渲染自定义深度通道(Render Custom Depth Pass) 设为True,然后将 自定义深度模具值(Custom Depth Stencil Value) 设为5。

    点击查看全图。

  7. 组件面板(Components Panel) 中,点击 添加组件(Add Component) 按钮。在下拉列表中选择 静态网格体(Static Mesh) 以添加新的静态网格体组件(StaticMeshComponent)作为基础网格体的子级。将此网格体重命名为"MotionBlur Mesh"。

    MotionBlur_AddMotionBlurMesh.png

  8. 细节面板(Details Panel) 中,将运动模糊路(MotionBlur)网格体的静态网格体设为 SM_Wheel_Blur。将其旋转以适应基础网格体,并确保其已应用 MI_RadialMotionBlur 材质。

    点击查看大图。

结果

应用 MI_RadialMotionBlur 材质实例后,基础网格体现会仿佛在快速旋转。下图中展示的是普通静态网格体(左侧),与之相对的是一个将径向运动模糊(RadialMotionBlur)应用于虚拟网格体(围绕基础网格体)的网格体(右侧)。

MotionBlur_FinalResult.png

注意:无需旋转基础网格体或Actor即可获得此效果。相反,径向运动模糊材质自身将创造对象在旋转的假象。可使用 MI_RadialMotionBlur 材质实例中的 角度(Angle)边缘半径(RimRadius) 参数来调整此效果的表现。

PerBoneMotionBlur_MISettings.jpg

在以下两个图像序列中,展示了调整 角度(Angle)边缘半径(RimRadius) 材质输入值后,径向模糊的视觉效果所受到的影响。

该角度(Angle)参数用于控制径向模糊的强度。参数越高,对象旋转得越快。

边缘半径参数用于限制径向模糊的对象。应对边缘半径进行设置,以匹配用于径向模糊的网格体半径。

可使用此新建Actor类型来创建使用径向动态模糊效果的所有对象。变更同时用于基础网格体和虚拟网格体的静态网格体,虚拟网格体同时需使用径向运动模糊材质的材质实例,并确保虚拟网格体在旋转时尽量与基础网格体掠过的区域紧密相匹。

MotionBlur_OtherShapes.png

最后,若要让不同对象使用不同设置,可基于 径向运动模糊 材质新建材质实例,并对其进行相应设置。欲了解创建材质实例方式的更多信息,参见创建和使用材质实例 相关指南。

Select Skin
Light
Dark

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见