在本教程中,我们将学习如何使用一张图像,尤其是 HDR 或 EXR 格式的图像,作为 Blender 虚拟宇宙的背景,从而让我们能够使用比简单的纯色或 Blender 的 Sky Texture 更有表现力的方式来照亮场景。


本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。


视频文字稿

大家好!在本教程中,我们将学习如何使用一张图像,尤其是 HDR 或 EXR 格式的图像,作为 Blender 虚拟宇宙的背景,从而让我们能够使用比简单的纯色或 Blender 的 Sky Texture 更有表现力的方式来照亮场景。

此外,我们还将介绍三种不同的方法来旋转虚拟宇宙的背景,从而改变场景的照明,并在 3D Viewport 预览中实时观察这些变化。

本教程面向初学者,录制时使用的是 Blender 3.3 版本。

不过,我们将介绍的概念和工具在多个软件版本中都已经存在,并且未来很可能仍然会继续提供支持。

带有 HDR 和 EXR 扩展名的图像与 PNG、JPG、BMP 格式的其他图像不同,不仅体现在扩展名上,还体现在它们所包含的数据类型上。实际上,这些图像属于 HDR 类型,也就是 High Dynamic Range。

这些图像能够表示比 LDR 类型文件更多的光照信息,而 BMP、JPG 或 PNG 等格式属于 Low Dynamic Range 类型。

这使得它们能够在非常暗或非常亮的区域中捕捉更多细节,从而呈现更加真实自然的图像效果。

这自然会对渲染结果以及文件大小产生显著影响,因为 HDR 或 EXR 文件以每个颜色通道 16 位或 32 位来存储这些额外信息,而 LDR 格式通常每个颜色通道只使用 8 位。

好的,在完成这些理论基础说明之后,让我们来分析一下我将在本教程中使用的场景。

该场景展示的是一个包含若干物体的室内空间。

我知道 World Background 照明教程通常是在室外场景中进行,并使用一些简单物体,例如金属球体或立方体,但我选择使用这个场景,是为了向大家展示不同背景图像如何影响室内场景的氛围。

请注意,在这个场景中,虚拟宇宙的背景是唯一的光源。实际上,如果我在 3D Viewport 中切换到 Rendered 视图模式,并将 World Background 的颜色设置为黑色,那么整个场景将完全变暗。

我将稍微调整一下 Blender 的界面布局,使我们不仅可以看到 3D Viewport、Properties 和 Outliner 窗口,还可以看到一个 Shader Editor,这样我们就可以查看虚拟宇宙背景的节点设置。

顺便说明一下:默认情况下,Shader Editor 会显示当前所选对象材质的节点。要显示虚拟宇宙背景材质的节点,我们需要在 Shader Type 下拉菜单中选择 World。

要将 HDR 或 EXR 图像加载为虚拟环境的环境图像,我们首先需要在 World Properties 选项卡中将 Color 模式更改为 Environment Texture。

这种 Texture 类型允许我们导入一张图像作为背景,并调整其 Color Space。对于本教程的目的,我们可以保持 Linear 设置。同时还可以通过 Strength 参数调整光照强度。另外,这个节点还提供一个 Projection 选择器,用于指定所使用的图像是 Mirrorball 类型还是 Equirectangular 类型。

通过预览图可以很容易地区分每次使用的 HDR 图像投影类型。实际上,Mirrorball 图像是圆形的,并且具有明显的图像变形,而 Equirectangular 图像基本上是矩形图像,会围绕场景中心进行包裹。

要将图像加载到该节点中,点击 Open,然后从磁盘中选择一张 HDR 或 EXR 图像。

有许多网站可以下载 HDR 或 EXR 图像,其中既有免费的,也有付费的资源。

不过,我建议尽量寻找分辨率非常高的图像,特别是当你希望在最终渲染中显示真实背景图像时。

你可以在 Blender 的 File Browser 窗口中点击 Thumbnail Display Mode 图标来查看图像预览。

生成预览可能需要一点时间。这是因为这些图像不仅分辨率很高,而且包含的数据量也很大,正如我之前提到的那样。

在第一个示例中,我使用的是 Equirectangular 图像,因此不需要更改节点中 Projection 选择器的默认设置。

正如你在 3D Viewport 的 Rendered 模式预览中看到的那样,这张图像现在已经成为虚拟宇宙的背景,并且已经开始照亮场景。

不过,我们可能还希望修改一些特性,例如光照强度、图像在预览和渲染中的显示方式,以及虚拟背景的旋转。

让我们先从最简单的参数开始,也就是光照强度。我们可以通过调整节点中的 Strength 参数来实现。

HDR 图像可能表示的是晴朗无云的阳光下的麦田,也可能表示由少量人工光源照亮的洞穴内部,因此你可能需要调整背景光照强度。

至于虚拟宇宙背景在预览和最终渲染中的显示,可以通过 Render Properties 选项卡中的 Film Transparent 参数来启用或禁用。

当你只希望将图像作为光源使用,而不作为最终背景时,这个选项会非常有用。例如,你可能希望在后期制作中替换背景图像,或者你希望使用某张特定图像作为背景,但它不是 HDR 格式,又或者当前使用的 HDR 背景图像分辨率较低,不适合最终渲染。

在这个场景中,即使选择了 Transparent Film,背景图像仍然可以通过窗户看到。

这是因为窗户的玻璃使用的是 Glass 类型材质,因此我们看到的是背景与玻璃之间的交互效果,而不是背景本身。

有一些方法可以解决这个问题,使最终渲染中在玻璃位置不显示背景,但我会在其他教程中再介绍。

好的,现在让我们开始讨论如何旋转虚拟背景。

正如教程开头提到的,我们将介绍三种不同的方法,每种方法都有各自的优点和缺点,因此最终选择哪一种取决于你自己的需求。

第一种方法是最简单的:按下 N 键打开 Shader Editor 的 Transform 面板,选择 Environment Texture 节点,然后在 Node 选项卡中的 Texture Mapping 部分修改 Z Rotation 数值。

这种方法很直接,不需要插入任何其他节点或对象,但它也有一个缺点:你需要保持 Shader Editor 打开,这可能会占用界面空间。

请注意,背景图像也可以沿 Z 轴移动,从而调整场景的高度位置,但移动幅度必须非常小,否则会在背景图像中产生明显的变形。

第二种方法是在 Shader World 中插入两个节点,也就是 Input Texture Coordinate 和 Vector Mapping,并按以下顺序连接:将 Texture Coordinate 的 Generated 输出连接到 Mapping 的 Vector 输入,然后将 Mapping 的 Vector 输出连接到 Environment Texture 的 Vector 输入。

这样,我们可以通过修改 Mapping 的 Z Rotation 数值来旋转虚拟宇宙背景。这一次,我们还可以在 World 选项卡中修改该参数,从而可以移除界面中的 Shader Editor,并为 3D Viewport 预览腾出更多空间。

第三种方法是使用一个外部对象来调整背景旋转。为此,我们需要在场景中心插入一个 Empty 对象,并将其重命名,例如命名为 Background Rotation。

然后,将 Texture Coordinate 节点的模式从 Generated 改为 Object,并在下方的 Object 字段中指定这个新的 Empty 名称。

此时,只需要在 3D 视图中按 R Z 并移动鼠标旋转该 Empty,或者在其 Item 选项卡中的 Z Rotation 中输入数值即可。

与前一种方法相比,这种方法的优点是我们不需要进入 World 选项卡,而是可以直接在场景中或在 Outliner 中选择该对象并进行交互式旋转。当然,其缺点是需要在场景中额外插入一个对象。

总结一下:我们已经了解了什么是 HDR 图像,为什么它们适合作为虚拟宇宙的光源,以及如何通过三种不同的方法旋转它们,从而改变场景的照明效果。

不过,其实我还没有告诉你全部的真相。

如果你的目标只是改变光照方向,那么实际上还有另一种方法:将场景中的所有对象都设为一个新的 Empty 的父对象,然后……

……旋转这个 Empty!好吧,好吧,我只是开个玩笑。

说正经的,希望这个教程对你有所帮助!下次见!

搜索教程

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

本站提供 Francesco Milanese 制作的 3D 模型、教程及计算机图形相关资源。3D 模型的使用许可可通过各模型页面上的链接前往第三方商店购买,并须遵守适用的许可条款。 Francesco Milanese — 意大利增值税号:06321250877。 联系方式:info@francescomilanese.com


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