反射示例

ReflectionHeader.png

本页面的内容:

概述

本示例展示了虚幻引擎4的实时反射能力。场景中展示了标志性的地铁车站,其中还包括了许多破败的环境细节,包括多处漏水,肮脏的墙面,损坏的水管等等。 本文中,我们将给出为带来这种特效所使用的技术和特性的高层次纲要。

以下图片分别开启和关闭了此场景中反射的混合以展示这种特效。

images/ReflectionsOnOff.gif

反射环境

环境反射的工作原理是,在场景中的一些位置上获取静态画面并重新投影到简单形状,比如球型尚。 美术人员在场景中放置 ReflectionCapture Actors 确定获取点的位置。在编辑过程中反射的效果是实时更新的,但游戏运行时是静态的。 将这些获取的场景投影到简单的形状上能够得到大致的反射视差效果。每个像素在不同的 cubemap 之间混合计算得到最终值。 较小的 ReflectionCapture Actor 将会覆盖较大的,因此可以根据区域来改进反射视差的精度。比如,可以在一个房间的中间放一个捕获点, 并在房间的角落再放一个较小的捕获点来改善反射效果。

reflection_environment.png

如需获得关于反射环境和反射捕获的更多信息,请参阅环境反射

反射捕获Actors

CaptureIcon.gif

反射捕获Actors是策略性地放置在整个关卡中并将反射数据装入反射环境中的对象。

目前有两种反射获取形状:球型和盒型。形状很重要,它决定了场景中的什么部分会被获取到 cubemap 中,场景会投影到什么样的形状上, 以及场景中什么部分将会收到来自于这个 cubemap 中的反射效果(影响区域)。

如需获得关于反射环境和反射捕获的更多信息,请参阅环境反射

屏幕空间反射

屏幕空间反射是辅助放置对象到平面(如地面)的引擎特性。 它们被默认开启,并会和反射环境的结果相混合,从而使得反射具有更为完整的感觉。

ScreenSpaceReflections.gif

屏幕空间反射默认在虚幻引擎4中开启,但可以使用控制台命令 r.SSR.Quality 3r.SSR.Quality 0 (根据设置不同而不同)来开关。 以下是反射示例场景的结果,一个开启了屏幕空间反射(r.SSR为1),另一个关闭了屏幕空间反射(r.SSR为0)。

images/SSROnOff.gif

反射考虑要素

在使用反射来构建环境时,我们的美工要考虑以下几个问题:

对比

反射在总体光照和阴影对比强烈的区域或更为显著和明显。 正如真实世界那样,反射会趋向于“出现”在本身较暗或其所在处较暗的地方,但会在强光处消失。 这就是为何我们在此例中选取地铁场景。 作为地下场景,不存在真实的自然光来源。 这几个灯具的位置摆放松散并相对较亮。 这样对于观看者或玩家来说,阴影和暗处将成为出现反射的主要位置。

Contrast.png

真实世界反射表面

除了对比外,还有很重要的一点是在创建真实反射时,需要考虑在真实世界中创建反射的表面类型。 本演示中,我们对地面选择了潮湿混凝土,在墙面选择了瓷砖。 在场景中的大多数位置处,水都在不停滴下并流得到处都是,这样就使得场景中的大部分位置可以产生反射。 当然,这样也意味着为使得场景更具观赏性,我们在创建材质时认真花功夫至关重要。

如需获得有关材质创建的更多信息,请查看材质 以及 基于物理的材质 文件。

Subway.png

放置反射捕获

ReflectionActors.png

获取正确反射的关键是在您的场景中放置反射捕获Actors。 您首先可能会想把这些Actors放到您场景的不同位置,直到您获得较好的效果。 不过,在使用这些Actors时,要牢记一些规则:

LevelReflection.png

红色

大半径。 反射关卡和背景中的大多数内容。

蓝色

更为本地化的反射。 捕获单个空间。

绿色

小半径的细节反射。 放置在需要小的重要细节的区域处。

相关主题