让我们看看如何烘焙 Normal Map,将细节从 High Poly 模型传递到 Low Poly 对象。


本教程的视频版本目前尚未提供该语言版本。您可以在下方观看带字幕的英文版视频;视频下方提供了翻译成中文的文字稿。


视频文字稿

大家好!几天前,我发布了一套关于 photogrammetry 的简短入门系列的最后一集,使用的软件包括 Blender、Substance Painter 和 Meshroom。在其中一集的后半部分,我演示了如何在 Substance Painter 中 bake 一张 Normal Map,将 High Poly 对象的细节转移到它的 Low Poly 版本上。在本期视频教程中,我将向大家展示如何在 Blender 中完成同样的操作。

在一个新的 Blender 项目中,我已经导入了 High Poly 对象和 Low Poly 对象,并保持它们处于相同的位置和方向。

我选择 Low Poly 对象,在 Edit Mode 下稍微放大它,使其完全包裹住 High Poly 版本。对于更复杂的形状,你也可以使用 Shrinkwrap modifier,并将其设置为 Outside。

Low Poly 对象已经有自己的 UV unwrap,我们即将创建的 Normal Map 就会应用在这个 UV 上。这个 UV map 可以与 High Poly 几何体上的完全不同,这不会造成问题。

接下来,我们需要选择 Low Poly 对象,并为它分配一个 Material,如果它还没有的话。然后在 Shader Editor 中,为该 Material 添加一个新的 Image Texture 节点,暂时不要连接它。

在 Image Texture 节点中点击 New,创建一张新的图像,并设置所需的名称和分辨率。在我的示例中,我将图像命名为 Baked Normal Map,分辨率设置为 2048 x 2048。同时我取消勾选 Alpha,因为 Normal Map 不需要透明通道。

请保持该节点处于选中状态,因为 baking 的信息将直接保存到这张图像中。这意味着该节点必须处于激活状态,并且属于 Low Poly 对象的材质。

要开始 bake,切换到 Object Mode,同时选择 High Poly 和 Low Poly 对象,并确保 Low Poly 是当前的 active object。

然后进入 Properties editor 中的 Render 选项卡,确认渲染引擎设置为 Cycles,然后向下滚动找到 Bake 部分。

在这里,将 Bake Type 改为 Normal,并在下方启用 Selected to Active 选项。这个设置会告诉 Blender,从所选对象中的 High Poly 对象 bake 到 Low Poly 对象,而 Low Poly 不仅被选中,而且还是 active 对象。

点击 Bake,等待过程完成。如果你发现出现伪影,或者细节没有很好地转移,可以尝试在 Selected to Active 部分提高 Extrusion 的数值,然后重新 bake,直到获得理想效果。完成后,Blender 会提示生成的图像仍然保存在项目中,还没有保存到磁盘。

要将图像保存到磁盘,请在 Image Editor 中打开 Image 菜单进行保存。这一步不仅可以备份文件,还可以让你修改节点的 Color Space,从而避免在应用贴图时出现错误。

要将这张图像正确用作 Low Poly 对象材质的 Normal Map,首先将其 Color Space 设置为 Non Color Data。然后添加一个 Normal Map 节点,并将图像连接到该节点,使其正确解析为 Normal Map。最后,将 Normal Map 节点的输出连接到材质的 Normal 输入。

现在屏幕上显示的是模型的渲染预览,目前它使用默认的 Base Color 以及我们刚刚创建的 Normal Map。我将背景光照从原来的纯色更改为 HDRI environment texture,以便为对象提供不同方向的光照并突出细节。正如你所看到的,这些细节来自 Normal Map 本身,你可以通过节点中的 Strength 参数来调整其强度。

搜索教程

输入短语,或输入多个用逗号分隔的关键词进行搜索。

这是一个个人网站,并非销售渠道。3D 模型相关页面仅用于记录我的部分作品,不包含任何销售要约、价格、购买方式或商业链接。目前,我不接受定制项目、咨询或其他任何形式的专业合作请求。


高级隐私策略信息和cookie文件的使用