【转】【Unity3D技术文档翻译】第3.6.2篇 渐进式光照贴图(Progressive Lightmapper)

本章原文所在章节:【Unity Manual】→【Graphics】→【Graphics Overview】→【Lighting】→【Global Illumination】→【Progressive Lightmapper】

渐进式光照贴图(Progressive Lightmapper)

image.png

注意:渐进式光照贴图(Progressive Lightmapper)在 Unity 2018.1 中第一次被添加。

渐进式光照贴图是一种基于路径追踪(fast path-tracing-based)的光照贴图系统,它提供了能在编辑器中逐渐刷新的烘焙光照贴图(baked lightmaps)和光照探针(Light Probes)。它要求不重叠的 UVs 具有较小的面积和角度误差,以及图表(charts)之间有足够的填充。

渐进式光照贴图采取了一个短暂的准备步骤来处理几何体与实例的更新,同时生成 G-buffer 和图表遮罩( chart masks)。然后,它会立即生成输出,并随着时间的推移逐步细化输出,以实现更完善的交互式照明工作流。此外,当渐进式光照贴图在烘焙时,因为它提供了一个预估的时间,所以烘焙时间更加可预测。

渐进式光照贴图以光照贴图的分辨率对每一个纹素(texel)都烘焙了全局光照(GI),而不需要向上采样,或者依赖于辐照度缓存,或者其他的一些全局数据结构。这就使得它足够健壮,允许你烘焙你选中的部分光照贴图,这让你能够在场景中快递地测试和迭代。

想了解更多使用流程相关的内容,请看视频教程: In Development - Progressive Lightmapper (YouTube)

设置

打开 Window > Lighting > Settings 菜单

image.png
属性 作用
Lighting Mode(光照模式) 指定 Unity 对场景中的所有混合光照使用哪种光照模式。选项有:Baked IndirectDistance ShadowmaskShadowmaskSubtractive
Lightmapper(光照贴图系统) 使用该选项来指定使用哪种光照计算方式来计算场景中的光照贴图。选项有:ProgressiveEnlighten。默认选项是 Progressive。如果你想使用 Enlighten 系统,请看 Enlighten 一节。
Prioritize View(优先视图) 开启该选项后,渐进式光照贴图(Progressive Lightmapper)优先刷新当前场景视图中可见的纹素变化,然后再改变视野外的纹素。
Direct Samples(直接光照采样) 来自每个纹素的直接光照采样数(路径数)。该设置控制了渐进式光照贴图在计算直接光照时的采样数。增加该值将提升光照贴图的质量,但是也会增加烘焙时间。
Indirect Samples(间接光照采样) 来自每个纹素的间接光照采样数(路径数)。该设置控制了渐进式光照贴图在计算间接光照时的采样数。在一些场景中,尤其是户外场景,100采样数就足够了。而对于有自发光几何体的室内场景,则可以增加数值,直到看到你想要的效果。
Bounces(反射次数) 当追踪路径时,使用该值来指定间接光照反射的次数。对于大多数场景,反射2次应该足够了。而对于一些室内场景,可能需要更多地反射次数。
Filtering(过滤) 配置光照贴图的后处理(post-processing)来限制噪点。选项有:NoneAuto 或者 Advanced。其中,Advanced 选项又提供了额外三个用于手动配置的参数。在 Auto 模式中,将使用来自 Advanced 模式的默认值。对于每个参数,Gaussian(高斯)和 A-Trous 过滤器都可被单独使用。
Filtering / Auto 使用默认数值用于光照贴图的后处理。
Filtering / Advanced 提供了额外三个用于手动配置的参数。你可以对直接和间接光照设置单独使用 Gaussian 和 A-Trous 过滤器。注意,Gaussian 过滤器数值定义的是半径,而 A-Trous 过滤器数值定义的是“sigma(标准差)”。Sigma 是一个决定了图像中是否运用过滤的阈值参数。
Filtering / Advanced / Direct Filter 选择一个过滤器用于光照贴图中的直接光照。
Filtering / Advanced / Direct Filter / Gaussian 对光照贴图中的直接光照使用高斯过滤器。
Filtering / Advanced / Direct Filter / Gaussian / Direct Radius 纹素中高斯过滤器的半径。半径越大,模糊强度越大。
Filtering / Advanced / Direct Filter / A-Trous 对光照贴图中的直接光照使用 A-Trous 过滤器。
Filtering / Advanced / Direct Filter / A-Trous / Direct Sigma 纹素中 A-Trous 过滤器的 sigma 值。sigma 值越大,模糊强度越大。
Filtering / Advanced / Direct Filter / Gaussian / None 对光照贴图中的直接光照不适用过滤器
Filtering / Advanced / Indirect Filter 选择一个过滤器用于光照贴图中的间接光照。(该选项及其子选项,和上面的选项内容差不多,只不过将直接光换为间接光)
Filtering / Advanced / Indirect Filter / Gaussian 对光照贴图中的间接光照使用高斯过滤器。
Filtering / Advanced / Indirect Filter / Gaussian / Indirect Radius 纹素中高斯过滤器的半径。半径越大,模糊强度越大。
Filtering / Advanced / Indirect Filter / A-Trous 对光照贴图中的间接光照使用 A-Trous 过滤器。
Filtering / Advanced / Indirect Filter / A-Trous / Indirect Sigma 纹素中 A-Trous 过滤器的 sigma 值。sigma 值越大,模糊强度越大。
Filtering / Advanced / Ambient Occlusion Filter(环境遮蔽过滤器) 选择一个过滤器用于光照贴图中的环境遮蔽(简称 AO)。至于当你开启 Ambient Occlusion 选项,该值才可用。
Filtering / Advanced / Ambient Occlusion Filter / Gaussian 使用一个高斯过滤用于光照贴图中的 AO。
Filtering / Advanced / Ambient Occlusion Filter / Gaussian / Ambient Occlusion Radius 纹素中高斯过滤器的半径。半径越大,模糊强度越大。
Filtering / Advanced / Ambient Occlusion Filter / A-Trous 使用一个 A-Trous 过滤用于光照贴图中的 AO。
Filtering / Advanced / Ambient Occlusion Filter / A-Trous / Ambient Occlusion Sigma 纹素中 A-Trous 过滤器的 sigma 值。sigma 值越大,模糊强度越大。
Filtering / None 选择该选项后,将不对光照贴图中的间接光照使用过滤器。
Lightmap Resolution(光照贴图分辨率) 指定用于光照贴图的每 unit(单位)的文素数(texels)。增加该值将提升光照贴图的质量,但是也会增加烘焙时间。注意,改变该数值,将会以它的平方值影响纹素数(因为该值代表的是光照贴图的高和宽)。可在统计中查看 Occupied texels 值,下面有相关介绍。
Lightmap Padding(光照贴图填充) 使用该值指定烘焙光照贴图中各个形状之间的间隔(单位:纹素)。默认值是2。
Lightmap Size(光照贴图尺寸) 完整光照贴图纹理的尺寸(单位:像素),由各个区域合并而成。默认值是 1024。
Compress Lightmaps(压缩光照贴图) 一张压缩过得光照贴图占据更少的存储空间,但是压缩过程会产生不需要的视觉效果。勾选该选项将压缩光照贴图,或者不勾选将不会压缩。默认是勾选的。
Ambient Occlusion(环境遮蔽) 勾选该属性将开启一组用于控制 AO 表面的相对亮度的设置。更高的数值会增加遮蔽处与完全照亮区域之间的对比。该属性只作用于 GI 系统中间接光照的计算。默认是开启的。
Ambient Occlusion / Max Distance 该属性控制光照系统发射光线的距离,决定是否对物体应用遮蔽。更大的数值生成更长的射线,以及光照贴图中更多的阴影;更小的数值生成更短的射线,于是只有相互之间靠得很近的物体才有阴影。该属性设置为0的话,将投射一根无限长的射线。默认值是1。
Indirect Contribution(间接光贡献) 使用滑动条来调节最终光照贴图中间接光(比如:环境光,或者反射光、来自自发光物体的灯光)的亮度。范围是0到10,默认值是1。数值小于1将减少亮度,数值大于1将增加亮度。
Direct Contribution(直接光贡献) 使用滑动条来调节直接光的亮度。范围是0到10,默认值是0。数值越大,应用于直接光照的对比越高。
Final Gather(最终收集器) 开启该选项,Unity 将在 GI 计算中以烘焙光照贴图的分辨率计算最终的灯光反射。这将提升光照贴图的视觉质量,但是会增加额外的烘焙时间。
Ray Count(射线数量) 定义发射自每个 Final Gather(最终收集器)的射线数量,默认值是 256。
Denoising(去噪) Final Gather(最终收集器)的输出施加一个去噪过滤。该属性默认被勾选。
Directional Mode(平行模式) 你能够设置光照贴图,来存储关于游戏对象的表面上的每一点的主要接收光的信息。更多细节请看 Directional Lightmapping 一节。默认模式是 Directional
Directional(平行) 在该模式下,Unity 生成一张二级(次级)光照贴图来存储接收光的主要方向。该模式允许使用漫反射法线贴图材质,以能够与GI系统一起工作。为了获取额外的光照贴图数据,该模式需要大约两倍的存储空间。Unity 不能在 SM2.0 的硬件上或者使用了 GLES2.0 时解码,此时会退回到 non-directional(非平行)光照贴图模式。
Non-directional(非平行) 在该模式下,Unity 不会生成一张二级(次级)光照贴图,取而代之的是将所有光照信息存储到相同的空间中。
Indirect Intensity(间接光强度) 控制 Unity 存储在 real-time(实时)和 baked(烘焙)光照贴图中的间接光的亮度,范围是0到5。数值大于1将增加间接光的亮度,数值小于1将减少间接光的亮度。默认值是1。
Albedo Boost(反照率增强) 通过增强场景中材质的反照率,来控制表面之间反射光的数量,范围是1到10。增加该值后,在计算间接光照时,反照率值将趋近与白色。默认值是1,是标准的物理性质。
Lightmap Parameters(光照贴图参数) Unity 使用了一系列综合参数用于光照贴图,而不仅仅是 Lighting 窗口中的属性。该属性中预设了一些可用的默认配置,当然你也可以使用 Create New 选项来创建你自己的光照贴图参数文件。默认选项是 Default-Medium

统计

image.png

Auto GenerateGenerate Lighting 选项下展示了关于光照贴图的统计,包括:

  • Unity 已经创建的光照贴图数目。
  • Memory Usage:当前光照贴图所需的内存。
  • Occupied Texels:光照贴图 UV 空间中被占用的纹素数。
  • Lightmaps in view:场景视图中光照贴图数目。
  • Lightmaps not in view:场景视图之外的光照贴图数目。
    -- Converged:所有计算已完成的光照贴图。
    -- Not Converged:仍然在进行烘焙的光照贴图。
  • Bake Performance:每秒 mrays(百万射线) 数。如果该值过低(比如低于2),你应该调节你的设置或者硬件,以处理更多光线。

Auto 模式中,Unity 自动计算光照贴图和灯光探针。如果你没有开启 Auto 模式,你需要点击 Build 按钮来开始烘焙。

烘焙期间

渐进式光照贴图(Progressive Lightmapper)提供了监测和停止烘焙过程的选项。

ETA

image.png

当 Unity 在烘焙光照贴图时,会提供一个进度条,展示“预计完成时间(estimated time of arrival,简称 ETA)”,单位为秒。它提供了更加可预测的烘焙时间,让你快速知晓,在当前光照设置下,需要多少烘焙时间。

强制停止

image.png

在手动烘焙期间,可以在任何时候点击 Force Stop 停止烘焙过程。这可以让你在看到理想的效果时停止烘焙过程。

作者:何三思
链接:https://www.jianshu.com/p/4b5b5409e23e
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容