在本教程中,我们将介绍如何把从 Adobe Stock 下载的 3D 模型导入到 Blender 中并进行设置。


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


视频文字稿

大家好。在本教程中,我们将介绍如何把从 Adobe Stock 下载的 3D 模型导入到 Blender 中并进行设置。

在 Adobe Stock 网站上,实际上提供了数千个 3D 模型。每个 3D 模型都以 OBJ 格式提供,并附带 PBR Textures,因此几乎可以在所有 3D 图形软件和游戏引擎中使用,例如 Unity、Unreal、Blender、3D Studio MAX 等等。

我选择这个 3D 模型,是因为它不仅可以让我们了解如何将 OBJ 文件导入场景并快速把 PBR Textures 关联到其子材质上,还可以学习如何分离各个部分、设置它们的 Origin,并建立父子关系,以便在需要时进行后续修改。

OBJ 文件可以在任何版本的 Blender 场景中导入。所使用的材质是 Principled BSDF,特别适用于 Cycles 渲染引擎。

实际上,我在这里演示的操作不仅适用于从 Adobe Stock 导入的 3D 模型,对于任何来源的 3D 模型同样适用。

在本教程中,我们将具体介绍 10 项操作:

如何将从 Adobe Stock 下载的 OBJ 文件导入 Blender 场景;

如何应用导入模型的 Rotation 和 Scale 变换;

如何使用 Node Wrangler 插件快速设置 PBR Textures;

如何为望远镜镜片设置透明材质;

如何检查 Normals 是否设置正确;

如果不需要 Sharp 标记,如何从导入模型中移除它们;

如何恢复原始 UV seams;

如何根据使用的子材质分离几何体的各个部分;

如何为所有分离的部分设置正确的 Origin 和旋转;

如何在各个对象之间建立父子关系。

在开始将 OBJ 文件导入 Blender 之前,我们先来看一下从 Adobe Stock 下载的 ZIP 文件。我们将 ZIP 压缩包中的文件解压到一个新文件夹中。

我们会看到三个扩展名分别为 OBJ、MTL 和 MDL 的文件。OBJ 文件包含几何体,而 MTL 和 MDL 文件用于定义材质以及它们在几何体上的映射方式。

我们还会看到一个文件夹,其中包含模型所使用的 Texture 图像。

对于模型中的每个子材质,我们至少可以找到 6 张带透明通道的 PNG 格式 Texture 图像。对于具有透明效果的子材质,Adobe 还会提供额外的一张用于 Translucency 通道的 Texture。

不过在这个具体示例中,我们不需要 Glow、Opacity 和 Translucency 通道的 Textures。因为模型中既没有发光材质,也没有半透明材质,因此我们将像后面演示的那样,在 Cycles 的 Principled BSDF 材质中不使用这些 Textures 来处理透明效果。

因此,我们可以删除文件夹中不需要的文件。

最终,每个子材质将保留四张 Texture。稍后我们会看到如何把每个子材质的四张 Texture 分别关联到对应 Principled BSDF 子材质的四个主要通道,也就是 Base Color、Metallic、Normal 和 Roughness。

很好,现在我们可以正式开始了。

下面来看如何导入 OBJ 文件。

将 OBJ 文件导入 Blender 场景非常简单,只需点击 File Import OBJ,然后从磁盘中选择该文件即可。

Blender 会自动使用 MTL 文件,其中定义了子材质以及它们与对象各部分之间的对应关系,此时对象仍然是一个单一的 mesh 对象。

模型的各个部分可能具有不同的颜色,不过我们会用对应的 Textures 替换这些颜色。

我们把这个 3D 模型重命名为 Telescope。

接下来看看如何为模型应用 Rotation 和 Scale 变换。

在进行其他操作之前,我们先检查模型在场景中的尺寸,确认它与场景的其他元素一致。如果尺寸不合适,就调整模型大小。

完成之后,我们检查刚导入模型的 Rotation 和 Scale 属性,也就是确认 Rotation 数值为 0,Scale 数值为 1。

如果这些数值不统一,我们可以按 CTRL A,然后在屏幕上出现的 Apply 菜单中选择 Rotation And Scale 选项来应用这些变换。

对于几乎所有从 Adobe Stock 下载的模型,你都需要执行这一步来至少重置初始 Rotation。

接下来看看如何使用 Node Wrangler 插件快速设置 textures。

切换到 Shading 工作区,这样我们既可以查看模型的子材质列表,也可以同时查看每个子材质的节点结构。

一开始,每个子材质应该只有一个连接到 Material Output 的 Principled BSDF 节点。如果存在其他节点,请删除它们。

为了快速导入并关联每个子材质的四张 Texture 图像,我们将使用 Blender 自带的 Node Wrangler 插件。

因此,你不需要单独搜索和下载这个插件,只需要在 Preferences 窗口中启用它即可。

这个插件的使用方法如下:

对于每个子材质,需要先选中 Principled BSDF 节点;

然后按 CTRL SHIFT T 组合键;

屏幕上会出现一个窗口,在其中选择与当前子材质对应的四张图像。

在 Texture 选择窗口中,你也可以输入 Texture 名称的一部分来筛选结果,从而更快选择需要的 Textures。由于默认情况下,从 Adobe 下载的对象中,Textures 的名称通常与对应材质名称相同,只是去掉了 mat 后缀,因此一个不错的方法是在按 CTRL SHIFT T 之前先复制材质名称,然后用这个名称作为筛选关键字。

因此,需要对模型中的所有子材质重复执行这一操作。不要忘记每次都选中对应子材质的 Principled BSDF 节点,否则插件不会生效。

接下来看看如何在 Cycles 中为望远镜镜片设置透明材质。

望远镜中有三个子材质需要设置为完全透明材质,分别是 Optics Lenses、Finder Lenses 和 Telescope Main Lenses。

对于这三个材质,需要确认 Alpha 数值为 1,这通常是默认值。

然后需要把这些子材质的 Transmission 数值设置为 1。

在 3D Viewport 窗口的 Rendered 预览模式中,结果应该可以立即看到。

接下来看看如何检查 Normals 是否设置正确。

此时我们还可以进行另一项操作,就是检查面的 Normals 是否朝向正确,也就是是否指向外侧。

从 Adobe 下载的 3D 模型通常都带有厚度,并且 Adobe 团队已经检查过对象所有部分的 Normals 方向是否正确,因此这一步通常是多余的。

不过,你仍然可以切换到 Edit Mode,然后打开 3D Viewport 中的 Viewport Overlays 菜单,并启用 faces 的 Normals 显示来进行检查。

如果发现问题,可以在 Edit Mode 中选中对象的一部分甚至整个模型,然后打开 Blender Toolbox 并执行 Recalculate Outside 操作。

接下来,我们移除导入模型中的 Sharp Edges。

切换到 Edit Mode 后,你可能会看到一些被标记为 Sharp 的边。Mark Sharp 工具会修改 Normals 的属性,因此也会影响依赖 Normals 的工具行为,例如 Edge Split 或 Autosmooth。此外,被标记为 Sharp 的边还会影响使用这些边的面的最终 shading 效果。

这些标记通常不会造成问题,不过如果你希望移除它们,只需要按快捷键 A 选中全部几何体,然后按 CTRL E 打开 Edges 菜单,并选择 Clear Sharp 选项即可。

接下来恢复原始 UV seams。

在 Edit Mode 中,我们还会注意到几何体的 UV unwrap 信息似乎不可见。通常被标记为 Seams 的边会显示为红色,但这里没有显示。

不过,当我们选中属于某个子材质的几何体并在 UV Editing 窗口中查看时,可以发现 UV islands 实际上是存在的。毕竟 Textures 的 UV mapping 已经正确完成,因此 UV unwrap 仍然是原始的,只不过 OBJ 格式不会存储 Seams 之类的信息,所以在 Blender 中看不到这些标记的边。

为了恢复 unwrap,以便修改它们或对 UV islands 执行其他操作,只需要:

在 Edit Mode 中选中全部几何体;

切换到 UV Editor 窗口;

在该窗口中同样选中全部几何体;

打开 UV 菜单并选择 Seams from Island 选项。

这样 UV islands 的边界就会正确显示为 Seams。

接下来看看如何根据使用的子材质分离几何体的各个部分。

按当前设置,模型已经可以直接用于渲染。实际上,我已经在 Blender 场景中使用当前得到的模型制作了封面图,只额外添加了一个作为地面和背景墙的 Plane、光源以及一张 HDR 背景图像。

不过目前望远镜仍然是一个单一对象。对于这个模型以及许多其他模型来说,将各个部分分离并建立父子关系会更加方便。

在望远镜这个例子中,我们显然可以区分三脚架、支架以及望远镜主体,因为望远镜需要既能绕支架轴旋转,也能绕其水平轴旋转。

要从原始对象中分离部分几何体,可以使用 Separate 工具。在 Edit Mode 中选中需要分离的几何体后按 P 键即可使用该工具。

对于由少量部分组成的对象,或者至少结构清晰的对象,可以按如下方式操作:

切换到 Edit Mode;

取消选择全部几何体;

选择一个子材质的槽位;

点击 Select 按钮;

按 P 键并选择 Separate 选项。

然后需要返回 Object Mode,重新选中原始对象,并对其他子材质重复该操作。

Separate 菜单还提供 By Loose Parts 功能,可以把多个几何体分别拆分为独立对象,只要它们彼此没有连接。不过在这个例子中使用 By Loose Parts 会产生数百个不必要的新对象,因为望远镜包含许多彼此未连接的细节部分。

我们的目标是把望远镜分离为三个部分,因此看起来可以手动使用 Separate 功能,但在这个特定示例中,这种方法也有不少缺点。

实际上有多种方法可以选择对象的部分,但望远镜包含大量细节,因此逐个选择时可能会遗漏某些部分。

另一方面,如果使用较大的选择方式,例如 Border Select 或 Circle Select,又可能误选不需要的部分。

不过,望远镜具有九个子材质这一事实给了我们一个思路。我们可以分别选择与每个子材质关联的几何体,并使用 Separate By Materials 功能进行分离。

这种方法最终会生成九个对象,虽然多于我们的需要,但之后可以使用 Join 操作把对象重新合并。

因此我们按如下方式操作:

选中望远镜后,切换到 Edit Mode;

按 A 键选中全部几何体;

按 P 键并选择 By Material 选项。

完成后,我们可以把一些对象合并,例如把 Finder 的镜片合并到 Finder 主体上,然后再把 Finder 主体合并到望远镜主体上。

我们还可以把望远镜镜片、光学组件以及望远镜主体合并在一起。

三脚架上的底座通常只需要根据观测地点的纬度旋转一次,而在观测过程中不会再旋转,因此可以把它与三脚架合并。

这样我们就得到了所需的三个主要对象。在继续操作之前,建议为它们设置有意义的名称。

接下来看看如何为所有分离的部分设置 Origin 并修正旋转。

对象已经分离完成,但它们的 Origin 和初始方向并不正确。如果尝试旋转望远镜主体或支架,这一点会特别明显。

我们先从三脚架开始,因为它最简单,它的 Origin 可以与虚拟世界中心重合,并且其方向可以重置为零。

选中场景中的所有对象,并沿 XY 平面移动,使三脚架的中心轴与全局 Z 轴重合。

完成后,只选中三脚架,按 CTRL A,并在弹出的菜单中选择 Location Rotation Scale 选项,使三脚架的 Origin 位于虚拟世界中心,同时重置 Rotation 和 Scale 信息。

为了正确调整支架和望远镜,我们需要先正确设置支架的 Origin,这样才能正确执行旋转。

使用 H 键临时隐藏三脚架。

选中支架,切换到 Edit Mode,并选中该对象底部的一条边。

按 SHIFT S 组合键,然后选择 Cursor to Selected 选项。

返回 Object Mode,右键点击支架并选择 Set Origin to 3D Cursor。

为了正确设置支架的旋转轴,需要先把支架摆正,然后重置其 Rotation 数值。

在正交侧视图中旋转支架,使其摆正。

在 Rotation Y 数值框中可以看到,需要旋转 60 度才能使支架摆正。

在支架摆正之后,按 CTRL A 并选择 Rotation & Scale 选项。注意,这次不要同时选择 Location,否则会把支架的 Origin 移动到虚拟世界中心。

无论如何,要恢复支架原来的位置,只需绕 Y 轴旋转 60 度即可。

现在支架的本地 Z 轴已经正确设置,因此可以围绕该轴正确旋转。

望远镜需要围绕穿过支架两个销轴的轴线旋转,因此需要把望远镜的 Origin 设置在那里,并且至少确保有一个全局轴穿过该位置,这样才能像支架那样应用旋转变换并正确设置至少一个 Local 轴。

设置 Origin 很简单,因为可以选中支架销轴的两个圆环,它们是完全对称的,然后把 3D Cursor 移动到它们之间的中点位置。

完成之后,选中望远镜,并使用之前已经使用过的 Set Origin to 3D Cursor 操作。

将望远镜摆正,使某个全局轴,例如 Y 轴,正确穿过它,并不是一项简单操作,因为这需要在三个轴上进行旋转。

不过有一个解决方法:可以暂时把望远镜设为支架的子对象,这样至少可以在一个视图中轻松摆正望远镜。因此先选中望远镜,再选中支架,按这个顺序进行选择。

然后按 CTRL P 并选择 Set Parent to Object 选项。

旋转支架,使该对象和望远镜在正交前视图中同时摆正。

此时只旋转望远镜,并尝试通过绕全局 Y 轴旋转将其摆正。

不过,在对望远镜应用旋转变换之前,必须先移除与支架之间的层级关系。

只选中已经摆正的望远镜,按 ALT P,并在弹出的菜单中选择 Clear Parent and Keep Transform 选项。

完成之后,按 CTRL A,然后只对望远镜选择 Rotation & Scale 选项。

接下来为各个对象设置父子关系。

如你在 3D Viewport 中切换到 Local 变换选择器后可以验证,现在望远镜可以围绕其本地 Y 轴旋转,而支架可以围绕其本地 Z 轴旋转。

现在只需要正确建立这三个元素之间的父子关系,就可以方便地移动或旋转它们。

首先,把支架设为三脚架的子对象。操作方法始终相同:进行多对象选择时,需要先选中子对象,再选中父对象,然后按 CTRL P 建立父子关系。

接着建立望远镜与支架之间的父子关系,这一次最后选中支架。

在 Outliner 窗口中可以清楚看到层级结构。

现在我们可以在场景中轻松移动、旋转和缩放三脚架,同时这些操作也会正确应用到其他对象上。

此外,我们还可以围绕本地轴正确旋转支架和望远镜,从而获得正确的结果,这既适用于调整望远镜的不同姿态,也适用于制作动画。

好了,本教程到此结束。希望对你有所帮助。我们下次再见。

搜索教程

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

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


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