[官方培训]21-UE中LookDev环境创建 Epic 李文磊 笔记

UE中LookDev环境创建

什么是LookDev?为什么要规范这个环境?

广义上来说LookDev是指一切视觉效果的开发,但我们通常是指狭义的表面效果类的定义和开发。主要指的是材质,阴影,贴图等这些属性这是一个不断实现视觉目标打磨的一个过程。期间需要反复的去评估这些表面的属性。我们需要这么一个环境来帮助艺术家准确的稳定的创建和检查这些属性。

如果没有这么一个合适的环境做LookDev会遇到非常多的问题。

当有多个变量对最终的效果产生影响的情况下,我们必须先把部分因素或者变量确定下来。这样才能够判断另外一部分变量是否正确。

环境创建

首先需要有一个统一的渲染器的品质的设置,另外曝光肯定得正确,灯光需要是无色的避免对色彩的干扰。背景需要有合适的亮度,另外需要有几个不同的光比环境来检查不同的效果。需要一个统一的色彩管理。

我们也可以做一些视觉模式来做Debug或者检查PBR材质的一些属性的正确性。另外我们也需要一些检查的手段来检查贴图的压缩的品质,贴图的分辨率是否足够,以及尺度的对比。

另外也可以增加特殊的渲染的选项的开关,来对特殊的材质比如说皮肤毛发以及眼球这些进行检查。

这里通过一个BP把刚才提到的环境的条件或设置都整合在里面。

首先有三种不同的高低对比环境,中低对比更有利于检查贴图的明度颜色,高对比表现质感。

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

另外这边有一些渲染的开关是特别针对角色的比如光线追踪的阴影,角色皮肤的透射以及使用硬件的光线追踪,这些是对角色的一些特殊的材质效果有特殊表现,在后面会具体提到。另外这边也给了曝光补偿一些选择性的调整,可以用来检查贴图的一些品质问题,尤其是在曝光比较亮的时候。

除此之外我们还可以通过Grounded来开关角色地面的投影。也可以选择性开关Calibrator,色板,灰球以及角色。角色的主要作用是用来做尺度的对比的。
在这里插入图片描述
在这里插入图片描述

另外我们也可以做一些检查的后期效果来对材质的PBR的正确性进行检查。

在这里插入图片描述

还有就是灯光的角度,运行后能够在不同的灯光角度下看效果。比如跟角色的灯光角度有关联的材质效果(Transmission,透射,散射等)这些我们是要根据逆光或者侧光来进行观察的。

在这里插入图片描述

最后如果需要的话我们也可以制作一个工具一键导出一个Sequencer或者视频,作为一个Turntable的预览来做审核用。

下面我们具体来看这个环境所需要的各项设置。

渲染器及品质设置

首先是渲染以及渲染品质的统一,视窗中的渲染的品质最好能调到Epic或者Epic以上,为了避免渲染品质的原因,导致我们做LookDev的时候对最终效果的影响而产生误导。还有就是在最终输出序列的品质默认都是Cinematic。

在这里插入图片描述

另外就是渲染器的设置这里主要是指GI以及反射的提供,5.0之后推荐用Lumen,Lumen的一些设置也需要统一。

在这里插入图片描述

关于Lumen在PP盒子里面对品质的调整要适当的调高,特别是Lumen Scence Detail,对小的物体的Lumen计算以及它的Final Gather Quality以及反射的一些参数。这样目的也是为了尽量避免一些渲染品质本身的问题,而对我们材质或者表面的开发而造成一定的困扰或者影响。
在这里插入图片描述

灯光的组合是一系列的方向光,真实的方向光加上一张黑白灰处理过的高动态的天光贴图组合实现的。这里没有仅使用高动态的天光贴图作为唯一光源的原因是这种光源产生的影子是通过Lumen的GI或者光线追踪的Final Gather而实现的,效果在一些结构上面并不好。比如毛发一些细小的结构等。
在这里插入图片描述

另外在最终的渲染输出的时候,我们使用的光源很多是真实的光源而并非仅仅用到了天光而已。所以为了匹配LookDev的一个效果和最终我们输出的一个效果,也选择了真实光源和天光组合的方式来实现。因此天光的HDR贴图上的高亮点或者光源会被处理掉。因为主光还是来自真实的光源,天光的贴图主要是用来作间接光的照明和反射。

曝光及光比

接下来具体讲怎么来定义环境的亮度和光比。

这边打开工具>调试>像素检视器,像素检视器(Pixel Inspector)是用来检查环境中像素的一个亮度的工具。

我们以中对比的Scenarios为例来说明怎么确定环境中的亮度。首先后期里面把曝光EV100锁到0。然后通过调整光线的强度最终达到一个合适的亮度。

这里的关键是光线要多强,再一个就是测光测哪里。

光线的强弱是在曝光固定的情况下,让18%反射率的灰板能够看上去是个中灰的表现。测光点一般是在灰球最亮到暗部之间过渡的中间区域。在太阳或者光线角度是45度左右,我们也可以简单的用一块朝上的灰板,直接测灰板来作为参考。

测光的话把鼠标移动到灰板的亮部,观察Scene Color的数值通过调整太阳光的亮度直到这个数值接近0.18的灰度。这边是观察Scene Color的值而非Final Color的值。理由是在中灰附近的亮度,Scene Color和Final Color可能是数值差不多的,但是在亮部或者暗部,这两边的差别就会比较大。因为Final Color是经过Tone Curve的又因为我们在计算光比的时候参考的是现实生活中当中亮部和暗部通过测光表测出来的线性的数值,光强的数值。比如说高对比达到了16倍,中对比达到了2.5倍左右,这个线性的数值在UE里面参考的相对的目标对象就是Scene Color。

下面是真实世界的一个光比的参考

大晴天下我们可以测量阴影当中和阳光下的明度之间的差别大概是16倍左右。

在这里插入图片描述

中对比是在多云天气下的一个测量结果。

在这里插入图片描述

低对比是在阴天天气下的一个测量结果。

在这里插入图片描述

高对比主要检验质感,对于固有色的明度颜色推荐用中低对比来检查。

背景亮度

这边主要是一个中灰的亮度,不同的对比的光影条件下会有一定的变化,但主要是接近中灰。因为背景的亮部对定义对象的固有色的亮度是有比较大的影响的。比较暗的背景会让固有色看上去会更加亮一些。反过来会更加暗一些。尽量避免背景的亮度对前景的颜色的明度的一个影响。

背景不是同一明度
在这里插入图片描述

背景是同一明度
在这里插入图片描述

因此在这个环境的背景设置上,尽量避免非常明亮或者非常暗的背景,从而导致对前景固有色的明度的判断产生误导。

色彩管理

资产有自己的色彩空间,工作有工作色彩空间,输出有输出的色彩空间包括显示器的色彩空间还有DCC软件的色彩空间。这些色彩管理我们需要同步否则当前美术所做的调的颜色最终的效果可能在不同的机器上或者不同的软件当中看上去不一样。

UE一直是在sRGB线性的色彩空间或者说色域和伽马下,进行渲染包括说灯光材质的计算。如果是贴图的话,sRGB的贴图会先转换到线性的伽马下,在sRGB的色域下进行所谓的计算,最终转换到目标设备的色彩空间输出,一般是sRGB伽马空间。

这边主要讲一下UE5新加入的对工作的色彩空间的定义或者指定的一个功能。

默认的sRGB色彩空间灯光颜色

在这里插入图片描述

ACEScg色彩空间下灯光颜色

在这里插入图片描述

这两个RGB数值虽然一样,但两个色域的不同。表现出来的效果也不同。往往广色域的,同样的数值会表现的更加艳丽。

同样的道理贴图用RGB的值定义了当前的颜色,当我们导入贴图的时候没有指定当前贴图创建时候的一个色域或色彩空间的坐标系统。当我们改变引擎的当前工作色彩空间的时候,当前的RGB值就直接以当前的色彩空间或者色域的坐标系表达出来。从而就会和当时创建贴图的时候看到的颜色就会有差异。
在这里插入图片描述
在这里插入图片描述

这个时候贴图的RGB值就需要一个转换的过程,而不是直接套用当前的工作的坐标系来表达。需要告诉引擎这个贴图在当时创建的时候的色彩空间。5.0以后可以直接在编辑器里指定当时创建的一个色彩空间。这个时候颜色就正常了。这个时候其实是RGB值通过转换而改变了,使得在当前ACEScg的广色域下也能显示出一个正常的颜色。
在这里插入图片描述

贴图我们可以指定一个创建时候的色彩空间通过转化到当前色彩空间的RGB值正确还原。但是3D渲染当中很多跟颜色相关的其他对象,比如灯光的颜色,天空大气,雾效,材质当中的黑体,这些在改变工作色彩空间时没有转换的过程,而是直接用当前的色彩空间的坐标系去套用当前的RGB值。所以颜色肯定是不对的。这个色彩管理的流程UE还在不断改进的过程,以后会有一些解决方法。目前的话只能不要在项目进行到一半时,去转换工作的色彩空间,否则会出现很多的问题。

下面聊一下广色域的工作色彩空间的意义,之前一直是sRGB的色域会导致一些问题。

  1. 比如说输入的素材,不管是实拍的还是其它CG渲染的图片,如果有广的一个色域,再转换到工作的sRGB的色域以后这些颜色是没法再转换回去了。丢失掉了
  2. 渲染的3D世界里面除了贴图的颜色以外,我们还有灯光,雾效,材质这些高动态所有最终渲染的像素颜色很有可能是远远超过sRGB的色域的,所以我们需要一个更广阔的色域空间,来保留这些渲染的颜色。最终的话就可以输出到各种各样不同的能力的设备上。比如说HDR,广色域的设备上面,从而保留原来真实的颜色。

检查和Debug

除了利用这个环境来创建美术上的效果以外,我们还可以用来检查一些技术上的规范。比如说PBR的贴图是否符合规范。纹理的尺度,精度,分辨率,品质等等。

PBR贴图规范

对于物理材质来说主要是检查Base Color或者反射率(Albedo)的极限值的范围。否则太黑就照不亮,太亮就曝掉了。

非金属的BaseColor极限值

颜色线性sRGBsRGB 8bit
物理上的最黑0.0090.0923
通常最黑0.030.18848
通常最白0.750.86225
物理上的最白0.90.95244

金属的反射率(BaseColor)极限值

颜色线性sRGB
物理最黑0.30.58

在这里插入图片描述

对于表格里的这些数据我们可以通过UE的后期材质进行可视化来帮助我们判断哪些区域是超出这个阈值的。通过BP打开后期效果可以看到,这里有三种颜色,绿色部分代表非金属区域的亮度过亮,蓝色部分代表非金属区域太暗了,红色部分代表金属区域的反射率过暗。

在这里插入图片描述

贴图像素密度

大家可能经常会注意到一些表面材质有的地方糊,有点地方清晰。这可能和对象的尺度尺寸大小有关,也有可能跟贴图的分辨率有关。

这个表面的贴图的密度一个是要遵循均匀,不能有的地方糊有的地方清晰。

根据摄像机观察的距离或者说对象的尺度大小,这里可以调出Calibrator跟人的尺度进行比较知道这东西大概有多大,能够看多近,从而来决定贴图的密度或贴图的分辨率。贴图看上去的精细程度跟模型的大小,贴图的尺寸,观看距离,还有模型的UV等等这些相关。但归根结底还是取决于贴图当前的像素密度和屏幕的像素密度之间的比值。当这个密度是大于屏幕的像素密度我们就会看到清晰的纹理,否则无法自适应后就会看起来比较模糊。

引擎自带一个可以比较像素密度和像素密度的比值的可视化模式。视图模式>优化视图模式>所需的纹理分辨率。选择一张贴图后,对于红色到绿色不同的密度的比值,越红代表它的密度比值越低,最终反应就是比较糊。拉远了贴图密度不变,屏幕像素密度减小了就会变得清晰。

在这里插入图片描述
在这里插入图片描述

贴图品质

另外可以利用这个环境检查贴图的品质。

这边有一个渐变灰的贴图,这边中灰部分有一个色阶的断裂或者不连续。其实这种不连续或品质的问题在暗部会更为明显。

在这里插入图片描述

正常情况下看不到,但在过曝情况下,暗部的瑕疵会尤为明显。
在这里插入图片描述

这个问题主要有两方面的原因,一个是贴图的压缩,另外一个是贴图暗部没有足够的数据或者比特数来表达信息。

对于贴图压缩引起的问题,我们可以通过更改贴图的压缩方式来改进。比如说默认是DX1的压缩方式,这种压缩方式比较狠,我们可以把它改成BC7。这样效果会好很多。
在这里插入图片描述

另外一个原因就是暗部的信息没有足够的数据表达,这些信息缺失引起的瑕疵我们可以通过提高贴图的比特数或者精度。这边通过连入一张16bit的贴图可以极大的改善效果。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

但是通过提高贴图精度来改善效果的同时,也会极大的提高内存或者显存的占用。

产生这个问题的原因是数据的递增的分布规律和人眼对明暗层次递增的识别的机制是不同步的。

对于线性的贴图数据的变化或递增是线性的,而人眼的识别明暗是指数级上升的。因此在暗部的话人眼特别敏感。但线性的贴图数均匀分布的数据,因此暗部的话信息表达可能不够,对于亮部的话信息可能又有冗余。

因此对于有限的比特数的贴图来说,我们可以使用是sRGB的伽马的编码来表现。sRGB的伽马简单来说是对线性的分布做了抛物线的弯曲一个提亮的处理,提亮的好处就是能够用更多的数据来表现暗部迅速变化的明暗的层次。使得暗部看上去更加的平滑。

虽然对于8bit颜色的图片或者贴图,sRGB伽马的编码方式相对于线性的有非常大的提升品质。但是在非常明亮的环境。比如过曝和灯非常亮的情况下,非常暗的暗部还是会明显的出现这种问题。

改进这种问题的最直接方式就是Base Color做的不要过暗。具体可以参考前面的阈值。所以Base Color的明度不仅会影响材质的表现,也会影响到贴图的品质,尤其是暗部。

另外,像粗糙度,金属性这些表达材质物理数学属性的贴图,我们一般用线性的伽马编码。因为首先它并非直接可视的,并且亮部和暗部都很重要。像sRGB只对暗部进行了加强,对亮部进行了压缩。另外这些信息需要一个线性的连续性的变化。还有这些信息阈值会比较大,很暗或者很亮,并非像Color贴图,像刚才提到的sRGB的最暗部分不会低于40。

角色材质开发环境注意点

角色的材质比较特殊,包括毛发,皮肤,眼球,还有一些半透的材质,这些材质的效果和引擎的一些渲染功能是强相关的。因此在这个环境中加入了我认为非常重要的渲染功能的开关。用来在角色做LookDev的时候,检查或者比较在不同的渲染功能的开启和关闭的情况下的一个角色的表面材质的效果。

首先是最重要的光线追踪阴影的开关。第二个是Transmission皮肤的透射,这是一个灯光上的开关。第三个是硬件的光线追踪的开关,这是Lumen的一个设置。

接下来我们来看每个设置对角色的影响。

开关光线追踪的影子对角色的表现影响非常大,一个是睫毛这边因为半透的关系,而产生的一些不正确的光线追踪的影子。如果使用虚拟阴影贴图就没有了。
在这里插入图片描述

另外,毛发如果开启了光线追踪的几何体,打开光线追踪阴影会产生非常细腻的毛发的影子。

另外,光源面积比较大的话,在光线追踪的影子下,会产生非常好的半影。

在这里插入图片描述

另外,光线追踪阴影的开启,也会影响角色的皮肤透射效果。

对于睫毛部分的半透光追阴影问题。我们可以修改睫毛的材质,让其不投射光追的影子。或者不用半透的材质而用Mask的材质。这两种方式都可以解决问题。

在这里插入图片描述
在这里插入图片描述

另外一个就是头发影子的精度,如果开启了光追,头发如果要投射非常精确的影子,我们需要在头发里把头发的光追的几何体打开。这样在光追下可以产生非常细腻的影子。但是帧率也降低了很多。

在这里插入图片描述
在这里插入图片描述

第二个是关于皮肤透射开关,一个是耳朵部分打开和关闭有很大的差异。

关闭
在这里插入图片描述

打开

在这里插入图片描述

另外在背光的情况下观察鼻翼和嘴巴的部分。

关闭

在这里插入图片描述

打开

在这里插入图片描述

当Transmission打开之后,我们就可以调整Transmisson相关的参数来控制它的一个效果。

在这里插入图片描述

但是这里要注意的是,当前皮肤的透射效果和虚拟阴影贴图不能很好的一起工作。所以我们要使用皮肤透射,最好和光线追踪影子一起使用。否则的话尽量关闭皮肤的透射效果。

第三个是开关硬件的光线追踪,这是个Lumen GI的渲染选项,可以看一下开关以后下巴部分的明暗变化。

关闭
在这里插入图片描述

打开

在这里插入图片描述

开启和关闭决定了骨骼物体自身是否被纳入LumenScene里面,从而能够让其自身产生更好的表面之间的反弹和遮蔽。

另外可能需要注意的是毛发在GI作为主要光源的情况下的投影的缺失问题,当我们光源主要来源于GI或者天光。毛发的投影是相对比较粗糙的。尤其是毛发比较稀疏的地方头皮会比较亮,看上去像漏光。解决这样的问题需要我们在材质当中通过人为的为头皮部分定义一个AO的遮罩,能够让GI对特定的部位产生更多的遮蔽。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

但是角色的材质的AO效果要起效需要在项目设置中关闭允许静态灯光,一旦关闭静态的LightMap就不起效了。

自发光及特效LookDev环境

环境需要满足的一个条件,首先EV100的话还是得归0,主要是背景的明度建议在一个中灰的背景下,如果很亮的背景或者很暗的背景都会对前景的颜色,明度,亮度的对比判断产生误导。尤其是自发光,不受光照环境的影响下。因此为了体现最佳的层次,准确的颜色和亮度。特效是在制作的时候,尽量能够在一个比较恒定的中灰的背景下进行制作。

在这里插入图片描述

虽然制作的时候实现了最佳效果,但最终效果还是取决于当前镜头中的曝光。

有的时候我们不希望特效对曝光对它有那么大的影响。希望总能够保持最佳的效果,因此我们可以让特效自适应曝光。无论在什么样的曝光环境下特效总是保持制作时候的最佳的亮度和对比。

另外,为了更高的自由度有的时候,我们有的时候不希望它完全呈现他创建时的最佳效果,而曝光对其有一定的影响,我们可以控制它曝光自适应的一个百分比,比如说0,曝光完全来控制特效的亮度,1是完全不受曝光的影响,总是呈现最佳亮度,中间值的话有一个混合的效果。

0

在这里插入图片描述

1

在这里插入图片描述

中间值

在这里插入图片描述

为了更高的自由度,无论这边是不自适应曝光还是自适应曝光,在此基础上我们还可以对当前特效进行曝光补偿也就变得更亮,负补偿,变得更暗。来实现不同镜头下特定的效果。

在这里插入图片描述

进一步的需求我认为对这种曝光的自适应或者曝光补偿的控制,需要是逐实例对象的而非逐材质。比如说我们可以对不同的实例采用不同的是否自适应曝光或者曝光补偿的一些参数来实现更加自由的效果。

这些曝光的自适应以及曝光补偿是在粒子的渲染模块的材质中实现的。

下面是它的材质,红色的节点是来曝光和自适应的。

在这里插入图片描述

实现的具体介绍看视频。

在实际的应用当中无论当前的摄像机或镜头是什么样的曝光亮度,个人建议总是打开对象的曝光自适应。这样的好处是总是以一个最佳的亮度或效果作为起点,以此作为起点进行曝光的补偿这样对于最终效果的控制和调整会更加精准和方便一些。

总结

  • 创建lookdev环境的重要性和必要性
  • 这个环境需要满足的需求
  • 角色以及自发光特效LookDev的一些注意点

学习地址

地址

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值