烘培

烘焙是用于预先计算纹理和光照信息的过程。结果通常用于实时应用程序(例如游戏)或将模型导出到具有完整阴影的其他软件包中,或仅用作消除复杂场景中渲染开销的方法。通过这种方式,着色器和照明由Modo渲染引擎并直接烘焙为完美映射到现有UV纹理的图像。

Perspective Projection

Perspective Projection

Perspective Projection

高分辨率几何

视线几何

Lo-res烘焙结果

根据您的预期目的,有两种烘烤图像的方法。如果您的目的是简单地合并(展平)多个Shader Tree图层,那么只需将图像映射添加到Shader Tree设置为适当的Effect在烘烤之前输入。

当烘焙诸如“位移”和“法线”贴图的地图时,需要两层几何图形,通常一层是包含最终模型所有细节的高分辨率模型,第二层是近似高分辨率模型的形状的第二个低分辨率模型作为烘烤目标。低分辨率几何体需要具有唯一名称的正确UV贴图(对于分配给高分辨率版本的任何UV贴图都是唯一的)。此外,您需要确保在项目列表中选择了适用的图层,并且还选择了适当的UV贴图。烘焙到纹理时,必须在适当的位置放置并选择合适的图像映射。 Shader Tree -别担心,这听起来很复杂,下面将详细介绍每个设置。

有关添加图层和设置图层的信息图层效果, 请参阅着色树。可以从菜单栏中的菜单中调用烘焙命令。 Render菜单,以及上下文菜单中的Shader Tree层。

小费:  有关更多信息,请查看我们的通过制作游戏资产Modo视频系列。

使用游戏工具烘烤物品和烘烤

Modo具有简化烘焙过程的一系列功能,特别是:

Bake Item -您可以使用的所有各种设置的容器。这些可以快速重新触发相同的烘烤。

Baking tools -一组用于创建烘焙组件的快捷方式,包括Baking WizardBaking游戏工具版式工具箱中的工具,以及Mesh Operations清单。

如果您不熟悉烘焙,建议您熟悉不同的烘焙操作。理解后,请参阅使用烘焙项目和烘焙工具有关这些烘焙工具以及如何使用它们的详细信息。

注意:  这些工具提供了本主题中描述的替代工作流。

小费:  要减少烘烤着色器所需的烘烤时间和内存,请使用Object Normal纹理效果。有关更多信息,请参见效果-着色器项目

笼子和射线距离

烘焙时,将以高分辨率模型发射光线,并且当光线与表面相交时,会将细节保存为纹理。因此,烘烤需要一定的偏移距离才能确定射线源。应当调整此偏移距离,以包括所有必要的细节,而不会损失准确性。在Modo,此距离可以通过以下两种方式之一进行定义:

Cage -使用Morph Map。射线从表面射出Cage

Distance -与网格表面的距离偏移。

这些代表从烘焙表面发出的最大光线传播量,正和负,并且应该设置为涵盖两个表面之间的所有表面偏差。

Cage是特制的Morph Map在烘焙几何图形上,变形表面通常从极限表面偏移,并使用变形位置和表面未变形位置之间的差异表示射线距离。

注意:  烘烤时,如果指定CageDistance值应保持在0 (零)。

Distance值是从网格表面进行的简单测量,并用于整个网格。

注意:  烘焙结果中的黑色区域表示超出定义的区域Distance。您可以增加Distance消除它们,但是将值设置得太高会降低精度,并可能会导致误差,具体取决于几何形状。

烘焙渲染输出

命令Bake to Render Outputs允许您使用表面的UV贴图来生成渲染的图像,该图像可以作为纹理贴图应用回表面。

该命令使用了Shader Tree渲染输出,它可以烘烤:

特定于环境光遮挡的纹理贴图,

Diffuse Coefficient地图,或

烤一个Final Color完全计算目标项目的所有表面和底纹的地图。

渲染后,可以将图像从渲染显示视口,然后导入并应用回几何。

烘烤之前,请务必遵循以下步骤:

1.   Items列表或3D视口。
2.   在“顶点贴图”中选择目标UV贴图Lists视口。

渲染烘焙使用Shader Tree渲染项目确定烘烤质量并Frame Size设置。另外,将偏移量应用于最终像素,以减少或消除UV边界边缘的可能接缝。

注意:  边框偏移量由Bake UV Border Size设置在优先。看到烘烤紫外线边框有关详细信息。

在默认场景中, Render Output设定为Final Color,然后您可以在Effects的专栏Shader Tree并定义其他渲染输出样式。选择目标项目后,调用命令Render > Bake to Render Outputs使所有活动Render Outputs同时。

开放式渐进式烘焙

若要快速渲染渐进式烘焙并设置渲染选项,请在应用程序菜单栏上单击Render > Open Progressive Baking。的预览视口显示。

您可以在渲染预览窗口中预览纹理和照明信息,并在逐步完善其属性时观察更改。这样可以加快您的工作迭代速度,在烘焙漫反射和光照贴图,进行故障排除以及制定美术指导时,可以为您带来更多的交互体验。

该视频演示了纹理烘焙工作流程以传输照明和着色细节。

有关如何创建和配置烘焙项目的更多信息,请参见使用烘焙项目和烘焙工具

小费:  预览时将保存其完整的渐进式渲染状态自动保存完成保存。您可以在以后加载之前的渲染状态。

从对象烘焙到渲染输出

Bake from Object to Render Outputs命令类似于Bake to Render Outputs上面的命令,但是它允许使用备用网格层生成结果的附加功能。它实际上是将表面从一个对象转移到另一个对象。

通常,此设置包括:

具有详细的高分辨率网格(源网格)的一层,以及

目标烘焙网格层,即较低分辨率的网格,近似于高分辨率层的整体形状。

此功能通常用于游戏中,其中将高分辨率资源的详细表面应用于低分辨率资源,以在最终模型中提供更高分辨率的总体视觉印象。渲染后,可以将图像从渲染显示视口,然后导入并应用于目标几何体。

从对象烘焙需要执行以下步骤:

1.   添加一个包含高分辨率模型的背景网格层。这应该在Items列表,但未选中。
2.   添加一个包含低分辨率模型的前景网格层以及一个唯一命名的UV贴图。该层应该可见并被选中。
3.   在中选择前景网格UV贴图Lists视口。
4.   选择命令Render > Bake from Object to Render Outputs

这将打开“烘焙选项”对话框。

5.   输入偏移量Distance应该涵盖两个网格层之间的所有表面差异。

注意:  您还可以使用预定义Cage确定偏移距离。

6.   请点击OKModo从背景图层中提取几何,阴影和照明信息,并将此细节烘焙到前景网格的UV贴图。

注意:  紧迫OK使所有活动Render Outputs同时。

烘焙到选定的纹理

命令Bake to Selected Texture可以在下面的菜单栏中找到Render > Bake to Selected Texture,但从Shader Tree使用右键单击上下文菜单(通过在目标层上单击打开)直接调用该菜单Bake to Texture

此命令生成一个或多个的位图纹理Shader Tree当所有图层共享相同的纹理图层时Effect类型。该功能的常见用法是:

将过程纹理层转换为位图以冻结位移,或

结合复杂的,多重的Shader Tree层成单层,或

预先计算渲染密集的效果,例如遮挡,节省渲染时间并消除可能发生的帧间差异。

要使用此功能:

1.   首先定义一个新的Image MapShader Tree定义了文件保存位置以及ResolutionBit Depth 。有关创建的信息Image Maps, 请参阅添加图片

注意:  Texture Locator设置用于确定合适的UV贴图进行烘焙,因此请确保正确应用图像。

注意:  图层在Shader Tree这一点很重要,因为仅评估低于目标的图层才能进行烘焙。

2.   定义Effect对于该图层,它必须与源图层匹配。
3.   禁用图层可见性(通过切换眼睛列),以确保目标烘焙层本身不被视为烘焙的一部分。
4.   右键单击该图层,然后选择Bake to Texture

这将打开Render Display窗口。

5.   使用保存图像Save Image按钮。

烘焙到UDIM磁贴

如果您的UV贴图使用UDIM进行纹理放置,则可以使用Use Clip UDIM中的选项Texture Locator的标签Shader Tree属性。您可以将UDIM图层添加到Shader Tree使用(new udims),从头开始创建UDIM或(load udims) ,以使用现有的UDIM。

烘焙UDIM

注意:  以下步骤使用以下步骤从头开始创建UDIM文件夹(new udims)。您也可以使用添加现有文件夹(load udims)。文件夹中的所有图像都可以用烘焙的图像覆盖。

1.   在“着色器树”中,使用以下命令添加UDIM层Add Layer > Image Map > (new udims)

这将打开文件夹浏览器。

2.   选择一个文件夹,然后单击Select Folder

UDIM Wizard打开。

3.   根据需要编辑字段。看到使用UDIM向导创建UDIM有关详细信息。重要的是要生成正确数量的UDIM,以使其与UV贴图中的UDIM范围匹配。产生的数量由UDIM Range StartUDIM Range End领域。例如,如果您将范围设置为1001到1003, Modo将生成三个UDIM磁贴,分别位于U = 0,U = 1和U = 2。

校验Overwrite Existing Images以便新的UDIM替换目标文件夹中所有现有的同名UDIM。

4.   请点击OK生成UDIM。

这会将UDIM层添加到Shader Tree

5.   取决于新层在Shader Tree,新的UDIM可能会覆盖现有图层并出现在网格上。这不是问题,因为我们不需要看到新层即可烘烤。单击图层左栏中的可见性图标隐藏图层Shader Tree
6.   右键单击新的UDIM层,然后选择Bake to Texture

烘焙窗口将打开,每个瓷砖将自动烘焙。

7.   UDIM需要保存。打开图像/剪辑列表并展开包含新UDIM的文件夹。

图像的名称带有星号,表示尚未保存。

8.   选择所有UDIM图像,右键单击并选择Save

星号消失,图像保存到目标文件夹。

从对象烘焙到选定的纹理

命令Bake from Object to Selected Texture可以用于生成两个特定类型的纹理贴图,使用的前景和背景网格层功能如下所述烘培。具体来说,该函数用于生成Displacement MapsNormal Maps

一个Displacement Map是代表低分辨率前景网格和高分辨率背景网格之间位置差异的灰度图像。一个Normal Map用颜色代表表面法向方向的差异。这两个贴图一旦生成,都可以应用到较低分辨率的几何图形上,以产生更高分辨率的印象。

注意:  带烘烤Normal Maps,您可以使用Cage或一个Distance值。对于Displacement Maps,仅使用Distance值。

使用Bake from Object to Selected Texture

1.   添加一个包含高分辨率模型的背景网格层。这应该在Items列表,但未选中。
2.   添加一个包含低分辨率模型的前景网格层以及一个唯一命名的UV贴图。该层应该可见并被选中。
3.   在中选择前景网格UV贴图Lists视口。
4.   (可选)使用Cage,添加一个Morph Map从表面偏移。
5.   将适当的目标位图纹理图层添加到Shader Tree与所需Effect类型(例如Normal)。

注意:  相关的Texture Locator设置用于确定合适的UV贴图进行烘焙,因此请确保正确应用图像。

6.   禁用纹理层的可见性(通过切换眼睛列),以确保目标烘焙层不被评估为烘焙的一部分。
7.   右键单击纹理层,然后选择Bake from Object to Selected Texture

这将打开烘烤对话框。

Bake 2 Popup

8.   如果您使用的是Cage产生一个Normal Map,选择Cage然后离开Distance0 m。或者,对于Normal Maps要么Displacement Maps,指定Distance值。
9.   请点击OK

这将打开Render DisplayModo将细节烘焙到纹理层。

10.   使用保存图像Save Image按钮。

注意:  确保Normal MapShader Tree与您要烘烤的物品不在同一面具中。

烘烤紫外线边框

根据几何类型和烘焙图像的分辨率,可能会看到UV接缝。这些可以使用烘烤UV边框尺寸在选项System > Preferences,列在Rendering > Final Rendering。这会将UV边界扩大指定数量的像素,以避免出现明显的接缝。

注意:  Bake UV Border Size必须大于0才能启用边界扩展。

Bake UV Border功能需要主动Α Render Output具有与渲染输出相同的抗锯齿设置。如果不Alpha Render Output被发现满足此条件, Modo会自动将一个添加到渲染窗口。这是因为Modo需要一个Alpha通道来计算边界偏移。

假设您有一个Alpha Render Output还有一个Shading Normal Render OutputAntialasing设置如下:

Antialiasing同时启用- Modo不添加新Alpha Render Output到渲染窗口。

Antialiasing在其中任何一个(但不是两个)上均被禁用- Modo产生一个Alpha Render Output在渲染窗口中Antialiasing设置为匹配Shading Normal Render Output

Antialiasing两者均禁用-否Alpha Render Output需要添加到渲染窗口。

注意:  如果Alpha Render Output是自动添加的,它仅在渲染窗口中可见,而不会出现在场景中。

烘焙几何缓存

Modo具有通过虚拟几何体起作用的多个功能。虚拟几何图形描述了您与之交互的场景中的几何图形,但仅表示用于渲染的实际几何图形。虚拟几何的很好的例子是细分曲面模型,位移,渲染曲线和毛发。

选择中Render >Render,或按F9,原因Modo获取每个功能的说明,并将其转换为真实的几何图形以进行最终渲染。可以将此过程生成的用于渲染的几何图形烘焙为真实的Mesh场景中的项目,从而可以应用复杂的程序位移或生成毛发并将其作为真实几何图形带回场景,可以直接对其进行编辑或导出到其他包中。选择中Render > Bake Geometry Cache显示以下对话框。

Bake Geo Cache

选项

描述

Surfaces

启用后,原始对象的“曲面”设置将被克隆并添加到分配给烘焙几何图形的新“材料组”中。

Shaders

启用后,将克隆原始对象每个项目的“着色器”设置,并将其添加到分配给烘焙几何体的“材料组”中。

Fur

启用后,将场景中的所有毛发转换为几何体。如果毛发设置为Strips,它将转换为多边形。如果毛发设置为Tubes它被转换为代表每个单独光纤的单独曲线。

注意:  可以使用“渲染曲线”(Render Curves)命令并调用“烘焙”(Bake)命令的第二遍,将毛发曲线进一步转换为多边形。)

运行命令将全部转换Mesh Item场景中的图层以及Instances和程序效果FurRender CurvesReplicators。啮合Density基于每个单独项目的设置(恰好是细分以进行渲染)。生成的网格是场景中每个表面或效果的单独网格层。

注意:  特殊程序效果,例如VolumesBlobsRender Booleans , 要么Sprites无法转换为网格。

小费:  根据场景的复杂程度,可以使用Bake Geometry Cache命令。渲染统计信息面板提供了每个渲染期间总场景几何的读数,作为有用的指导。
如果只想修改单个元素,则可以通过右键单击图层中的图层来保存单个网格图层来进行修改。 Items列出并选择Save Selected,然后打开生成的文件并应用Bake Geometry Cache命令。