BlueRose
文章97
标签28
分类7
灯光知识与流程学习总结(一)——建立初始场景与材质检查

灯光知识与流程学习总结(一)——建立初始场景与材质检查

前言

本文是对于《Daedalus51的灯光学院系列视频》、《Lighting with Unreal Engine Masterclass视频》、《Ue4照明技术引导系列视频》的总结。相关网址与链接可以参看前一篇文章。

撰写本文时,《Daedalus51的灯光学院系列视频》只看完第一章,所以本文后续还会更改,请各位读者注意。另外因为本人技术能力有限,如有错误还请各位指正。

三个视频的观看建议

Lighting with Unreal Engine Masterclass

从简到深地讲解了静态光照与动态光照特性对比、2种光照方案的技术点以及Epic的基本打光流程。缺点是没有很好的讲解具体的打光思路以及流程。

Ue4照明技术引导系列视频

该系列一共2个视频,主要介绍了光照技术中的各种细节与参数。是功能与参数讲解向视频。PS.个人感觉配套的Wiki比视频有用多了,Wiki中讲解若干阴影问题的解决方法。本视频已经被搬运到B站,中(机翻)英双字幕。https://www.bilibili.com/video/av59548243/

Daedalus51的灯光学院系列视频

一共19个视频,看完需要1~2个星期。一共4个章节,每个章节都是一个案例。通过这个视频你可以大致了解到Ue4的打光流程、每步操作的意义以及部分功能背后技术的原理。让你了解如何判断场景出了哪些问题,出现什么问题该如何解决,什么时候该做什么。

建议的观看顺序为:《Lighting with Unreal Engine Masterclass》=》
《Ue4照明技术引导系列视频》=》《Daedalus51的灯光学院系列视频》

灯光类型对比

以下几点都是直接翻译视频中的观点,这里我总结一下:

动态光照的主要优点是所有效果都是实时的,对于效果的迭代会非常快。主要缺点是没有GI。

静态光照的主要优点有GI,但因为效果不是实时的,迭代的效率相当会相对较低。

静态光照一般会使用Stationary类型的灯光,其中的Dynamic Shadow Distance参数是切换动态与静态阴影开关,当为0是所有阴影都将是烘焙的,当数值较大时(5000)所有近距离阴影都将是动态的。Daedalus51推荐的数值为3000~8000之间。(在这个数值的距离观察时会切换为静态阴影)

静态烘焙灯光优缺点

优点:

  • 拥有GI效果
  • 消耗较少的软阴影效果
  • 低GPU性能消耗较小

缺点:

  • 迭代效率低
  • 光照效果是静止的
  • 当地图较大时,会占用大量显存。

动态实时灯光优缺点

优点:

  • 所见即所得
  • 光照效果是动态的

缺点:

  • 没有GI效果
  • GPU性能消耗较大

Static

烘焙直接光照与间接光照(GI)
GPU性能消耗最少

Stationary

烘焙间接光照
高质量的直接关照与阴影(动态)
高质量与中等性能消耗
四个及以上的灯光重叠限制(多出的灯会使用static方式计算)

Movable

动态光照与阴影
GPU性能消耗最多
没有间接光照

前置流程

以下两点主要参考于Lighting with Unreal Engine Masterclass视频,部分来自于Daedalus51的视频。

实现没有干扰的默认光照场景

使用初始模板建立的场景。

关闭后处理空间中干扰项

以下操作都在Post Process Volume中。用于去除对场景亮度的干扰。

禁用自动曝光

视频中的操作是在后处理空间中将最低亮度与最高亮度设为1。

目前版本已经使用物理灯光,所以第一条,应该改为将Lens-Exposure
中的Min Ev100与Max Ev100设为0。

禁用SSAO以及SSR(空间反射)

将ScreenSpaceReflection中的Intensity设为0。将Ambient Occlusion的Intensity设为0。反射球可以不用删掉()。

保持默认Tone Mapping

确定Tonemapper(新版本为Film)中值为默认值。

关闭Vignetting与Bloom效果

将Lens-Bloom中的Intensity设为0。将Lens-Image Effect中Vignette Intensity设为0。

杂项

后处理的GI选项只对LightMass烘焙过的GI有效。、
不建议使用后处理的AO中的Cubemap Texture(已经被天光代替)

确认天光与方向光为默认数值

天光:亮度为1
方向光:亮度为3.141593(π)

设置测试用球(与色卡)

视频使用了Chrome球(BaseColor 1、Metallic 1、 Roughness 0)与Gray球 50%灰(BaseColor 0.18(Linear)、Roughness 1、Metallic 0)进行测试。使用亮度为3.141593(Pi)的方向光,此时灰球的亮度为0.5。(使用Color Picker、或者截图使用Photoshop查看)

但其实引擎已经预制了颜色校准工具,只需要在View Options中勾选Show Engine Content,之后搜索ColorCalibrator,将SM_ColorCalibrator拖到场景中即可。

确定你的材质是物理正确的

在将模型导入并赋予材质后检查场景:
《Lighting with Unreal Engine Masterclass》说
几个常见的错误:
BaseColor:太暗或者太亮
Metallic:应该为0或者1。(黑色或者白色Mask)
Specular:应该为0~1范围的浮点数。不应该为颜色值。(它会导致反射亮度不一致)

常见材质的BaseColor数值都可以网上查询到,我记得《全局光照技术》中有说。世界中没有物体是纯白、纯黑的(即RGB为0或者1)。

PS.关于“Metallic应该为0或者1”,演讲者的意思是纯材质,排除混合材质情况。
image

关于BaseColor

Daedalus51提出场景中的BaseColor应该要较为平缓(亮度、对比度与饱和度别太高),这一点也在在Ue4的LightMass文档中的“使用LightMass获取最佳质量”章节中有提到。

特别是饱和度,饱和度如果过高会让人感觉画面奇怪。1.5章节开头就在调整贴图的饱和度与亮度。

检查的方法是切换到BaseColor查看模式截图,再使用Photoshop的Histogram查看颜色分布。Daedalus51使用的方法是,使用PS对截图使用平均模糊滤镜,之后观察图片的各个值。

但从视频中可以看出,这个步骤更多的是靠经验,所以这里还是建议各位仔细看下对应视频。

在Ue4中修改贴图

一种简单修复方法就是打开TextureAsset,直接修改里面的饱和度、亮度、对比度等选项。(但是作者还是建议使用Photoshop修改源文件再更新Asset)

结语

在下一篇文章中,我会总结各个步骤的重要细节,以及各个功能所应用的场景。但是文章只能记录操作步骤与流程,不能记录使用经验,所以本人依然推荐想深入学习光照的人去看一下Daedalus51的视频。

Daedalus51视频中的场景

第一章节:

户外傍晚:
使用纯动态光照
距离场AO(SSAO好像关闭了)
CubeMap天光并且自定义下半球颜色

其他为后处理

户外早晨:
使用静态光照(Stationary的动态阴影不算的话)
CubeMap天光并且自定义下半球颜色

第二章节:

洞穴场景(可以看成是室内)。