在UE4中实现灯光之美
本帖最后由 毒游小行家 于 2021-5-14 16:12 编辑在UE4中实现灯光之美
文/李文磊
本文是根据2019 Unreal Open Day 李文磊老师的《在UE4中实现灯光之美 》演讲整理的,李文磊老...
本文是根据2019 Unreal Open Day 李文磊老师的《在UE4中实现灯光之美 》演讲整理的,李文磊老师从基础原理,到灯光的使用,从传统的摄影摄像打光到现代游戏引擎中的打光,以及实际案例。,完美的诠释了灯光之美。感谢李文磊老师的分享.(一直未能等到官方分享,便先整理一版本,如有错别字的或刊误请指正)
从美术的需求出发,如何在UE中去实现,以及会涉及到的概念
其实方法很多,但是我们要知道我们应该从一个什么方向去努力
对于灯光来说,我们的目标是什么,比如:丰富的影调,丰富的色彩,如何塑造立体感空间感,以及材质质感,还有模型的形状等等
使用的工具有很多,不仅仅是灯光,因为在传统的摄影打光中我们也不仅仅是灯,也有反光板,遮光罩,滤色片等等在引擎中也是一样,我们不仅需要灯,还需要材质,雾效,后期蓝图等等。
首先看看影调,什么是影调呢 ?那就是黑白灰,也是最重要的,包括黑白灰是如何过渡的,过渡的亮部暗部是怎么表现的,以及层次是多少等等,我把他分为三个部分频率,层次,品质,在传统渲染不会有这个问题,但是在实时显然中我们需要有一些设置提高品质。
频率:所谓频率就是黑白灰怎么过渡的,由亮到暗,是快还是慢,就是柔到硬,亮部和暗部的比例,也就是反差也叫对比,过渡的慢,在传统中我们叫做品质,传统的品质取决于光源的大小,以及到这个物体的距离,统一就是一个概念,就是灯光对物体
包裹的程度,第二个因素灯光的方向性,是统一的还是离散的,这里表现灯光大小或者是包裹性,对明暗过渡的影响,对于高光来说,第二个光源大小会高光的大小,第三个光源方向会影响灯光清晰的程度,第四个同样的灯光是个离散的光源,所以高光很模糊。
在传统光照中我们通过工具,柔光箱,反光板,多次的反弹,以及布料材质来改变灯光面积,以及离散性,左边两张图,是UE里面来实现品质差异,同一个材质球,两个不同的灯光表现产生的Specular和Diffuse两个层面的对比,主要是光源Source Radius和Soft Source Radius。
在真实的世界中纯粹的点光源是很少的,纯粹的没有离散光源也是很少的,特别是反弹光,大部分都是面光也就是离散光,所以对动态物体进行补光情况是更多需要大的离散光源。
灯光的频率波幅的高低,也就是亮和暗之间的比,也就是光比或者反差,在传统的打光我们会去调整灯光的反差,比如提高对比,降低对比,比如在太阳底下我们拍摄电影我们会通过柔光板,或者遮光板去降低反差,在UE里面也可以通过一些简单的方式,通过透明物体去投影,按需求去控制影子的浓度,降低对比度。
另外一个方面,如果场景灯光非常平,特别是阴天,室内比较亮的墙面或者屋顶,我们需要些反差来塑造对下立体感,我们可以使用一些黑色的反光板减少反弹。
在UE我们也可以使用一些方式来实现,比如可以用Decal来实现它,Ambient Occlusion,0环境光关掉,1就是不做任何改动,还做了一些方向性的信息,让透射上去就像灯光一样有衰减,像素和Decal方向做了点积,可以区域性的去控制。
还有一种方法就是透明材质,让透明模型区域内的空间的反差甚至是饱和度亮度进行些人为的去控制。
实现原理也比较简单、直接,就是使用一个球,计算球轴心点背后的所有世界像素跟轴心点之间的距离,得出一个MASK,第二个Mask是使用球和世界像素之间的朝向一个mask,最后这两个Mask叠加得到右边的这个MASK,就可以让SceneColor可以和这个Mask做些处理,比如降低饱和度,增加反差,都是可以的。
刚才做的那些,都可以做成BP,用BP 包下,把参数暴露出来,让美术去用 ,这是一个很方便的事情。
当然还有些其他的方式可以控制反差,往往静态灯光后再去控制可能比较麻烦,我们还可以使用比如后期的方式,不用重新静态Lightmap的方式,比如这里提高和降低,或者是平衡后期的GI和相机的曝光来平衡达到效果,中间是没有任何控制的,右边是降低GI提高曝光,左边是提高GI降低曝光,得到低反差和高反差的一个画面。
当然我们还可以用后期材质,这里我简单的用SceneColor除以BaseColor,提取灯光信息,可以对灯光去处理,比如提高饱和度,提高降低亮度,当然你可以用CustomDepth去屏蔽或者只对某个物体的影响。
对于反差的调整, 我们还可以使用Tonepapper,就是从高动态到低动态的一条映射曲线,这个网站大家可以去玩玩这些参数,可以更理解这些参数在引擎中是如何去工作,直接反应在屏幕上的反差。
层次,层次有2个方面,一个是所有的信息我们能显示出来,这就是高动态到低动态的映射通俗来讲高光不能爆掉,暗部不能死黑,第二个及时在我们能看到的灰阶范围内,我们还需要跟多的变化,简单的说就是影子里面还需要影子,任何光源包括反弹,最好创造更多的影子,这就是实时渲染和离线渲染看上去总觉得不一样的因素之一吧。这里工具可以查看HDR空间范围的,以我个人经验我觉得这个发范围超过8个档位以外的像素,大家可能需要小心点,如果是0的EV基础值,低于-5.3可能会死黑,高于3可能会爆掉,这是个人的经验。
动态范围,左上角根据实际物理的光,Cloud的EV值是13,实际太阳光是16000lux,室内是100W灯泡,看看打出来的是什么效果,根据室外值去曝光,发现反差很大, 根本看不到室内的情况。左下角,我调到室内的一个曝光值,大家看外面已经曝光了,柱状图可以看到亮部没有细节了。右边这个图,我把100W灯提高了32倍,再用室外的EV12去曝光,然后就平衡,这里想说明,第一个可以用物理灯光去了解下真实对比,在显示器上被HDR然后又LDR后到底是什么光感,第二个在控制动态的时候,灯光是发挥了极大作用的,我们并不需要去PK物理灯光,我们需要做些调整,来平衡非常大的动态范围,让所有的细节,都能没有太多的损失,当然在传统的拍电影过程中也能实现,拍电影的灯光功率都非常大,为了平衡室内外的灯光,室内就是打了这么亮的灯光,当然在引擎中或者游戏中我们非常容易的就能实现。
如何控制动态范围呢?最简单的就是控制摄像机的EV值,曝光虽然不能去改变动态范围,因为场景的打完光就在哪里,至少我们能去兼顾一头,比如我们需要兼顾亮部,我就把亮部压倒一个范围内,不损失细节,暗部怎么办呢,那就补光就平衡了,这个场景左边没有做任何处理,原来的环境,右边为了达到没有烘焙Lightmap的情况下,我把曝光压低了4-5挡,前景暗部就全黑了没有细节,,然后在暗部前面补了2盏灯,给了一些白平衡的偏移,大约3800的白平衡,来模拟晚上的效果,不需要任何改动任何灯光情况下通过摄像机参数同一个场景就能达到另外一个的效果。
关于暗部不能死黑,在真实环境中,有反光,因为有GI ,就不会存在死黑,但是在游戏里面GI里面如果没有环境光,就是0,就是死黑,后期怎么调整都不会亮,所以对于动态物体,我们必须要确保有些环境光,所谓环境光就是对金属至少有天光和反射球或者球谐光照加反射球,对于非金属需要天光,或者球谐光照。
关于死黑,不得不提贴图,贴图尽量在PBR里面灰度均匀些,BaseColor不要低于40sRGB,不好照亮。这里做了些后期材质,可以查看BaseColor是否低于40,会根据这个去做些调整。
高光,没有细节很大程度是来自适时光源,光源本身是在里面的,会造成Bloom,LensFlare,吸引注意力,破话整体画面感。
右边这个环境,再加上角色主体进来,单独对角色打光就会很舒服,左边到处都是分散注意力的东西,方法就是之前说的,材质,后期,参数,GI 等等。
创造更多的阴影,不管是作假不作假,阴影,阴影,阴影,更加逼近离线渲染的关键,对直接光就是提高阴影精度,减少漏光。对于角色很多都是用Per-object shadow这些阴影精度很physica object的大小,所以对于一些拍摄Cinemagic和Animation我们可以在Sequence中可以实时的去改变Physica Object物体的大小,比如突然有个面部的特写,我们就可以在track里面给个track去笼罩人面部。
Contack Shadow ,虽然不是直接光Shadow,是后期Shadow,对于不是真正Gemotry而是用NormalMap表现得一些贴图,像左边是没使用Shadow的只有明暗,Contack Shadow可以利用深度,来做屏幕空间的Shadow,可以是用一张高度图放入Pixel Depth 里面给些深度信息,Constack Shadow就可以产生阴影。
间接光的遮蔽是实时渲染相对于离线渲染比较弱势的地方,尤其是手机平台更加缺少这样的遮蔽,导致层次的缺乏,所有列在这里的就是我们可以做的一些间接光的工作,比如BentNormal,AO,Specular可以放一张CavityMap,模型转折强度的Map,来逼近。
SSAO和Constack Shadow一样,SSAO是通过法线和深度来计算出来的,所有对于没有事实模型的地方,可以给一张深度图和刚才的ConstackShadow,也可以表现他的间接光遮蔽的效果。
还有就是Lightmap,很多时候是间接光精度不够高,除了Lightmap精度以外,和两个参数是很有关系的,左上角是太阳光,竖面是一个白色的墙面,地面是一个Landscape地形,然后给了一个从黑到白的渐变贴图,计算灯光,最后反弹的结果在默认情况下的(左图)说明反弹结果非常粗糙,精度不够,然后提高了地面的Lightmap的精度,第二个是地面材质的Export Resolution Scale,并没提高墙面本身的精度,最后烘焙出来就可以达到反弹非常准确细腻的效果。特别是在地形上,常常可以看到一些小物体,或者房子背面的阴影,反弹的精度不高,或者说和地面衔接不行,这些问题可以查些这参数。
品质,Lightmap,影视和室内建筑可视化,可以不压缩,压缩的话很面先有以上的问题。
色彩
大家可以用色格去取色,也可以用白平衡,个人建议使用白平衡,因为从传统中打光,不需要色彩很丰富,现在有了LED Light,做灯光需要取平衡灯光的颜色,建议大家从基本的色温3800、6500的色温开始,根据传统的方式做些CTO,CTB,1/2,1/4来加色温或者减色温,可以使用Editor Utilty widget Blueprint做成一些按钮放在界面上面,给灯光师使用,在后期做些调整。
显色性:灯光能不能把diffuse颜色准确的呈现出来,某个波长的确实,有些显色会显示不出,在UE里面没有这个概念,但是太高的饱和度的颜色的灯光,往往会使得对比色的BaseColor照不亮,完全变黑,比如说灯光是0,1,0绿色照1,0,0红色的界面,乘一下就会变黑,很容易理解,所以尽量避免用纯色或者很高饱和度的灯光。
左边我用色温低于1700,用后期的白平衡颜色也找不回来了,右边就是摄像机本身的白平衡,可以用来做很多不需要调整场景本身的颜色或者色温的灯光的情况下,去做后期效果,这里就是将白天场景调成晚上的效果。
贴图本身的白平衡,做砖墙地面没问题,大家都是原色倒进来,但是自发光贴图或者天空贴图,需要注意下,找这些图或者拍其实用6500的色温去拍,比如这里的雪地是晴天,用6500的色温去拍,阴影就是蓝色,蓝色倒进来,和灯光就很好匹配,使用蓝色的灯光,白色6500太阳光匹配背景天空也是这个颜色,下面图是用9000的色温去拍的照片,雪是白的,很难匹配,天空是白的太阳也是白的,天光和太阳没有任何差别。
暗部的色彩可以让环境可以很通透,如果暗部有丰富的细节没有色彩,会让人觉得压抑或者闷,还是这两个参数Export Resolution Scale和Static Lighting Resolution,和刚才色阶是一样的,尽量让色彩的反弹能真实的反应到光照贴图上面,默认设置是没有色彩的。
关于空间感来自于对比,对比主要是创造阴影,即使是一个同一个空间,但是在影子里和不在影子里,在感情上面或者在气氛里面就是两个空间,第二个就是可以用体积光来加强空间表达,因为体积光即使光源不在空间里面但是你知道光源是从哪里来的
。
这里左图的例子就是在一个空旷的场景中一个空间,然后在Sequence投射影子的物体,在前景给他一个影子,整个环境就作为近景中景远景分成了三个空间,甚至对故事性有所帮助。
这里是另外一个尝试,在空旷的物理空间里面没有分割,仅仅是通过Shadow,Volume Magic Light来营造一些空间感。
在造型方面需要比较特殊的眼神光,在引擎中如果不是开了光线跟踪中,眼神光的位置很难控制,可能有的时候不需要适时光源和眼神光的位置一样,所以很多时候都用材质来模拟的,大小,颜色方向随时可以控制。
第二个就是光源的形状,我觉得大家可能不要忽略这个东西,是非常非常的重要,特别是表现一些异性的物体,比如柱状的瓶子,这里是圆形的灯光和长形的灯光对表现这个LOgo整体造型相差会非常大。
质感的营造回到光的品质,质感就是表现材质本身的属性,光如何去帮助材质表现质感,就需要光源小,方向性强,逆光,反射源的反差要高,上面一排和下面一排对比质感差异就比较大。
接下来做一个实践,根据之前说的一些方法概念。这是Scene本身的一个曝光和环境,大家可以看到适时光源非常多,环境里面有球谐官方非常亮,导出都是,然后设置了一个Camera,有近中远景,然后以这个为基础,来进行灯光调整。
画面比较杂乱,太多的实时光源,影响注意力,第一步把整体的EV调低4-5挡,
后面的光源刚刚刚好,但是头顶的蓝条太惹人瞩目了,想把不注意的东西去掉。
很简单调了自发光的参数,柱状图截看了下,有很多死黑的地方。
在后期中将GI调亮。
增加一个主光源,从右边进来,然后又加了一个面光源,稍微有点大的面光源。
然后我觉得主光源有点太直接了,所以我投射两个物体挡住了上下,焦点在面部。
然后进行了辅光的处理,主光色温是6500,辅光是加了1/2CBT,稍微有点蓝色,辅光有几盏,一个背景的轮廓光,1/4从左边的,一个是从右下角的,另外一个是在他附近加了很小区域的反射球,能够让他反射更加均匀。
这个时候我觉得这个人整体比较平,所以我就加了些Decal,去压暗他的AO,他右边肋骨压暗一点,让过渡增加些立体感。
然后我觉得右边柱子很亮,会影响视野的焦点,我用同样的方法,把前景压暗,这样看来视野焦点就在角色身上了。
然后他左手背景还有些光斑,我觉得很惹人注意,所以我用同样的方式把他压暗掉了,这样光斑就消失了。
但是角色和背景还是不太跳的出来,太接近,太融合,所以我加了些 Volume Megic Light,加了些点光和探照灯,让主题和背景可以区分开,右边是简化了的视图。
然后播放动画,最后调整色彩在引擎中调色,增加Noise,色散的一些后期效果,大概达到的效果。
通过十几分钟调整,能达到后面的效果。
最后我想聊聊,从美术角度来看目前混合渲染给美术带来的意义
所谓混合显然就是光栅化和RayTracing,大家知道Ray Tracing有非常精确的动态阴影,GI,概括两个字就是精确,在美术上面如果拍电影拍视频,很多人物面部特写,他的一些通透感来进行面部的关键反弹,在以前是无法实现的,现在比如眉弓到面部,鼻翼到脸颊,以及嘴唇,这些反弹,如果能加入到Cinemagic这些Short里面,角色的真实感和通透感会增加很多。另外绝对精确的影子,蓝色字体就是美术角度的意义,增加层次,品质,色彩等等,我觉得光栅化也有他的意义,人工干预的方式还是很自由的,RayTracing非常精确的物理,比如要反光或者压暗某些部分,以及后期对的一些处理,很人为的一些东西,反而光栅化跟自由。另外就是现阶段一些特殊效果还是需要光栅化来完成,比如体积光的效果,大家知道RayTracing渲染体积光是非常非常缓慢的,这大概就是光栅化带来的优势。
END
学习查看 努力提高 666 666666666666666666 感谢分享
页:
[1]