Bakery GPU Lightmapper 1.8 官方手册

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bakery GPU Lightmapper 1.8 官方手册相关的知识,希望对你有一定的参考价值。

参考技术A

文档地址:
https://geom.io/bakery/wiki/index.php?title=Manual#Quickstart

1.通过 Asset Store将 Bakery导入到您的项目中。

2. Unity将显示要导入的文件列表。如果您是第一次使用Bakery,建议您 点击导入 。有经验的用户可能希望取消选中 examples 文件夹以进行更轻量的安装。

文件将被导入到Assets / Bakery和Assets / Editor / x64 / Bakery。这些文件夹以后可以移动。

3.然后,Unity将导入Bakery并编译脚本。它可能显示如下窗口:

在这种情况下,您应该单击“继续”。

现在,您应该看到将Bakery菜单添加到编辑器中:

1.添加一些模型或图元,并将其标记为“静态”。

网格必须具有不重叠的UV才能进行光照贴图。如果存在UV2,则使用UV2(否则为UV1)。如果您没有解开模型以进行光照贴图,请确保选中在该资产上 生成“ 光照贴图 UV ”。 Unity原语已经具有正确的UV2。

2.选择“定向光”(为您创建的一个Unity),然后向其添加“ 烘焙直接光” 组件。

3. Bakery Direct Light有许多选项可以调整,但是您可以轻松地将其与Unity light匹配。点击将 贴图映射为实时 。现在,面包店灯应具有与Unity默认的定向颜色相同的淡黄色。

4.要获得阴影的环境照明,请创建“天光”(“面包店”->“创建”->“天光”)。

5.选择“天窗”,为其提供一些蓝色,然后单击“将 场景天盒匹配到此光” 。这将使场景天空盒与照明完全匹配。

6.单击烘焙->渲染光照贴图。默认情况下,“全光照”模式处于活动状态。它会烘焙所有灯光的直接和间接贡献。如果要将实时阴影与烘焙的GI结合使用,请将其更改为 Indirect

7.单击 渲染

8.完成!您现在应该已经烘焙了GI:

可以通过Bakery-> Render Lightmap访问所有渲染设置。保存每个场景的设置。“面包店”窗口中最上方的选项使您可以在“简单”,“高级”和“实验”设置之间进行切换,每个后续模式都会显示更多可调整的选项。简单模式足以应付大多数场景,并且是入门的好方法。

定义要烘焙的光照贴图的类型。

所有面包房灯均具有完整的直接和间接照明。

Unity支持的不同渲染模式的比较

基本混合模式。它将在每盏灯上查看“烘焙贡献”选择器:如果将其设置为“ 直接和间接” ,则与在“全光照”模式下一样对灯进行烘焙。如果将其设置为 Indirect Only ,则仅烘焙此灯光的间接贡献(GI)。在后一种情况下,您应该在对象上同时保持Unity和Bakery灯光,一个灯光提供实时直接贡献,另一个灯光用于预先计算的GI。

左:完全烘烤的光。中心:动态光和烘焙的GI。右:胶囊阴影,凹凸和高光是动态的,但立方体阴影和GI是烘焙的。

当摄像机足够远或禁用动态阴影时,同一场景将如下所示

更高级的混合模式。它通过生成两种类型的光照贴图来工作-一种具有烘焙色(如在间接模式下),另一种具有静态对象的阴影。它有几个好处:

更多细节

目前,只有Direct,Point和Spot光源可以与遮罩交互(因为它们是Unity实时支持的唯一类型)。要启用此行为,必须在同一对象上同时具有Unity和Bakery灯光,并将Baked Contribution设置为 Indirect和Shadowmask 。未标记的灯将像在间接模式下一样被烘烤。

仅当您选择了阴影遮罩并且仅在项目的“质量设置”中切换 同名设置时 ,此复选框才可见。 更多细节。

启用 减 光照明模式。

此选项对光照贴图没有任何特殊作用,实际上,其作用与“全光照”一样。

唯一的区别是,它还设置了实时Unity灯以与减法模式一起使用(因为无法通过UI进行操作)。

您将需要在 Unity照明窗口中 另外设置全局减法参数(例如全局阴影颜色)。

只烤AO。如果您知道自己在做什么,可能会很有用。确保设置 AO选项 。

不同方向模式的比较

定义如何烘焙方向信息。标准光照贴图每个纹理像素仅存储一种颜色,而方向光照贴图为着色器提供了有关光照在纹理素周围半球如何变化的提示。需要此数据才能将完全照亮的区域与法线贴图结合在一起。将其插入内置的 Bakery着色器 中也可以产生近似的镜面反射响应。

没有方向性数据,每个纹理像素只有一种颜色。

仍然没有方向性数据,但是在渲染光照贴图时会考虑法线贴图。没有额外的运行时开销。由于光照贴图通常比普通贴图具有更低的分辨率,因此结果可能看起来模糊。其他问题包括由于缺少mipmapping而在远处产生混叠,以及去噪步骤可能会弄脏细节。若要了解如何在此模式下将自定义着色器与过程法线一起使用,请阅读“ 法线贴图” 部分。

此模式类似于Unity中的“启发式”和“渐进式”烘烤。它与大多数着色器兼容,仅生成一个附加映射,并且运行时开销最小。不利的一面是,凹凸贴图看起来相当微弱且呈灰色,与实时照明下的同一对象相比可能有很大不同。

基于最初为HL2( 幻灯片 )发明的“光能传递法线贴图”技术,后来在许多游戏中使用(例如“镜之边缘”)。它总共生成3个HDR映射,这是所有存储器中最需要内存的模式。运行时开销仍然相对较低。此模式比“主导方向”更为精确。它更适合再现表面对比度并处理从不同角度影响法线贴图的彩色光。

基于“冻伤中的预先计算的全局照明” 论文 。这是最高质量的模式,可提供更好的表面对比度,并代表来自不同方向的不同颜色的照明。总共生成4张地图,其中只有一张是HDR,因此占用的内存少于RNM。运行时开销略高于RNM。

每单位1 vs 10纹素

每个世界单位大概的光照贴图像素数量。影响生成的光照贴图的数量和分辨率。

入门示例值:

假定场景比例约为1个单位= 1米。在Unity中工作时,通常建议使用这种比例,以便更好地导航和进行物理模拟。如果比例不同,请相应地乘以Texels。

请记住,“每单位Texels”是基本分辨率,但是可以使用“网格渲染器”上的“ 在光照贴图中缩放” 选项以及“烘焙”窗口中的“ 按地图类型 缩放” 来另外调整每个对象。

最大光照贴图大小限制。如果对象不能容纳在单个光照贴图中(根据当前的“每单位Texels”值),则会分配其他光照贴图。同样的4个正方形对象可以拍摄4个512x512映射或1个1024x1024。

注意更多的反弹如何为封闭空间带来更多的光线。

定义光线应从表面反弹多少次。通常,较低的值对于室外场景(例如城市)就足够了,而对于较封闭的场景(内部,洞穴)则需要较高的值。

左:样本= 4,右:样本=16。出于说明目的,去噪功能已关闭。

影响GI的质量。典型值为16到32。

当GPU在光照贴图上工作时,操作系统和其他软件的响应速度可能会降低。此选项使您可以在烘烤速度和系统响应能力之间取得平衡。

为所有打开的场景烘焙光照贴图。如果“ 光探头模式” 设置为L1,则也要烘烤光探头。

烘焙所有打开的场景的 光探测器 。

请注意,要在“阴影 遮罩” 模式下对动态对象获得正确的混合光阴影,还需要启用 遮挡探针 。

为所有打开的场景烘焙 反射探测器 。此按钮仅是为了方便起见,它将调用内置引擎反射探针更新。

烘焙当前天空盒的全局漫反射探测器。与“渲染反射探针”一样,它仅调用内置引擎功能。

当按下“ Render Light Probes”时,让Unity使用当前选择的内置光照贴图器烘焙遮挡探针。遮挡探针是存储在常规光探针中的其他数据,它可以防止动态物体在阴影区域被照亮。当前,无法在Unity中使用自定义遮挡探针,并且必须调用自己的光照贴图来完成这项工作。

这些选项将在按下“渲染”按钮之一后验证场景,并显示警告对话框,询问是否继续或停止烘焙过程。

更改光探针的烘烤方式。

如果启用了“ 遮挡探针” 选项,Unity 2019.3中似乎存在一个错误,无法正确保存旧版光探针颜色。L1模式现在是默认模式,在使用遮挡探针时建议使用。传统模式将很快被弃用,并由基于L1的新L2模式代替。

为资产配置UV填充调整。可能的值:

设置所需的降噪器。可能的值:

找到最佳样品位置以防止漏光。该算法的细节在 此处 概述。在某些情况下(通常具有平滑法线的较大和非常低的多边形几何)可能会产生错误的结果,在这种情况下,可以将其禁用。

烘烤之前卸载Unity场景以释放视频内存。只需在编辑器中显示,复杂的场景就可以占用几GB的VRAM。

左:降噪,右:降噪。

如果启用,将应用降噪算法。面包店使用 Nvidia的AI去噪器 。

左:接缝,右:接缝是固定的。

如果启用,将尝试混合由UV不连续产生的接缝。对于平滑几何体(包括Unity的默认球体)很有用。

如果一次加载多个场景,并且启用了此选项,则每个场景将具有自己的一组光照贴图,不会与其他场景共享。在运行时流式传输场景时,限制加载的纹理数量很有用。

孔填充关闭或打开。

如果将 Atlas Packer 设置为xatlas,将尝试填充每个孔,从而产生更有效的图集。对于几何形状非常复杂的场景,它可能会增加场景导出时间,但建议不要这样做。

最小光照贴图大小限制。可用于在许多小的但已完全占用的光照贴图与少数未完全填充的光照贴图之间进行平衡。

允许您以不同的方式缩放颜色/阴影蒙版/方向贴图的分辨率。例如,一种常见的情况是具有低分辨率的间接颜色但具有高度详细的阴影蒙版。请注意,缩放比例是在渲染光照贴图后应用的,因此不会节省烘焙时间。如果启用“调整UV填充”,则填充将基于最低分辨率贴图,以防止纹理像素泄漏。

Checker预览进行中

如果选中“显示检查器”复选框,则“场景视图”将在可见对象的顶部渲染一个棋盘图案,以演示光照贴图的纹理大小。这对于确保在烘烤之前为“单位像素”和其他影响分辨率的设置使用足够的值很有用。

启用检查器预览将强制Bakery执行地图集打包。这可能需要一些时间,但不应超过几秒钟。更改某些内容后,请按刷新检查器重新设置场景以查看更改。

Checker预览还使用随机颜色来显示如何将场景拆分为不同的光照贴图。

将任何表面发射乘以该数字。

用这个数字乘以所有反弹的照明。与轻型组件的间接强度相同,但全局。

背面GI

左:背面GI = 0,右:背面GI =1。请注意阴影区域如何获得更多绿色照明。

确定有多少光从正面传递到背面,然后由GI反射。这对于像叶子这样的半透明薄表面特别有用。值在0-1范围内。

Unity Bakery使用说明

什么是Bakery 为什么用Bakery

Bakery 是一款可用于生产的高端 GPU 光照贴图器,其设计考虑了灵活性和性能。

修复各种烘焙伪影,例如接缝、光/阴影泄漏、不正确的阴影终结器等。烘焙光照贴图不会比在离线渲染器中渲染相机帧带来更多问题。

烘焙各种有用的光照数据。不同光源在任何组合中的直接和间接贡献、单独的阴影掩模、方向矢量、球谐函数等。照明也可以按顶点烘焙或放入探针中,而不是使用纹理。

物理正确性。烘焙结果与著名的无偏见渲染器 Mitsuba 进行了彻底的比较。

细节层次支持。

Bakery 还可以利用 RTX 硬件来加速烘焙。

使用说明

Bakery有三种烘焙方式:简单渲染,高级渲染,实验性渲染

Simple:简单模式,速度快,效果差

Advanced:高级渲染模式,速度慢,效果最好,适合最后的烘焙

Experimental:实验模式,速度中,效果还可以,平时最常用

 

Simple

Render mode:渲染模式,定义了要烘焙的光照贴图的类型

 

Full Lighting,全照明,为所有的光照提供完整的直接和间接的照明。

Indirect,这这是一种混合模式,它将查看每个灯光上的 Baked Contribution 选择器:如果将其设置为Direct And Indirect,则灯光会像在 Full Lighting 模式下一样烘焙。如果将其设置为Indirect Only,则仅烘焙此灯光的间接贡献 (GI)。

在后一种情况下,您应该在对象上同时保留 Unity的灯和 Bakery 灯,一个提供实时直接贡献,另一个用于预先计算的GI。

Shadowmask,阴影遮模,更高级的混合模式。它通过生成两种类型的光照贴图来工作 - 一种具有烘焙颜色(如在间接模式下),另一种具有来自静态对象的阴影。

 

Subtractive,减法模式,这个选项对光照贴图没有任何特殊的作用,事实上,它就像全光照一样工作。唯一的区别是它还设置了实时 Unity 灯光以使用减法模式(因为它不能通过 UI 完成)。

Ambient Occlusion Only,仅环境光遮挡,只烤AO(如下图右边只烘焙了AO)

 

Directional mode

定义方向信息的烘焙方式。标准光照贴图每个纹素只存储一种颜色,而定向光照贴图为着色器提供了光照如何在纹素周围的半球上变化的提示。将完全光照贴图区域与法线贴图结合起来需要此数据。将其插入内置的Bakery 着色器也可以产生近似的镜面反射响应。

 

None ,没有方向数据,每个纹素单色。

Baked Normal Maps 烘焙法线贴图,依然没有方向数据,但是在渲染光照贴图时会考虑法线贴图。

Domunant Direction 这种模式类似于Unity中的Enlight和Progressive烘焙模式。

RNM, 基于最初为HL2发明的Radiosity Normal Mapping技术,后来用于许多游戏。总共生成3个HDR地图,是所有模式中最需要内存的模式。运行时开销相对较低。这种模式比Domnant Direction更精确,他更擅长再现表面对比度和处理从不同角度影响法线贴图的彩色光。

SH 基于“Frostbite 中的预计算全局照明”这是最高质量的模式,可提供更好的表面对比度并代表来自不同方向的不同颜色的照明。总共生成 4 个映射,其中只有一个是 HDR,因此比 RNM 占用更少的内存。运行时开销略高于 RNM

 

Texels per unit,每个世界单位的光照贴图纹素的近似数量。影响生成的光照贴图的数量和分辨率。

大型室外区域(一个城市):1 - 5

中等户外区域(一些小巷):10-20

高品质内饰:100

Max resolution,最大光照贴图大小限制。如果对象不能放入单个光照贴图中(给定当前的 Texels Per Unit 值),则会分配额外的光照贴图。同样的 4 个方形物体可以拍摄 4 张 512x512 的地图或一张 1024x1024 的地图。

Bounces ,定义光线应该从表面反弹多少次。对于室外场景(例如城市),通常较低的值就足够了,而对于更封闭的场景(室内、洞穴)则需要较高的值。

Samples ,影响 GI 的质量。典型值为 16 到 32。

GPU priority ,当 GPU 处理光照贴图时,操作系统和其他软件可能会变得反应迟钝。此选项允许您在烘焙速度和系统响应能力之间取得平衡。

Render

为所有打开的场景烘焙光照贴图。

Render Light Probes

为所有打开的场景烘焙光探测器

Render Reflection Probes

为所有打开的场景烘焙反射探针

Update Skybox Probe

为当前天空盒烘焙全局漫反射和反射探针。

Advanced(高级渲染设置)

高级渲染设置包含了简单设置的功能,重复的设置就不介绍了。

Light probe mode(光探头模式)

更改光照探针的烘焙方式。

Legacy:使用 Render Light Probes 按钮生成探针。点光源和定向光源在光照贴图器中计算,而区域/天空/间接光照通过在每个探针位置渲染立方体贴图来收集。结果存储为L2 球谐函数。缺点是立方体贴图渲染性能缓慢,并且在游戏中的着色器不物理表示光照表面或您的项目设置为移动设备(Unity 可以剪掉高强度值)的情况下,光照贴图和探针之间可能不匹配。

L1:点击渲染时,光照探针将与光照贴图一起渲染。此选项提供卓越的烘焙性能,并保证探针照明与光照贴图匹配。结果存储为 L1 球谐函数(常规着色器仍可使用)。通过使用Bakery shader中的 Non-Linear Light Probe SH 选项可以进一步改进结果。

Asset UV processing(资产 UV 处理)

为资产配置 UV 填充调整。可能的值:

Don’t chage,不要改变:不要碰资产。

Adjust UV padding, 调整 UV 填充:将查找具有自动生成的 UV 的模型(资产上的“生成光照贴图 UV”)并进一步调整它们以在每个网格的 UV 岛之间具有适当的填充。导入器设置中的模型范围的包边距被忽略。取而代之的是计算最优值,给定每个网格的面积和光照贴图分辨率。

Remove UV adjustments 移除 UV 调整:恢复所有之前的 UV 调整,使自动展开的模型看起来像 Unity 最初展开它们的方式。

 

Denoiser (降噪器)

设置所需的降噪器。可能的值:

Optix 5:使用 OptiX 5.1 AI 降噪器(以前称为“Legacy denoiser”)。在 GPU 上运行。支持从Kepler(通常是 GeForce 6xx)到Turing(通常是 Geforce 20xx)的一切。安培(30xx)不支持。OptiX 5.1 使用嵌入其中的静态训练数据集,这意味着它不受驱动程序实施的影响。

Optix 6:使用 OptiX 6.0 AI 降噪器(以前是默认选项)。在 GPU 上运行。似乎在 Kepler (6xx) GPU 上失败了,但可以在更新的所有东西上运行,包括 Ampere (30xx)。从 6.0 开始,OptiX 降噪器的训练数据集在驱动程序中。在驱动程序 v442.50 之前,它的行为类似于 OptiX 5.1;但是,在 NVIDIA更改数据集之后,结果可能会有所不同。更新后的数据集有时可能会产生类似网格的图案和更亮的边缘(仍然可以使用“去噪:修复亮边缘”来修复),但它运行得更快。

Optix 7:使用 OptiX 7.2 AI 降噪器。行为类似于 OptiX 6.0,但可能在 Ampere (30xx) 上得到更好的支持。

OpenImageDenoise:使用英特尔 Open Image Denoise 库。在 CPU(任何支持 SSE 4.1 的 CPU)上运行。可能比 OptiX 稍慢,但质量相当。

 

Lightmapping tasks(光照映射的设置)

Adjust sample positions 调整样本位置,寻找最佳样品位置以防止漏光。

Unload scenes before render,渲染前卸载场景,在烘焙之前卸载 Unity 场景以释放视频内存。

Denoise去噪,如果启用,将应用去噪算法。

Fix Seams修复接缝,如果启用,将尝试混合由 UV 不连续性创建的接缝。

Split by scene 按场景分割,如果一次加载多个场景并启用此选项,则每个场景将拥有自己的一组光照贴图,不与其他场景共享。

Min resolution,最小光照贴图大小限制。可用于平衡许多小但完全占用的光照贴图与少数未完全填充的光照贴图。

Scale per map type 每个地图类型的比例,允许您以不同方式缩放颜色/阴影蒙版/方向图的分辨率。

Checker preview,如果打开显示检查复选框,场景视图将在可见对象顶部呈现棋盘图案以展示光照贴图纹理大小。

 

Emissive boost,将任何表面发射乘以该数字。

Indirect boost,将所有反弹光照乘以该数字。与光照组件的间接强度相同,但全局。

Backface GI,确定有多少光通过正面传递到背面,然后被 GI 反射回来。这对于像叶子这样的薄半透明表面特别有用。值在 0-1 范围内。

Ambient occlusion (环境光遮蔽),您可以将简单的非物理环境光遮蔽应用于最终场景照明以达到美学目的。

强度:控制 AO 效果的可见性。值为 0 禁用效果。

半径:确定 AO 效果中使用的光线距离。较小的值会产生局部遮挡(角落、皱纹),而较大的值使其更类似于天光,会产生来自远处物体的阴影。

样本:影响环境光遮挡的质量。典型值为 4 到 32。

RTX Mode,启用 RTX 硬件加速。只有 RTX GPU 会从此选项中受益。支持的最低驱动程序版本为 418。

驱动程序可以在大多数非 RTX Nvidia 卡上模拟 RTX 模式,但结果通常较慢。

必须在 Ampere (3xxx) 卡上启用 RTX 模式。

Export terrain trees,如果启用,绘制的地形树将影响照明。

Terrain optimization,如果启用(默认),地形将使用单独的光线追踪技术来利用其高度场几何。否则,它们将被视为任何其他网格。地形优化显着减少了高分辨率地形所需的内存占用。在某些情况下,它还可以使地形烘焙更快,在其他情况下(尤其是简单的低分辨率景观),禁用它可能是有意义的。

Samples multiplier,将所有阴影和 GI 样本乘以指定的因子。使用它在草稿和最终质量之间快速切换。

GI VRAM optimization,切换用于非常大场景的内存优化,尤其是在一次烘焙太多光照贴图时。如果启用,可能会稍微减慢渲染速度。如果禁用,并且场景太大,Bakery 可能会出现内存不足。

自动:根据开放场景猜测是否需要优化。猜测只是近似值,因此如果您知道场景很大,请将其设置为 Force On。

强制开启:始终启用。

强制关闭:始终禁用。

 

Tile size,与GPU Priority相同,但不是设置抽象优先级,而是设置图块大小。Bakery 将光照贴图拆分为更小的图块,并一次更新一个。更小的尺寸意味着更多的 GPU 工作中断,并且可以使系统更具响应性。

Experimental(实验性渲染模式)

Unwrapper  解包器,如果启用了调整 UV 填充,则定义将使用的展开器。

默认值:标准Unity解包器。Bakery 将为每个具有不同填充参数的网格

调用Unwrapping.GenerateSecondaryUVSet 。

Xatlas:使用jpcy的xatlas,Ignacio Castaño的thekla_atlas的修改版本。thekla_atlas 用于 The Witness。

 

Atlas Packer,选择将不同对象 UV 布局打包到大型光照贴图集时使用的算法。

默认值:v1.7 之前使用的原始算法 Bakery。

xatlas:使用 xatlas。

某些功能仅支持一个 atlas 打包器:

默认

xatlas

覆盖分辨率

Yes

NO

高效的 LOD 包装

NO

Yes

填孔

NO

Yes

请注意,也可以为每个 Lightmap Group 单独选择 atlas packer。

 

Export geometry and maps,如果启用,Bakery 将在渲染之前将场景导出为其格式。如果您确定场景的几何体和纹理以及光照贴图分辨率设置未更改(例如,您只是调整 GI 或光照设置),您可以禁用此复选框以加快下一次渲染速度。

Update unmodified lights,如果启用,Bakery 将重新计算自上次渲染后未更改的光源。如果您只调整一个灯光并且不想等待其他灯光重新渲染,您可以禁用此复选框。

Update modified lights and GI,如果启用,Bakery 将重新计算自上次渲染后更改的 GI 和灯光。

UV padding: increase only,仅在启用“调整 UV 填充”时可见。默认情况下,模型资源的最佳 UV 填充仅基于当前加载的场景进行计算。如果同一模型的多个实例使用不同的光照贴图分辨率,则最小的一个将定义填充,因此 UV 图表之间的间距足够大以防止它们相互泄漏。但是,在 2 个不同的独立场景中烘焙相同的模型可能会破坏先前场景中的 UV,同时针对新场景进行优化。此复选框允许通过从不减小填充值来防止此类行为,因此它将始终针对有史以来最低分辨率的实例进行优化。

Denoise: fix bright edges(去噪:修复明亮的边缘),仅在“降噪”打开时可见。有时,用于去噪的神经网络可能会在阴影周围产生明亮的边缘,就像应用了锐化效果一样。如果启用此选项,Bakery 将尝试将它们过滤掉。启用后,去噪阶段可能会稍微慢一些。

此功能还可用于过滤“萤火虫”,即光照贴图中偶尔出现的亮点。

Combine with Enlighten real-time GI(结合 Enlighten 实时 GI),如果启用,则当按下 Render 按钮时,它将首先尝试使用 Enlighten 进行烘焙以计算实时 GI。之后,将发生常规的 Bakery 光照贴图过程。烘焙 GI 和实时 GI 将一起工作。

以上是关于Bakery GPU Lightmapper 1.8 官方手册的主要内容,如果未能解决你的问题,请参考以下文章

CodeForces - 833B The Bakery

CF834D The Bakery

CF833B The Bakery

CodeForces 834D The Bakery

题解CF#426(Div. 1) B.The Bakery

text 自定义WP Bakery元素