在本教程中,我们将介绍如何把从 Adobe Stock 下载的 3D 模型导入到 Unity 中,并为内置 Shader 和 Universal Render Pipeline 设置 PBR 纹理。


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


视频文字稿

大家好!在本教程中,我们将介绍如何把从 Adobe Stock 下载的 3D 模型导入到 Unity 中,并为内置 Shader 和 Universal Render Pipeline 设置 PBR 纹理。

实际上,这两种渲染引擎之间存在一些小差异,我们会在本教程中进行说明,因此建议大家完整观看。本教程不会演示 High Definition Rendering Pipeline 的操作,因为它与 Universal Render Pipeline 相比差别不大。

在实际示例中,我将使用一个名为 Business Jet 的 3D 模型。

在 Adobe Stock 网站上,有成千上万的 3D 模型可供选择。

每个 3D 模型都以 OBJ 格式提供,并附带 PBR 纹理,因此几乎可以在所有 3D 图形软件和游戏引擎中使用,例如 Unity、Unreal、Blender、3D Studio MAX 等。

根据需要,你可以单独购买 3D 模型,也可以通过积分包购买,价格非常优惠。

模型的纹理为 PNG 格式,并包含 PBR Metallic Workflow 的独立通道,因此我们会有 Base Color、Normal、Metallic、Roughness、Glow 和 Opacity 通道的纹理。

不过,Unity 的默认材质要求将 Smoothness 信息整合到 Metallic 纹理中。此外,Smoothness 与 Adobe 包中提供的 Roughness 正好相反。

我们可以使用外部软件转换并打包 Metallic 信息,但在 Unity 中有一种方法可以将 Metallic Workflow 的纹理作为单独图像进行指定,稍后我们会看到具体方法。

现在我们来看如何在使用内置 shader 的项目中导入和配置这些 3D 模型。

首先,将从 Adobe 下载的包中的 OBJ 文件和 MTL 文件拖入 Project 面板。MTL 文件用于指定要创建哪些材质以及如何将它们映射到 3D 模型上。

为了实时查看更改效果,将 3D 模型从 Project 拖入场景中,然后按 F 键将其居中显示。

Unity 会在导入的 3D 模型中查找材质和纹理,但在这种情况下,纹理并未集成。

因此,在 Project 中选中 3D 模型,然后在 Inspector 窗口中打开 Materials 选项卡。

在 Location 菜单中选择 Legacy 选项,然后点击 Apply。

Unity 会在 Project 窗口中创建一个名为 Materials 的新文件夹。在该文件夹中,我们会找到两个已经与 3D 模型关联的材质,但还没有纹理。

接着,将我们需要的纹理从 Adobe 包拖入该文件夹。我不会导入 Glow 纹理,因为这个对象不需要发光材质。

现在先选中完全不透明的材质。

在 Inspector 窗口中点击 Shader 菜单,选择 Autodesk Interactive 选项。

如你所见,我们可以设置 Rendering Mode。在这里保持为 Opaque。最重要的是,我们可以分别指定 PBR Metallic Workflow 的各个纹理。

将从 Adobe 包导入的纹理分别关联到 Shader 的对应通道。

对于 Normal Map,在导入后点击出现的 Fix Now 按钮进行修复。

我们还需要对 Base Color 也就是 Albedo,以及 Roughness 做一些说明。

Base Color 实际上是纹理与旁边颜色值混合后的结果。因此,点击该颜色并将其调整为纯白色,这样最终显示的就是纹理本身的颜色。

你也可以尝试将纹理与不同颜色混合,观察效果变化。

对于 Roughness 纹理,如果最终效果不符合预期,请在 Project 中选中该纹理,在 Inspector 窗口中取消勾选 sRGB Color Texture,然后点击 Apply 查看结果。

对于 Glass 材质也需要执行类似操作,区别在于需要将 Autodesk Interactive 的 Rendering Mode 设置为 Transparent。

此模式会从 Base Color 纹理的 Alpha 通道读取透明度信息。如果没有该通道,也可以不导入此纹理,而是在 Albedo 旁边的颜色槽中将 Alpha 值手动设置为 0。

现在应用其他纹理,并注意之前关于 Roughness 和 Normal Map 所说的操作,也就是取消勾选 sRGB 以及点击 Fix Now。

接下来我们看看如何在从一开始就使用 Universal Rendering Pipeline 创建的项目中导入模型和纹理。

导入 3D 模型和创建材质的过程与内置 shader 的情况相同,因此我们同样将 OBJ 文件和 MTL 文件导入 Project 窗口。

然后在 3D 模型的 Inspector 窗口的 Materials 选项卡中选择 Legacy 选项,并点击 Apply,使 Unity 创建 Materials 文件夹及其材质。

在 Materials 文件夹中导入需要关联到现有材质的纹理图像。

不过,此时我们无法直接将每个材质的 Shader 类型更改为 Autodesk Interactive,因为该选项仅适用于内置 shader。

不用担心!在 Shader 菜单的 Universal Render Pipeline 选项中也可以找到 Autodesk Interactive。

我们还会看到三种模式,分别是 Base、Masked 和 Transparent。

对于飞机的不透明材质,我们使用 Base 模式;对于玻璃材质,我们使用 Transparent 模式。

首先在 Universal Render Pipeline 的 Autodesk Interactive 材质中,将纹理关联到各自的通道。

可以看到,shader 不会自动应用纹理,因此需要手动勾选每个纹理对应的 Use Map 复选框。

对于 Normal Map,Unity 通常会提示点击 Fix Now 按钮进行修复。

如果没有该按钮,可以在 Project 中选中纹理,在 Inspector 窗口的 Texture Type 菜单中将其类型设置为 Normal Map。

关于 Roughness 纹理的处理方式与内置 shader 相同,可能需要在 Inspector 中取消勾选 sRGB 选项并应用更改。

对于 Glasses 材质,需要进行类似操作,但有一些差异。首先,Shader 必须选择 Autodesk Interactive Transparent。

Base Color、Normal Map、Metallic 和 Roughness 的设置与之前相同,但在透明纹理 Opacity 方面存在重要区别。

在 Autodesk Interactive Transparent 中,Use Opacity Map 复选框允许我们使用 Base Color 纹理中的透明通道。但我们实际上有一个单独的 Opacity 纹理。

该如何处理呢?这取决于材质是否完全透明。

如果材质是完全透明的,例如本例,那么可以不使用纹理,直接在 Opacity 字段中将数值设置为 0。

如果材质只在某些区域透明,则可以选择 Autodesk Interactive Masked shader,并使用我们的 Opacity 纹理。

同样,在这些情况下,与内置 shader 一样,也可以使用 Adobe 包中提供的 Glow 贴图作为 Emissive 通道。我在本项目中没有使用该纹理,因为不需要,但了解这一选项是很有帮助的。

好了,本教程就到这里!希望对你有所帮助!下次再见!

搜索教程

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

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


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