前言
本文是对于《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”,演讲者的意思是纯材质,排除混合材质情况。
关于BaseColor
Daedalus51提出场景中的BaseColor应该要较为平缓(亮度、对比度与饱和度别太高),这一点也在在Ue4的LightMass文档中的“使用LightMass获取最佳质量”章节中有提到。
特别是饱和度,饱和度如果过高会让人感觉画面奇怪。1.5章节开头就在调整贴图的饱和度与亮度。
检查的方法是切换到BaseColor查看模式截图,再使用Photoshop的Histogram查看颜色分布。Daedalus51使用的方法是,使用PS对截图使用平均模糊滤镜,之后观察图片的各个值。
但从视频中可以看出,这个步骤更多的是靠经验,所以这里还是建议各位仔细看下对应视频。
在Ue4中修改贴图
一种简单修复方法就是打开TextureAsset,直接修改里面的饱和度、亮度、对比度等选项。(但是作者还是建议使用Photoshop修改源文件再更新Asset)
结语
在下一篇文章中,我会总结各个步骤的重要细节,以及各个功能所应用的场景。但是文章只能记录操作步骤与流程,不能记录使用经验,所以本人依然推荐想深入学习光照的人去看一下Daedalus51的视频。
Daedalus51视频中的场景
第一章节:
户外傍晚:
使用纯动态光照
距离场AO(SSAO好像关闭了)
CubeMap天光并且自定义下半球颜色
其他为后处理
户外早晨:
使用静态光照(Stationary的动态阴影不算的话)
CubeMap天光并且自定义下半球颜色
第二章节:
洞穴场景(可以看成是室内)。