在虚幻引擎4中模拟区域光源

2016年11月29日 10:46 0 点赞 0 评论 更新于 2025-11-21 15:30
在虚幻引擎4中模拟区域光源

在真实世界里,光源具有各种各样的形状和大小,例如日光灯、传统灯泡、卷曲灯泡、车头灯、篝火以及天空光照等。

在专业摄影技术中,光照有多种不同的控制方式。彩色透明滤光板可用于给光源着色,镜头挡光板能改变投射光的形状及图案。其中,柔光镜尤其值得关注,像柔光箱和摄影伞,它们可用于重定向、传播及柔化光线。

在现代离线渲染解决方案中,区域光源是一项典型的强大功能。其工作原理与现实世界中摄影师使用的柔光箱漫射器极为相似,即从一个较大的表面发射大量光照,用漫反射光照填充空间。这样可以降低场景中阴影和高光的粗糙度,通常能以更理想的方式渲染表面。

截至本文撰写时,虚幻引擎4尚不支持区域光源。不过,借助一些基本的几何体、简单的材质以及标准的虚幻引擎聚光源,我们可以创建自己的实时漫射器,以令人信服且易于控制的方式模拟区域光源。

步骤1:场景搭建

最初,在我们的简单场景中,有一个类似房子的建筑物,里面设有窗子、门以及天空光源。同时,还有一个定向光源充当太阳。此外,还放置了几个专用的Actor:

  • 三个球体反射捕获Actor,用于辅助精确渲染反射表面。
  • 一个Lightmass重要体积,用于指导Lightmass进行光照烘焙的位置。
  • 一个后期处理体积,用于通过各种视觉特效调整最终渲染效果。

在编辑器中运行时,我们会发现该建筑物的内部非常黑暗。我们的目标是模拟光照通过窗子和门从外面涌入的效果,让光子进入建筑物。这些光子会在场景中来回反射,照亮它们接触到的表面,最终产生更真实、更令人满意的效果。

步骤2:添加光源

我们首先要做的是在建筑物外面,大致每个入口中间的位置添加光源。同时,打开Inner Cone Angle(内锥角)和Outer Cone Angles(外锥角),以最大化传播每个聚光灯的光线,具体参数设置如下:

  • Inner Cone Angle(内锥角):80.0
  • Outer Cone Angle(外锥角):85.0

构建光照后在编辑器中运行,效果有所改善,我们至少能看到室内场景了。但需要注意的是,此时光照和阴影都非常刺眼。通过组合剩余的Bounce Cards(反光板),我们可以获得与建筑可视化渲染相关的更高质量的区域光照。

步骤3:漫射光线

我们的反光板由简单的平面组成,将这些平面缩放至适当大小,并放置在每个门口的外面,且位于每个聚光灯稍远处。每个平面都应用了一个白色材质,并调整其朝向,使其朝向建筑物内部。

为了给反光板提供恰好足够的覆盖量,需要减小光源本身的衰减半径。不同的场景可能需要不同的值。同时,旋转光源使其朝外,远离建筑物内部,并直接射向刚刚放置的平面,衰减半径设置为:

  • Attenuation Radius(衰减半径) = 200.0

高级技巧

如果不需要反光板产生的发光外部世界效果,可以选择所有反光板,从详细信息面板中启用Actor的“Hidden In Game(在游戏中隐藏)”复选框。

脚注说明

LIGHTMASS 设置

Lightmass工具执行光照烘焙过程,并将结果编码到每个对象的光照贴图中。通过增加关键参数,可以提升场景中静态光照的最终质量。该项目的调整参数如下:

  • Static Mesh Lightmap resolution(静态网格物体光照贴图分辨率) = 512
  • Num Indirect Lighting Bounces(间接光照反弹次数) = 25
  • Indirect Lighting Quality(间接光照质量) = 8.0
  • Use Ambient Occlusion(使用环境遮挡) = True
  • Compress Lightmaps(压缩光照贴图) = False

增加这些值会提升最终的光照质量,但代价是光照烘焙时间会增加,这取决于可用的处理能力。建议先使用较低的值进行迭代,“勾勒”出场景的一般效果和色调,待达到期望效果后,再提升这些值以获得最终效果。

后期处理

后期处理特效是非常强大的功能,能够动态影响渲染器的最终输出效果。即使是少量的后期处理特效也会有很大帮助,例如一些光溢出、颜色校正和少许对比度调整,都能为场景增色不少。具体参数设置如下:

场景颜色

  • Fringe Intensity(边缘强度) = 0.575221
  • Grain Intensity(颗粒强度) = 0.150442

自动曝光

  • Min Brightness(最小亮度) = 1.0
  • Max Brightness(最大亮度) = 1.0

镜头眩光

  • Intensity(强度) = 0.0
  • Unbound(未绑定) = False

边缘及颗粒设置添加了照相失真的暗示。这里,自动曝光和镜头眩光设置有效地禁用了这些效果。Unbound(未绑定)使得后期处理体积可以在整个场景上全局性地生效。

反光板材质

主要的反光板材质非常简单:使用Vector3作为底色,通过Scalar标量将该颜色与自发光通道相乘。材质实例版本增加了亮度,亮度设置为:

  • 亮度 = 13.0

需要注意的是,材质的自发光质量没有设置为真正地发射光照到场景并列入Lightmass计算,在这种情况下,这纯粹是一种审美选择。

Master Material | Material Instance