Bakery GPU Lightmapper 1.8 官方手册

安装

文档地址:
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 GPU Lightmapper 1.8 官方手册_第1张图片
Goahead.png

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

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

Bmenu.jpg

快速开始

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

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

Bakery GPU Lightmapper 1.8 官方手册_第2张图片
Staticmarked.jpg

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

Bulbgraph.png
面包店和Unity使用单独的光源组件。

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

Bakery GPU Lightmapper 1.8 官方手册_第3张图片
Matching.jpg

Bulbgraph.png
Direct Light组件可能会抱怨项目未使用线性光强度。问题是默认情况下Unity会错误地将gamma校正应用于光源颜色。可以通过脚本启用正确模式,这就是“修复”按钮的作用。如果您已经在非线性强度模式下设置了许多光源,并且不想再次更改它们,则可以跳过固定。即使您按下“修复”,也始终可以随时还原更改。

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

Menusky.jpg

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

Bulbgraph.png
将Unity skybox与Bakery天窗匹配是可选的,但对于正确性很有用,因为可以确保可见环境和引擎内反射探针与烘焙的照明匹配。

Bakery GPU Lightmapper 1.8 官方手册_第4张图片
Skycomp.jpg

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

Bakery GPU Lightmapper 1.8 官方手册_第5张图片
Bakerywindow.jpg

Bulbgraph.png
面包店可能会抱怨您使用的是旧的伽玛模式,建议您进行更改。如果您关心照明质量,强烈建议使用线性模式。如果您已经设置了一个较大的项目并使用了错误的伽玛,并且不想更改它或将其运送到不支持它的移动设备上,则可以忽略它。

7.单击渲染

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

Bakery GPU Lightmapper 1.8 官方手册_第6张图片
Bakedgi.jpg

渲染设置

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


渲染模式

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

全照明

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

Bulbgraph.png
在2017.3之前的Unity版本中,如果同一对象上同时具有Unity和Bakery组件,则需要手动禁用Unity组件,以避免出现双亮度。在较新版本中,与内置的光照贴图器一样,烘焙的灯光会自动禁用实时效果。

间接

Bakery GPU Lightmapper 1.8 官方手册_第7张图片
image

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

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

Bakery GPU Lightmapper 1.8 官方手册_第8张图片
Indirectonly.jpg

荫罩

Bakery GPU Lightmapper 1.8 官方手册_第9张图片
image

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

image

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

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

  • 实时阴影只能渲染少数动态对象,而不是整个场景。
  • 实时阴影和烘焙阴影可以正确融合在一起。
  • 实时光可以渲染凹凸,镜面反射和其他表面效果,同时仍被高质量的烘焙阴影所遮挡。

更多细节

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

Bakery GPU Lightmapper 1.8 官方手册_第10张图片
Smask22.jpg

距离荫罩

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

Bulbgraph.png
由于缺少相应的脚本API,复选框在Unity 5.6.x上不可见。相反,您可以在“窗口”->“照明”->“混合照明”->“照明模式”中进行切换。

Bulbgraph.png
在<2017.3版的Unity版本上,由于API限制,渲染Shadowmask光照贴图将清除光探针。烘烤后需要再次重新渲染它们。它不应在较新的版本上发生。

减法

启用减光照明模式。

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

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

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

仅环境光遮挡

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


定向模式

Bakery GPU Lightmapper 1.8 官方手册_第11张图片
image

不同方向模式的比较

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

没有

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

烘焙法线贴图

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

主导方向

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

RNM

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

SH

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

局限性
  • RNM和SH只能与Bakery着色器一起使用,或者需要对着色器进行调整。
  • 在RNM和SH模式下,不会创建标准的彩色光照贴图。您需要在场景中的所有材质上都具有Bakery着色器,或使用“光照贴图组”将RNM / SH对象与其余对象分开。
  • RNM和SH贴图使用MaterialPropertyBlock应用于对象,因此可能不会在Unity的“照明”窗口中完全显示。
  • “主方向”,“ RNM”和“ SH”模式可能需要更多的GI和“轻网格”样本才能获得可比的质量。

每单位特塞尔

Bakery GPU Lightmapper 1.8 官方手册_第12张图片
image

每单位1 vs 10纹素

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

入门示例值:

  • 大型室外区域(城市):1-5
  • 中等室外区域(一些小巷):10-20
  • 高品质内饰:100

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

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

Bulbgraph.png
在Lightmap中将“缩放”设置为0的对象将不会被烘焙,但仍会投射阴影并影响GI。


最大分辨率

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


弹跳

Bakery GPU Lightmapper 1.8 官方手册_第13张图片
image

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

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


样品

Bakery GPU Lightmapper 1.8 官方手册_第14张图片
image

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

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


GPU优先级

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


渲染

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


渲染光探头

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

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


渲染反射探针

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


更新Skybox探针

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


咬合探头

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


警告事项

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

  • UV验证:将检查所有模型是否都具有完全正确的光照贴图UV-特别是它们是否位于0-1范围内并且不重叠。
  • 覆盖检查:将告诉您将要覆盖哪些光照图文件。
  • 内存检查:将告诉您所需的视频内存量。
  • 样本计数检查:将检查是否有任何灯光,GI或AO的样本计数不合理,从而使GPU耗尽可用资源。
  • Lightmapped预制件验证:验证Lightmapped预制件,并通知某些预制件是否要被覆盖。

高级渲染设置

光探头模式

更改光探针的烘烤方式。

  • 旧版:使用“渲染光探针”按钮生成探针。点光源和定向光源是在光照贴图中计算的,而区域/天空/间接照明是通过在每个探针位置渲染一个立方体贴图来收集的。结果存储为L2球谐函数。不利的一面是立方体贴图的渲染性能较慢,并且在游戏中的着色器无法物理表示光照表面或您的项目设置为可移动时(Unity可以将高强度值切掉)的情况下,光照贴图和探针之间可能不匹配。
  • L1:单击“渲染”时,灯光探针将与光照贴图一起渲染。该选件可提供出色的烘烤性能,并确保探头照明与光照贴图匹配。结果存储为L1球面谐波(仍可由常规着色器使用)。通过使用Bakery着色器中的Non-Linear Light Probe SH选项可以进一步改善结果。

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


资产UV处理

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

  • 不要改变:不要触摸资产。
  • 调整UV填充:将查找具有自动生成的UV(资产上的“生成光照贴图UV”)的模型,并进一步调整它们以在每个网格的UV岛之间具有适当的填充。导入程序设置中的全模型打包保证金将被忽略。而是根据给定的每个网格面积和光照贴图分辨率来计算最佳值。
  • 删除UV调整:恢复以前的所有UV调整,使自动展开的模型看起来像Unity最初对其进行展开的方式。

降噪器

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

  • Optix 5:使用OptiX 5.1 AI降噪器(以前称为“传统降噪器”)。在GPU上运行。从开普勒(通常为GeForce 6xx)到图灵(通常为Geforce 20xx)的所有设备均受支持。安培(30xx)不支持。OptiX 5.1使用嵌入其中的静态训练数据集,这意味着它不受驱动程序实现的影响。
  • Optix 6:使用OptiX 6.0 AI去噪器(以前是默认选项)。在GPU上运行。似乎在开普勒(6xx)GPU上失败,但在包括安培(30xx)在内的所有较新版本上均可运行。从6.0开始,驱动程序中包含OptiX去噪器的训练数据集。在驱动程序v442.50之前,其行为与OptiX 5.1相似。但是,在NVIDIA更改了数据集之后,结果可能会有所不同。更新后的数据集有时可能会产生类似网格的图案和更亮的边缘(仍可通过“ Denoise:修复亮边缘”修复),但运行速度更快。
  • Optix 7:使用OptiX 7.2 AI去噪器。行为与OptiX 6.0类似,但在Ampere(30xx)上可能会得到更好的支持。
  • OpenImageDenoise:使用Intel Open Image Denoise库。在CPU(任何支持SSE 4.1的CPU)上运行。可以比OptiX慢一点,但是质量是可比的。

调整样品位置

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


渲染前卸载场景

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


去噪

image

左:降噪,右:降噪。

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


修复接缝

Bakery GPU Lightmapper 1.8 官方手册_第15张图片
image

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

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


按场景拆分

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


孔填充

Bakery GPU Lightmapper 1.8 官方手册_第16张图片
image

孔填充关闭或打开。

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


最小分辨率

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


每个地图类型的比例

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


检查器预览

Bakery GPU Lightmapper 1.8 官方手册_第17张图片
image

Checker预览进行中

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

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

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

Bulbgraph.png
Checker预览当前未显示地形的正确纹理像素大小。


发射增强

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


间接提升

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


背面GI

image

背面GI

Bakery GPU Lightmapper 1.8 官方手册_第18张图片
image

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

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


环境光遮蔽

Bakery GPU Lightmapper 1.8 官方手册_第19张图片
image

左:AO强度=0。右:AO强度= 1。

您可以出于美学目的将简单的非物理环境光遮挡应用于最终场景照明。

  • 强度:控制AO效果的可见性。值为0将禁用效果。
  • 半径:确定AO效果中使用的射线距离。较小的值会产生局部遮挡(拐角,皱纹),而较大的值会使它与天窗更相似,从而产生远处物体的阴影。
  • 样品:影响环境光遮挡的质量。典型值为4到32。

RTX模式

启用RTX硬件加速。仅RTX GPU将从此选项中受益。支持的最低驱动程序版本是418。

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


导出地形树

如果启用,绘制的地形树将影响照明。树木本身不会被烘烤。请注意,烘烤期间,每棵树均使用最高的LOD级别。不建议使用此选项来渲染具有高度详细模型的多公里森林。


地形优化

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


样本乘数

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


GI VRAM优化

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

  • 自动:根据开放场景猜测是否需要优化。猜测仅是近似值,因此,如果您知道场景很大,请将其设置为“强制打开”。
  • 强制启用:始终启用。
  • 强制关闭:始终禁用。

瓷砖尺寸

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


临时路径

临时文件文件夹。烘焙过程中,面包店可能需要几GB的可用空间。与HDD相比,在SSD上拥有此文件夹可以使渲染速度更快。目前,该文件夹不会自动清除。您可以随时删除其内容(渲染期间除外)。


输出路径

光照贴图文件夹。这是所有光照贴图以及lightprobe和顶点颜色资产将被保存的地方。此路径是相对于您的Assets文件夹的。


使用场景命名输出路径

如果启用此选项,则输出路径将自动设置为与当前活动场景同名的文件夹(Assets / CurrentSceneName /)。这类似于内置Unity光照贴图的行为。


渲染选定的组

仅烘焙包含所选对象的光照贴图组。不仅将重绘选定的对象,还将重绘它们所属的所有光照贴图组。其他光照贴图将不会更新。如果对象不属于某些手动分配的组,则将重新烘焙使用相同光照贴图的场景的一部分。


嘟嘟响

如果启用,烘焙完成后,面包店将播放声音。

实验性渲染设置

解包器

如果启用了“调整UV填充”,则定义将要使用的展开器。

  • 默认值:标准Unity解包器。面包店将为具有不同填充参数的每个网格调用Unwrapping.GenerateSecondaryUVSet。
  • xatlas:用途xatlas由jpcy,修改版的thekla_atlas通过伊格纳西奥·卡斯塔诺。thekla_atlas在《见证人》(博客文章)中使用。

阿特拉斯·帕克(Atlas Packer)

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

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

仅一个地图集打包机支持某些功能:

| | 默认 | Xatlas |
| 覆盖分辨率 | 是 | 没有 |
| 高效的LOD包装 | 没有 | 是 |
| 孔填充 | 没有 | 是 |

请注意,也可以为每个光照图组分别选择地图集打包程序。


导出几何和贴图

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


更新未修改的灯光

如果启用,则Bakery将重新计算自上次渲染以来未发生变化的光源。如果仅调整一个灯光,并且不想等待其他灯光重新渲染,则可以禁用此复选框。


更新修改后的灯光和GI

如果启用,则Bakery将重新计算自上次渲染以来已更改的GI和照明。


紫外线填充:仅增加

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


去噪:修复亮边

Bakery GPU Lightmapper 1.8 官方手册_第20张图片
image

左:去噪后可见明亮的边缘;右:固定。

仅在启用“降噪”时可见。有时,用于去噪的神经网络可能会在阴影周围产生明亮的边缘,例如是否应用了锐化效果。如果启用此选项,则Bakery将尝试将其过滤掉。启用后,去噪阶段可能会稍微变慢。

此功能还可用于过滤“萤火虫”,即来自光照贴图的偶发亮点。


与Enlighten实时GI结合

如果启用,则当按下“渲染”按钮时,它将首先尝试使用Enlighten进行烘焙以计算实时GI。之后,将进行常规的面包店灯光映射过程。烘焙GI和实时GI将一起工作。


在远程服务器上烘烤

启用网络烘焙。

组件

面包店光照贴图组选择器

指定要用于对象及其所有子对象的光照图组。光照贴图组是面包店用于共享一个光照贴图的对象集合的术语。群组具有告诉面包店如何包装对象的属性,如果将结果烘焙为纹理或顶点,则哪些灯光会影响它们。默认情况下,所有静态对象都会自动打包到多个光照贴图组(图集)中,因此您不必担心。手动定义组仅应用于特殊目的,例如:

  • 标记某些对象使用逐顶点光照贴图而不是纹理。
  • 使用精确的未缩放UV来烘焙光照贴图,就像它们在建模包中一样。
  • 将关卡的某些区域分组以使用单个光照贴图来促进资源流传输或在运行时通过脚本切换不同的烘焙光照。
  • 使用“渲染选定对象”按钮仅更新分组的对象。

要手动定义组,可以通过使用Assets-> Create菜单或使用组件中的Create New按钮来创建Lightmap Group Assets。使用“创建新”按钮时,将基于以下形式创建新资产:

  • 名称:要创建的光照图组资产的名称。
  • 打包模式:此选择器定义光照贴图组的打包模式。有3种模式:
    • 原始UV:对象及其子对象将使用未经修改的UV进行烘烤。不执行包装。当多个网格共享相同的已经打包的UV布局时,这对于模型很有用。
    • 打包图集:将对象及其子对象打包成专用的纹理图集。在v1.3之前,每个可打包的子代都需要具有该组件,但是不再需要。每个孩子都将被打包为自己的矩形,除非Bakery自动检测到一个具有不重叠子孩子的孩子,在这种情况下,多个对象可以使用一个矩形。
    • 顶点:对象及其子对象将使用顶点颜色的烘焙照明代替纹理。请注意,您需要一个自定义着色器才能正常工作,例如Bakery Shader。还包括一个简单的着色器(“面包店/简单顶点光照贴图”),以供演示和参考。了解有关顶点光照贴图的更多信息。
  • 定向模式:允许您覆盖组上的定向模式。除了自动(自动使用全局设置)外,其他选项相同。
  • 分辨率:所需的光照贴图分辨率。
  • Atlas打包程序:为此组选择Atlas打包算法。
  • 位掩码:用于排除光源影响光照贴图的切换列表。每个面包店光源都有一个位掩码设置。灯光仅影响与它们共享至少一个这些切换的灯光贴图组。默认设置表示所有灯光都会影响所有光照贴图。

Bakery GPU Lightmapper 1.8 官方手册_第21张图片
image

透明的自阴影关闭与开启:请注意一些单面但背面的多边形如何正确照明

如果您有分配了Pack Atlas模式的光照贴图组,则其他设置将出现在组件上:

  • 覆盖分辨率:覆盖此对象及其子对象在光照图中占据的分辨率。
  • 分辨率:手动定义的分辨率。例如,如果您有一个分辨率为512的光照贴图,并且已将其分配给4个对象,且覆盖分辨率设置为256,则Bakery将生成一个512x512光照贴图,其中每个对象恰好占用256x256正方形。

如果您选择光照贴图组资产,则其他实验设置将可见:

  • 地下散射:(单击以了解更多)
  • 法线偏移:允许您从表面偏移光线。这很少有用,主要用于实验目的。
  • 透明的自阴影:在表面后面发出光线,因此它不会在自身上投射阴影。可能对于半透明的树叶很有用。

烘焙光影预制

该组件允许预制件存储灯光映射元数据。这样的预制件可以在任何场景中实例化,无论是在编辑器中还是在运行时。该组件应直接添加到预制的根对象中。不支持嵌套的预制件。由于预制件将在烘烤后被覆盖(与按下“应用”按钮时相同的方式),因此要求预制件没有任何未应用的更改(子对象,材质和脚本参数不应移动)应该保持不变,等等)。如果检测到此类更改,则烘焙后将在组件UI中打印错误,并且不会保存任何元数据。如果启用了Lightmapped预制验证警告,则在烘焙之前,所有预制错误也会显示在对话框中。

灯光映射的预制件支持Bakery的所有功能,例如LOD,地形,定向光照贴图,RNM,SH,逐顶点模式和阴影蒙版。为了使荫罩正常工作,您还需要将灯光也包含在同一预制件中。

Bulbgraph.png
请注意,由于API的限制,预制荫罩只能在Unity 2017.4或更高版本上使用。

烘焙后,将将名为“ BakeryPrefabLightmapData”的对象添加到预制中。该对象保存一个脚本,其中包含应用光照贴图的所有必要数据。

此外,Lightmapped Prefab允许使用两个按钮保存当前渲染设置并将其加载回任何当前打开的场景:

  • 将当前渲染设置保存到预制件:在该预制件上存储当前渲染设置的副本。
  • 从预制中加载渲染设置:将当前“渲染设置”设置为存储在预制中的渲染设置。

面包店直接光

Bakery GPU Lightmapper 1.8 官方手册_第22张图片
image

带GI的纯正直射光

image

左:阴影散布= 0.01,右:0.05。请注意阴影如何开始锐化并随着距离逐渐变得模糊。

无限远的定向光(例如太阳)。

  • 颜色:颜色。
  • 强度:线性颜色倍增。
  • 阴影扩散:光源的大小,或者简单地说,阴影模糊。0 =最大锐利阴影,1 =最大模糊阴影。从技术上讲,它从单条光线插值到更宽的圆锥线。
  • 阴影样本:影响阴影质量。阴影扩散值越小,获得清晰图像所需的样本就越少。太阳阴影的典型值是1到16。将样本设置为0将使此光的阴影消失。
  • 位掩码:切换列表,用于排除此光源影响特定的光照贴图组。
  • 烘焙贡献:确定应烘焙哪种照明数据。仅在间接或阴影蒙版模式下可见。可能的值:
    • 直接和间接:直接和间接的贡献都将被完全烘烤。
    • 仅间接的:实时光应该提供直接的贡献;仅间接照明被烘烤。
    • 间接和阴影蒙版:应该使用实时光来提供直接贡献,但是静态几何体的阴影将被烘焙到单独的贴图中。动态和静态阴影将混合在一起。间接照明将照常烘烤。
  • 降噪荫罩:确定是否应对此灯光的荫罩应用降噪。通常没有必要,因为阴影不会显示太多噪点,但是对于非常宽的模糊阴影(较大的阴影散布)很有用。
  • 间接强度:此光的非物理GI乘数。对于自然光照,应为1,但对于更风格化的场景,可以对其进行修改。
  • 纹理投影:将乘法的平铺纹理投影到照明上。可以用来模拟远处的云影。

如果同一对象同时启用了Unity和Bakery光源,但它们不匹配,则会出现两个按钮:

  • 将贴图映射到实时:将常用设置从Unity贴图复制到Bakery贴图。
  • 实时匹配灯光映射:将常规设置从“烘焙”光源复制到“统一”光源。

面包房天窗

Bakery GPU Lightmapper 1.8 官方手册_第23张图片
image

带GI的纯天光

无限远的阴影环境光(天空)。

  • 颜色:颜色。
  • 强度:线性颜色倍增。
  • 天空纹理:可选的立方体贴图资源,例如HDRI全景图,以影响不同方向的照明颜色。

Bulbgraph.png
旋转天光的GameObject将相应地旋转来自立方体贴图的光照。

  • 样本:影响阴影质量。典型值为8到32。
  • 半球:如果启用,照明将仅来自上方(上半球)。否则,四面八方。
  • 位掩码:切换列表,用于排除此光源影响特定的光照贴图组。
  • 烘焙贡献:确定应烘焙哪种照明数据。仅在间接或阴影蒙版模式下可见。可能的值:
    • 直接和间接:直接和间接的贡献都将被完全烘烤。这是所有Sky Lights的默认和建议的行为,因为没有实时版本可以在Unity中模拟它们。
    • 仅间接的:实时光应该提供直接的贡献;仅间接照明被烘烤。

如果天光的设置与当前场景的天窗不匹配,将出现两个按钮:

  • 将此灯光与场景天窗匹配:将常用设置从活动天窗材质复制到Bakery天窗。当前,它只能使用“ Skybox / Cubemap”或“ Skybox / Bakery skybox”着色器来匹配Skybox。
  • 将场景天空盒与此场景相匹配:将普通设置从“面包店”天空灯光复制到场景天空盒。

烘焙灯网

image

左:近采样数= 0,远采样数=4096。
中:近采样数= 0,远采样数=128。
右:近采样数= 16,远采样数=128。
请注意照明外观如何相似,但使用的合并采样数较少。

任何形状的发射网格。应与“网格渲染器”组件或设置为“区域”模式的“灯光”组件一起使用。

  • 颜色:颜色
  • 强度:线性颜色倍增。
  • 截止:最大照明距离。面包店还会在极限附近衰减正确的平方反比衰减。当截止值恰好是物理衰减变得很暗的地方时,它的效果最佳。截止值可以改善烘焙性能,但您也可以将其设置为很高(无法达到)的值以确保完全正确。
  • 自阴影:确定光网格自身是否投射阴影。此选项还可以启用更精确的照明算法。
  • 附近的样本:影响网格附近的照明质量。典型值是16到64。仅当“自阴影”打开时,此选项才可用。
  • 远处的样本:影响远离网格的照明质量。典型值为4至4096。

面包店会根据发射表面的接近程度将两种不同的算法混合用于面光源。在接近光源时,其工作方式类似于GI算法,而在远处,光源近似为虚拟点光源的云。

Bulbgraph.png

  • 网格物体不会自己接收光照,也不会被灯光映射。
  • 具有许多多边形的一个Light Mesh比许多简单的Light Mesh更容易烘烤。
  • 如果您不断得到肮脏/嘈杂的结果,请尝试将Samples Nears设置为0。然后仅使用VPL算法。对于精度要求不高的非常简单的灯(例如建筑物上的窗户灯),它也很有用。

Bakery GPU Lightmapper 1.8 官方手册_第24张图片
image

弯曲的轻型网格

  • 位掩码:切换列表,用于排除此光源影响特定的光照贴图组。
  • 烘焙贡献:确定应烘焙哪种照明数据。仅在间接或阴影蒙版模式下可见。可能的值:
    • 直接和间接:直接和间接的贡献都将被完全烘烤。这是所有轻型网格物体的默认和建议的行为,因为没有实时版本可在Unity中模拟它们。
    • 仅间接的:实时光应该提供直接的贡献;仅间接照明被烘烤。
  • 间接强度:此光的非物理GI乘数。对于自然光照,应为1,但对于更风格化的场景,可以对其进行修改。

如果网格材质和灯光设置不匹配,将出现两个按钮:

  • 使灯光与材质匹配:将普通设置从未照明的网格材质或区域灯光复制到烘焙灯。
  • 使材质与灯光匹配:将常规设置从“烘焙”灯光复制到未照明的网格材质或区域灯光。

轻型网格物体和发光材料之间的区别

发光材料:

  • 在GI计算期间传播光,因此,无论发射多少个网格,它都是“自由的”。
  • 取决于GI样本数量,小而明亮的灯光会产生不准确的噪声结果。
  • 由于面包店中GI的工作方式,必须在光照贴图中占用空间,因此可能会浪费它。这也意味着发射的对象需要有效的UV并启用“投射阴影”。

浅网格:

  • 每种光源的照明分别计算,因此比发光材料要慢。
  • 旨在为小而明亮的灯光提供干净的结果,甚至离它们很远。
  • 不会在光照贴图中占用空间。

面包点光

image

左:阴影扩展= 0.5,右:阴影扩展= 1。

点光源,没有面积。尽管物理上不可能,但它对于游戏还是有用的,并且是匹配Unity点光源和聚光灯的唯一方法。

Bulbgraph.png
聚光灯只是带有附加投影蒙版的点光源。

  • 颜色:颜色。
  • 强度:线性颜色倍增。
  • 阴影扩散:阴影模糊。尽管点光源没有面积,但通常希望它们仍然具有模糊的阴影。为此,对阴影进行模拟,就好像它们是从球形区域的灯光投射出来的一样。此参数定义这种虚拟球体的半径,直接影响模糊性。
  • 物理衰减:如果启用,将使用正确的平方反比衰减,并在极限附近增加衰减。否则将尝试模仿Unity的衰减。
  • 衰减最小大小:在“点光衰减”部分中了解更多信息。
  • 范围:如果禁用了物理衰减,则等于Unity的光照范围。如果启用,只会稍微消除边缘的物理衰减。
  • 样本:影响阴影质量。典型值为1到512。将样本设置为0将使此光的阴影消失。

image

从左到右:Omni,Cookie(默认斑点纹理),Cubemap,IES。

  • 投影蒙版:蒙版/ Cookie的类型。选项:
    • Omni:没有面具,等于Unity的Point Light。
    • Cookie:Cookie纹理投影。其他选项:
      • Cookie纹理:2D纹理资产。面包店包括原始的Unity聚光灯纹理(名为ftUnitySpotTexture),您可以用来模拟它。
      • 角度:纹理投影角度(类似于Unity的Spot Light)。
    • 立方体贴图:立方体贴图cookie投影。其他选项:
      • 投影立方体贴图:立方体贴图资产。
    • IES:照明由IES文件数据调制。其他选项:
      • IES文件:扩展名为.ies的文件。
  • 位掩码:切换列表,用于排除此光源影响特定的光照贴图组。
  • 烘焙贡献:确定应烘焙哪种照明数据。仅在间接或阴影蒙版模式下可见。可能的值:
    • 直接和间接:直接和间接的贡献都将被完全烘烤。
    • 仅间接的:实时光应该提供直接的贡献;仅间接照明被烘烤。
    • 间接和阴影蒙版:应该使用实时光来提供直接贡献,但是静态几何体的阴影将被烘焙到单独的贴图中。动态和静态阴影将混合在一起。间接照明将照常烘烤。
  • 间接强度:此光的非物理GI乘数。对于自然光照,应为1,但对于更风格化的场景,可以对其进行修改。

如果同一对象同时启用了Unity和Bakery光源,但它们不匹配,则会出现两个按钮:

  • 将贴图映射到实时:将常用设置从Unity贴图复制到Bakery贴图。
  • 实时匹配灯光映射:将常规设置从“烘焙”光源复制到“统一”光源。

面包卷

[图片上传失败...(image-11f534-1606989692482)]

体积生成3D纹理,每个体素存储光探测器(L1球谐和阴影蒙版),使其成为常规Unity光探测器的可行替代品。

| | Unity光探头 | 统一LPPV | 面包卷 |
| 手动放置每个探针 | 是 | 是 | 没有 |
| 在一个对象上插值多个探针 | 没有 | 是 | 是 |
| 在运行时可移动 | 没有 | 没有 | 是 |
| 可以放入预制件 | 没有 | 没有 | 是 |
| 完整的脚本API | 没有 | 没有 | 是 |
| 铃声 | 可能 | 可能 | 固定 |
| 去噪 | 没有 | 没有 | 是 |
| 运行时开销 | CPU:低;GPU:低。 | CPU:中等;GPU:中等。 | CPU:无;GPU:中等。 |

Bakery Volume是一个边界框,它链接到一组3D纹理(如果需要,可以包含3个SH纹理和一个阴影遮罩),非常易于使用和编写脚本。卷可以在运行时轻松地交换,移动,装载或卸载,也可以链接到预制件。他们也不需要任何光探针组和手动探针放置;整个体积充满了均匀的探针体素网格。光线/阴影的泄漏会自动按照与光照贴图相同的方式进行修复(尽管对于大型体素而言,薄的双面壁可能是个问题,但可以通过在不同侧面使用不同的体积来避免这种情况)。由于体素栅格具有统一的特性,因此还可以对它们应用类似光照贴图的降噪,而常规的光探头则无法做到。此外,烘焙着色器使用Geomerics采样技巧 为了完全消除“振铃”伪影,有时在高对比度HDR照明下会产生球形谐波。

因此,Volumes可以为动态对象(即来自静态对象并影响动态对象的照明,而不是相反的对象)产生干净,细腻,高质量的烘焙照明。

体积方法的唯一缺点是较高的每像素着色成本。成本与LPPV相似(根据屏幕上受阴影影响的像素数量缩放),但与LPPV不同,Volume本身一旦烘焙就永远不会更新。可以通过将它们稍微重叠来避免多次混合。

设定音量转换

Bakery GPU Lightmapper 1.8 官方手册_第25张图片
image

体积小物件

当将BakeryVolume添加到GameObject时,一个边框Gizmo将出现在场景视图中。将其拖动到小方块将对其进行缩放。还有其他更改音量大小和位置的方法:

  • 将任何可渲染的GameObject拖到“包装到对象”字段中。该卷将围绕该对象(及其子对象)进行封装。
  • 如果在同一对象上添加了Box Collider,则将显示“从Box Collider设置”和“设置为Box Collider”按钮。这些可用于在Volume / Collider之间快速复制值。

解析度

启用“自适应分辨率”时,体素的数量由“每单位体素”控制。禁用它可以手动输入分辨率。对于大多数单位为1米= 1米的游戏,合理的“每单位体素”值为2,但是在某些情况下(例如动态门)使用较小但分辨率较高的体积是有益的。

其他设定

  • 启用烘焙:是否应该(重新)计算体积?禁用以防止覆盖现有数据。
  • 去噪:在烘焙体积后应用去噪。
  • 全局:自动将此体积分配给所有与体积兼容的着色器,除非它们具有替代值。在内部,它将调用Shader.SetGlobalTexture()/ SetGlobalVector()。

用法

可以使用体积感知着色器将体积分配给对象。Bakery带有实现它的“ Bakery Standard”着色器,以及HDRP和URP图。有关应用体积的各种方法,请参见example_volumes场景。

提示

  • 确保检查示例。
  • 如果连接了两个卷,则使它们重叠一点。重叠的大小应等于最大动态对象的大小。这样,只需在忙碌的卷之间切换即可。
  • 实际上,只能在动态对象周围放置体积。例如,使用播放器高度限制音量高度。

技术信息

卷可以自​​动工作(检查示例场景),但是也可以编写脚本使用方式。

可以通过以下公共属性从组件检索体积数据:

  • bakeryTexture0:将L0 RGB系数和L1 Z红色通道存储为alpha。
  • bakeryTexture1:将L1 X RGB系数和L1 Z绿色通道存储为alpha。
  • bakeryTexture2:将L1 Y RGB系数和L1 Z蓝色通道存储为alpha。
  • friedMask:存储体积荫罩。
  • bounds:体积的边界框。

所有bakedTexture *映射均使用RGBAHalf(每个体素8个字节)格式,并且掩码为ARGB32(每个体素4个字节)。

因此,卷的字节大小=宽度高度深度* 3 * 8 +(仅当使用荫罩时)宽度高度深度* 4。

可以对卷使用常规纹理压缩,但是尚未实现。对于低密度的卷,可能会导致明显的伪影,但对于高密度的卷可能有用。

要采样体积,需要一个特殊的着色器,并且这些着色器包含在Bakery中。要将卷添加到自定义着色器,请检查HDRP / URP软件包中包含的BakeryDecodeLightmap.hlsl中的BakeryVolume_float()函数。


面包店总是渲染

如果将Bakery添加到对象,则即使在禁用其渲染器的情况下,烘焙时也始终将其考虑在内。


面包包作为单方形

如果添加到对象,则Bakery会将该对象及其子对象的UV视为单个组合的正方形,并且在自动图集打包或在具有“打包图集”模式的“光照贴图组”中,切勿使它们彼此远离。整个儿童等级将被打包为一个。

材料相容性

反照率和排放

面包店通过利用Meta Pass系统支持大多数Unity材料。所有内置,曲面,LWRP和HDRP着色器均已定义了正确的元通道。

如果您有Unlit shader,请按照Unity文档中的说明手动添加meta pass。

如果不存在该传递,则Bakery将_MainTex,_BaseColorMap或_Color(如果未设置纹理)属性设为材质反照率,并将_EmissionMap和_EmissionColor设为发光色。

为了发射工作,Material.globalIlluminationFlags必须设置为MaterialGlobalIlluminationFlags.BakedEmissive。标准着色器会自动设置此值。

不透明度

Bakery GPU Lightmapper 1.8 官方手册_第26张图片
image

材质参数转换为切口

当前,Bakery始终从_MainTex或_BaseColorMap的alpha值中获取完全分辨率的不透明度,并将其视为抠图(1位透明度)。

Bakery GPU Lightmapper 1.8 官方手册_第27张图片
image

将蓝噪声用作Alpha

为了使不透明度起作用,着色器的RenderType标记必须是以下值之一:

  • 透明
  • 透明切口
  • 树叶

如果存在名为_Cutoff的属性,它将影响剪切(因此“标准着色器剪切”滑块会自动工作)。

如果材料RenderType是透明或TreeLeaf,则α值_Color将另外修改截止:finalCutoff = 1 - (1 -截止)阿尔法*

对于半透明效果,请阅读有关背面GI和地下散射的信息。

Bulbgraph.png
提示:虽然Bakery目前不支持半透明的阴影投射器,但是您仍然可以利用随机透明性,即:将具有不同截止值的噪波纹理用作alpha。射线平均和去噪将使其看起来是半透明的。建议使用蓝噪声纹理。

法线贴图

自定义曲面法线可以与“烘焙法线贴图”模式结合使用。不幸的是,Unity的Meta Pass不输出常规信息,因此默认情况下,常规是从名为_BumpMap的纹理中获取的,该纹理还由_MainTex_ST进行了转换。

但是,可以使完全自定义的着色器具有与烘焙兼容的高级法线贴图功能(例如,混合多层)。为此,您需要:

1.如Unity docs中所述,在您的着色器中定义一个Meta Pass 。

2.将其命名为“ META_BAKERY”,而不仅仅是“ META”。

3.包括“ BakeryMetaPass.cginc”。

4.添加#pragma顶点vert_bakerymt

5.如果unity_MetaFragmentControl.z变量不为0,则着色器应返回世界空间法线。返回的法线应该使用BakeryEncodeNormal函数进行编码。

Assets / Bakery / examples / shaders中包含两个实现此扩展Meta Pass的示例着色器。

您可以复制和修改BakeryMetaPass.cginc以适合您的需要,例如,从顶点着色器传递其他数据。

正面/背面

无论在着色器上使用哪种剔除模式,Bakery都将所有背面视为不透明,这意味着任何直接光线都不会通过背面,就像不会通过正面一样。但是,如果使用Backface GI,则背面可以部分发射正面接收到的光线。

蒙皮的网格渲染器支持

从v1.65开始,面包店支持蒙皮网格。但是,有一些限制:

  • 某些版本的Unity在蒙皮网格物体上不支持UV1,并且会默默地忽略“生成光照贴图UV”。确保场景中使用的实际网格物体具有UV1,并尽可能使用不重叠的UV0。
  • UV填充调整不适用于蒙皮的网格(尝试在其上调用Unwrap函数时,Unity似乎崩溃了);
  • 蒙皮网格物体不能具有每个顶点的光照贴图(引擎不支持带蒙皮的其他VertexStreams)。

着色器调整

Bakery GPU Lightmapper 1.8 官方手册_第28张图片
image

左:默认双线性过滤。右:三次过滤。

image

左:两个阴影都烤了。
中心:球形阴影是动态的,其他阴影是静态的。与乘法结合在一起。
右:与中心相同,但与默认最小值组合。

Bakery提供了可选的着色器修改,这些修改可应用于Unity着色器,以改善光照贴图采样并匹配更接近光照贴图的实时光照。着色器调整菜单可以通过Bakery-> Shader Tweaks访问。

这些选项将修补大多数内置和第三方着色器使用的基本Unity着色器包含(来自CGIncludes文件夹)。所有修改将影响使用此版本的编辑器打开的所有项目,但也可以轻松还原。着色器调整会影响标准着色器和表面着色器的工作方式。HDRP,LWRP和其他SRP不受影响。

所有可用的修改都显示为按钮。按下按钮应用修改,它将保持按下状态。取消按下按钮以删除修改。当前可用的选项:

Bulbgraph.png
您可能需要以管理员身份运行Unity编辑器以使CGIncludes修补工作

  • 对光照贴图使用双三次插值:将使用双三次插值代替默认的双线性。此调整可以很好地修复低分辨率光照贴图的许多锯齿状边缘。目前,它仅可在DX11和现代控制台上使用,而其他平台仍将使用双线性。

  • 对阴影遮罩使用乘法:使用乘法而不是最小值来组合静态和动态阴影。由于某些原因,未知的Unity决定默认情况下使用最小运算符,并且会产生乘法运算不存在的伪像。

  • 使用物理光衰减(正向):用物理上更正确的反平方代替实时点/点光源的默认衰减。“范围”只会使它在边缘附近略微褪色(与具有“物理衰减”的“面包店灯”复选框匹配)。仅影响前向渲染器。有关更多详细信息,请参见点光衰减。

  • 使用物理光衰减(延迟):与上述相同,但仅影响延迟渲染器。

衰减调整可能不适用于> 2017 Unity版本。此外,默认情况下,SRP具有正确的衰减。

烘焙着色器

Bakery包括自己的着色器,支持顶点光照贴图以及RNM和SH定向模式。它还允许从方向数据计算近似烘焙的镜面反射。常规彩色光照贴图,阴影蒙版和“主导方向”模式不需要面包着色器,因为大多数Unity着色器仍然支持这些功能。

标准渲染管道

面包店/标准:扩展常规的标准着色器。其他选项:

  • 允许顶点光照贴图:允许此材料与顶点光照贴图一起使用。
  • 允许RNM光照贴图:允许此材质与RNM定向模式一起使用。
  • 允许SH光照贴图:允许此材质与SH定向模式一起使用。

Bulbgraph.png
所有“允许”切换都会在着色器中启用特定的代码路径。出于性能原因,建议仅在材料中使用一个“允许”选项。

  • 启用光照贴图镜面反射:使用来自“主方向”,“ RNM”或“ SH”定向模式的数据来计算烘焙的镜面反射。注意,由于缺乏信息,效果非常近似。如果您曾经在Unity 4中使用过烘焙的镜面反射镜,那么它应该是可比的。与高度扰动的法线贴图一起使用时效果最好,在平坦表面上效果不佳。
  • 启用VertexLM方向:如果存在顶点光照贴图,则指定将“主要方向”数据存储在顶点中并应使用。
  • 启用VertexLM SH:如果存在顶点光照贴图,则指定SH数据存储在顶点中并应使用。
  • 启用VertexLM阴影蒙版:如果存在顶点光照贴图,则指定将阴影蒙版存储在顶点中并应使用。

Bakery GPU Lightmapper 1.8 官方手册_第29张图片
image

标准SH光探头与非线性探头

  • 非线性SH:在SH定向模式下,此选项可以增强对比度(更接近地面实况),但会使着色器慢一些。该技巧基于Geomerics撰写的“从球谐数据重建漫射照明”一文。
  • 非线性光探头SH:类似于非线性SH,但适用于光探头。对于探头,最显着的好处是消除了错误的负值。在高亮度HDR光源的高对比度场景中,经常会出现此问题。这是球谐函数的固有局限性,并不是面包店特有的(即,您也可以通过内置的光照贴图获得类似的伪像)。
  • 强制双三次过滤器:对所有其他地图启用双三次过滤。对于完整的三次三次过滤(包括第一个颜色图),建议也在“ Shader Tweaks”中启用它。

烘焙/标准镜面:与标准相同,但适用于镜面工作流程。

HDRP和URP

要提取其他HDRP / URP着色器,请打开Bakery随附的Bakery_ShaderGraphHDRP.unitypackage或Bakery_ShaderGraphURP.unitypackage。在内部,您可以找到可在自己的Shader Graph中使用的Shader子图以及一些示例材料。

跨着色器的功能支持

| | 大多数Unity着色器 | 大多数HDRP和URP着色器 | 面包房标准 | HDRP图 | URP图 |
| HDR彩色光照贴图 | 是 | 是 | 是 | 是 | 是 |
| 荫罩 | 是 | 是 | 是 | 是 | 否(URP不支持阴影蒙版) |
| 主导方向 | 是 | 是 | 是 | 是 | 是 |
| RNM | 没有 | 没有 | 是 | 是 | 是 |
| SH | 没有 | 没有 | 是 | 是 | 是 |
| 光照贴图高光 | 没有 | 没有 | 是 | 是的,主导方向和SH | 是,代表主要方向(请参阅链接) |
| 双三次过滤 | 是,

与着色器调整

| 没有 | 是,

与着色器调整

| 没有 | 没有 |
| 顶点光照贴图 | 没有 | 没有 | 是 | 单色,无逐顶点SH,方向或阴影蒙版(阴影图限制) | 单色,无逐顶点SH,方向或阴影蒙版(阴影图限制) |
| 非线性光探头 | 没有 | 没有 | 是 | 没有 | 没有 |
| 卷数 | 没有 | 没有 | 是 | 是 | 是 |

Bulbgraph.png
除常规彩色光照贴图外,所有其他功能至少都需要Shader Model 3.0才能正常工作。

Bulbgraph.png
由于内插器的限制,具有SH模式的顶点光照贴图至少需要Shader Model 4.0。

Bulbgraph.png
更新与主导方向镜面URP图可下载这里。

关于HDRP / URP的注意事项

将软件包导入HDRP或URP项目后,通常可以立即使用它,但需要注意以下几点:

  • 示例场景同时使用常规Standard和某些情况下使用的“ Bakery Standard”着色器。HDRP和URP提供了一种将项目着色器从“标准”更新为“亮”的机制,但是它们无法从“面包店标准”升级。用来自Bakery_ShaderGraphHDRP.unitypackage或Bakery_ShaderGraphURP.unitypackage的材料替换Bakery Standard材料。

  • 在HDRP中,默认的HDRI天空强度很高(11),并且默认情况下不遮挡天空反射。加上默认的眼睛适应,可能会导致一些示例场景几乎不可见,因为它们是使用低得多的强度进行烘焙的。在这种情况下,请将HDRI天空强度降低为1。

  • 许多HDRP项目使用非常高的强度值。这对于光照贴图精度是不希望的。阅读此以获得更多详细信息。

升级面包店

在升级资产时,建议执行以下步骤:

  • 关闭面包房窗口。
  • 关闭Unity。
  • 再次打开它。
  • 导入更新的程序包。

请注意,如果没有先关闭Unity,则导入可能由于锁定的DLL文件而失败(打印消息,例如“ alphabuffergen.dll:访问被拒绝。”)。

如果将Bakery文件夹(资产/ Bakery和Assets / Editor / x64 / Bakery)移动到其他位置,则可能需要在更新之前将它们移回以防止获得软件包的两个冲突副本。

脚本API

获取和修改渲染设置:

ftLightmapsStorage storage = ftRenderLightmap.FindRenderSettingsStorage();

可用设置的完整列表可以在ftLightmapsStorage.cs中看到。

获取lightmapper实例和(重新)加载设置:

ftRenderLightmap面包店= ftRenderLightmap.instance!=空吗?ftRenderLightmap.instance:新的ftRenderLightmap(); bakery.LoadRenderSettings();

渲染光照贴图(还可以将光照贴图设置为L1模式):

bakery.RenderButton(bool showMsgWindows)

仅渲染光探头:

bakery.RenderLightProbesButton(bool showMsgWindows)

仅渲染反射探针:

bakery.RenderReflectionProbesButton(bool showMsgWindows)

showMsgWindows告知是否可以显示任何对话框/确认。如果设置为false,则被抑制。

检查是否正在进行烘烤:

ftRenderLightmap.bakeInProgress

有关用法示例,请检查Batch Scene Baker脚本。

你可能感兴趣的:(Bakery GPU Lightmapper 1.8 官方手册)