首页 > blender > blender关联复制如何让物体单独变换-GLTF 2.0
2023
10-25

blender关联复制如何让物体单独变换-GLTF 2.0

GLTF 2.0

参考

类别

进出口

菜单

文件 ‣ 导入/导出 ‣ glTF 2.0 (.glb, .gltf)

用法

glTF™(GL 传输格式)用于在 Web 和本机应用程序中传输和加载 3D 模型。 glTF 减少了 3D 模型的大小以及解压缩和渲染它们所需的运行时处理。 该格式常用于网页,支持Unity3D、Unreal Engine 4、Godot等多种3D引擎。

此导入器/导出器支持以下 glTF2.0 功能:

网格

glTF的内部结构模拟了图形芯片在实时渲染时常用的内存缓冲区,从而可以将资源传送到桌面、Web或移动终端并以最少的处理快速显示。 因此,导出到 glTF 时,四边形和多边形会自动转换为三角形。 与 Blender 相比,不连续的 UV 和平坦的阴影边缘可能会导致 glTF 中的顶点数稍高,因为这些顶点是分开导出的。 同样,曲线和其他非网格数据不会保留blender关联复制如何让物体单独变换,必须在导出之前转换为网格。

材料

glTF 中的核心材​​质系统通过以下信息渠道支持金属/毛坯 PBR 工作流程:

一些附加材料属性或材料类型可以使用 glTF 扩展来表示。完整列表可以在本文档的_Extensions_部分中找到。

glTF 2.0 核心格式中可用的各种图像映射的示例。 该水瓶示例模型同时显示了各种地图切片样本。

进口材料

glTF材质系统与Blender自己的材质不同。 当您导入 glTF 文件时,该插件将构造一组 Blender 节点来尽可能接近地复制每个 glTF 材质。

导入器支持金属/粗糙 PBR(核心 glTF)、规格/光泽 PBR(KHR_materials_pbrSpecularGlossiness)和一些扩展材质。 完整列表可以在本文档的_Extensions_部分找到。

提示

检查材质导入过程的结果是查看可导出到 glTF 的材质节点类型和设置示例的好方法。

出口材料

该导出器支持金属/粗糙 PBR(核心 glTF)和无阴影(KHR_materials_unlit)材质。 它将根据它在 Blender 材质中识别的节点构建 glTF 材质。 材质导出过程处理下述设置。

笔记

在材质中使用图像纹理时,glTF 要求图像格式为 PNG 或 JPEG。 该插件会自动将图像转换为其他格式,从而增加导出时间。

基本色

glTF 基色是通过查找 Principled BSDF 节点上的基色输入来确定的。 如果输入未连接,则输入的默认颜色(未连接套接字旁边的颜色字段)将用作 glTF 材质的基色。

可以直接在节点上指定纯色基色。

如果发现图像纹理节点连接到基色输入,则该图像将用作 glTF 基色。

用作 glTF 基色的图像。

金属丰度和粗糙度

这些值是从 Principled BSDF 节点读取的。 如果两个输入都未连接,节点将显示滑块来控制它们各自的值在0.0和1.0之间,并且这些值将被复制到glTF中。

处理图像时,glTF 期望金属度值在同一图像的蓝色 (B) 通道中编码,粗糙度值在绿色 (G) 通道中编码。 如果图像以不遵循此约定的方式连接到 Blender 节点,则插件可能会在导出期间尝试将图像调整为正确的形式(导出时间增加)。

在Blender节点树中,建议使用单独的RGB节点将通道与图像纹理节点分开,并将绿色(G)通道连接到粗糙度,将蓝色(B)通道连接到金属度。 glTF 导出器会将这种排列识别为符合 glTF 标准,这将允许它在导出期间简单地将图像纹理复制到 glTF 文件中。

该图像纹理节点应将其颜色空间设置为非颜色。

金属度/粗糙度图像以符合 glTF 标准的方式连接,允许在导出的 glTF 文件中逐字使用。

烘焙环境光遮挡

glTF 可以存储烘焙的环境光遮挡贴图。 目前,还没有节点排列可以让 Blender 以与 glTF 完全相同的方式使用该贴图。 但是,如果导出器找到名为 glTF 材质输出的自定义节点组,并在该节点组上找到名为遮挡的输入,它将在 glTF 中查找作为遮挡贴图附加在那里的图像纹理。 此效果不需要在 Blender 中显示,因为 Blender 有其他显示环境遮挡的方法,但此方法将允许导出器将遮挡图像写入 glTF。 这对于实时 glTF 查看器非常有用,特别是在可能没有额外能力在渲染时计算这些内容的平台上。

预烘焙的环境光遮挡贴图,连接到不会渲染但会导出到 glTF 的节点。

提示

创建自定义节点组的最简单方法是导入包含遮挡贴图的现有 glTF 模型,例如水瓶或其他现有模型。 您还可以使用手动创建的自定义节点组。

glTF 将遮罩存储在红色 (R) 通道中,使其能够选择与粗糙度和金属度通道相同的图像。

这种节点组合模仿了 glTF 将遮挡、粗糙度和金属值打包到单个图像中的方式。

提示

Cycles 渲染引擎有一个烘焙面板,可用于烘焙环境光遮挡贴图。 生成的图像可以保存并直接连接到 glTF 材质输出节点。

法线贴图

要在 glTF 中使用法线贴图,请将“图像纹理”节点的“颜色”输出连接到“法线贴图”节点的“颜色”输入,然后将“法线贴图法线”输出连接到“Principled BSDF”节点的“法线”输入。 该图像纹理节点的颜色空间属性应设置为非颜色。

法线贴图节点必须保留其切线空间默认属性,因为这是 glTF 当前支持的唯一法线贴图类型。 可以在此节点上调整法线贴图的强度。 导出器不会直接导出这些节点,而是使用它们来定位正确的图像并将强度设置复制到 glTF 中。

导出器将找到连接的法线贴图并将其复制到 glTF 文件中。

提示

Cycles 渲染引擎有一个烘焙面板,可用于烘焙来自几乎任何其他法线向量节点排列的切线空间法线贴图。 将烘焙类型切换为正常。 当将此烘焙面板与 glTF 一起使用时,请保留默认空间设置(空间:切向、R:+X、G:+Y、B:+Z)。 如上所述,可以使用上述法线贴图节点保存生成的烘焙图像并在新材质中使用,从而使其能够正确导出。

另请参阅:循环渲染烘焙

排放

图像纹理节点可以连接到原则 BSDF 节点上的发射输入,以包含 glTF 材质的发射贴图。 或者,图像纹理节点可以连接到发射着色器节点,并通过添加着色器节点来与主 BSDF 节点的属性相结合。

如果辐照度贴图单独存在于材质中,最好将基色默认为黑色,粗糙度默认为1.0。 这可以最大限度地减少不需要的其他渠道的影响。

支持这种安排是为了向后兼容。 直接使用原理BSDF节点比较简单。

如果 emissiveFactor 的任何部分 > 1.0,则将使用 KHR_materials_emissive_strength 扩展。

当原则 BSDF 节点上的透明涂层输入具有非零默认值或连接的图像纹理节点时,KHR_materials_clearcoat glTF 扩展将包含在输出中。 此扩展还将包括清漆粗糙度输入或图像纹理的值(如果可用)。

如果使用图像纹理,glTF 要求将清漆值写入红色 (R) 通道,并将清漆粗糙度写入绿色 (G) 通道。 如果您连接单色图像,导出器会将它们重新映射到这些颜色通道。

清漆法线输入接受与基本法线输入相同的输入,特别是带有 +Y 向上的切线空间法线贴图和用户定义的强度。 此输入可以重用基础材质所使用的法线贴图blender关联复制如何让物体单独变换,可以分配其自己的法线贴图,或者可以保持不连接以获得平滑涂层。

用于清漆着色的所有图像纹理节点应将其颜色空间设置为消色差。

正确导出到 glTF 的复杂清漆应用程序的示例。 可以通过原则性的 BSDF 节点简单地应用更简单、更光滑的涂层。

光泽

当 Velvet BSDF 节点与 Principled BSDF 节点一起使用时,KHR_materials_sheen glTF 扩展将包含在导出中。 光泽颜色将从 Vevlet 节点的颜色套接字导出。 粗糙度将从 Sigma 插座导出。

如果使用光泽粗糙度纹理,glTF 要求将这些值写入 alpha (A) 通道。

提示

Velvet BSDF 节点仅在 Cycles 渲染引擎上可用。 您可能需要暂时切换到 Cycles 以添加此节点,然后返回到 Eevee。

笔记

由于节点树添加了两个着色器(原理和镜面),因此生成的着色器并不完全节能。 您可能会发现 Blender 渲染和 glTF 渲染之间存在一些差异。 Blender 和 glTF 之间的 Sheen 模型不完全兼容。 这个关于添加天鹅绒着色器的技巧是最准确的近似值(比使用镜面反射原理更好)。

镜子的反射

当原则 BSDF 节点的镜面反射或镜面色调输入具有非默认值或连接图像纹理节点时,KHR_materials_specular glTF 扩展将包含在导出中。

笔记

Blender 和 glTF 之间的镜面模型不完全兼容。 默认情况下,Blender的数据在导出时会转换为glTF,这可能会导致一些信息丢失。 导入时也会进行一些转换,一些信息可能会丢失。

导入时,将创建自定义节点组来存储原始镜面反射数据,而不是转换数据。

导出时,默认情况下吉祥物,镜面数据是从原理图 BSDF 节点转换而来。

您可以通过在导出时启用此选项来导出原始镜面数据。 如果启用,原则上的镜面数据将被忽略,并且仅使用自定义节点的数据。

提示

如果您在首选项中启用节点编辑器插件,您将能够从菜单添加此自定义节点组。添加 > 输出 > glTF 材质输出

通过样品

当原理图 BSDF 节点上的 Transmission 输入具有非零默认值或连接了图像纹理节点时,KHR_materials_transmission glTF 扩展将包含在导出中。 使用纹理时,glTF 将值存储在红色 (R) 通道中。 色彩空间应设置为消色差。

透射与 Alpha 混合的不同之处在于透射允许全强度镜面反射。 在glTF中,alpha混合的目的是表示指定几何体中部分缺失的物理材质,例如医用纱布袋。 透射的目的是表示固体物理材料,但允许非镜面光穿过该材料,例如玻璃。

glTF 不提供单独的转移粗糙度,但可以使用材质的基础粗糙度来模糊转移,就像毛玻璃一样。

提示

通常,透射材质的 Alpha 混合模式应保留为“不透明”,这是默认设置,除非材质仅部分覆盖指定的几何体。

笔记

在支持传输的实时引擎中,引擎中的各种技术限制可能会决定场景的哪些部分通过传输表面可见。 特别地,透射材料在其他透射材料后面可能不可见。 这些限制会影响基于物理的透射率,但不会影响 alpha 混合的非透射材料。

笔记

如果要在模型上启用折射,KHR_materials_transmission 还必须与 KHR_materials_volume 一起使用。 请参阅文档的专用卷部分。

警告

对于实时渲染引擎来说,传输的实现很复杂,并且对 KHR_materials_transmission glTF 扩展的支持尚未广泛普及。

折射率

导入时,有2种不同的情况:

导出时,仅当同时使用这些扩展之一时,IOR 才会包含在导出中。

IOR 1.5 不包含在输出中卡通人物,因为这是默认的 glTF IOR 值。

体积光渲染

可以使用连接到输出节点的卷套接字的卷吸收节点导出卷。 将使用 KHR_materials_volume 扩展导出数据。

glTF 变种

笔记

要获得完整的变体体验,您必须在插件首选项中启用用户界面

Blender中有两个地方可以管理glTF变体

理解使用变体的主要概念是每个材质槽将用作 glTF 原语的等效项。

glTF 变量切换

导入包含 KHR_MATERIAL_VARIANTS 扩展名的 glTF 文件后,可以显示所有变体。

您可以通过选择要显示的变体并单击显示变体来切换变体。

您可以通过单击“重置为默认值”来切换到默认材质(当未使用变体时)。

glTF 变体创建

您可以通过单击变体菜单右侧的 + 号来添加新变体。 然后您可以双击更改名称。

更改材质槽中的材质后,您可以使用分配到变体将当前材质分配给活动变体。

您还可以使用分配来设置图元的默认材质。 这些材质将作为 glTF 中的默认材质导出。 这是将向任何不管理 KHR_MATERIALS_VARIANTS 扩展的查看者显示的材质。

高级 glTF 变异检查

如果你想逐个查看原始版本,使用什么变体,可以转到网格材质属性。

glTF 材料变体标签指的是活动材料槽和该槽使用的材料。 您可以在给定的插槽/原件中查看使用该材料的所有变体。

您还可以从此选项卡将材质分配给变体,但建议从 3D 视图选项卡执行此操作。

双面/背面剔除

对于仅正面可见的材质,请在 Eevee 材质的设置面板中启用背面剔除。 使用其他引擎(Cycles、Workbench)时,您可以暂时切换到 Eevee 来配置此设置,然后再切换回来。

对于双面材料,请不要选中此框。

此设置反转控制 glTF 双面标志。

混合模式

基色输入可以选择提供 alpha 值。 glTF 如何处理这些值取决于所选的混合模式。

选择Eevee渲染引擎后,每种材质在材质设置面板上都有一个混合模式。 使用此设置可以定义在 glTF 中如何处理基色通道的 Alpha 值。 glTF 支持三种设置:

不透明

忽略 alpha 值(默认)。

阿尔法混合

较低的 alpha 值会导致与背景对象混合。

阿尔法钳

低于剪切阈值设置的 Alpha 值将导致材质的某些部分根本无法渲染。 其他一切都变得不透明。

选择Eevee引擎后,材质的混合模式是可配置的。

笔记

请注意,透明度(或 Alpha 混合模式)的实时引擎渲染很复杂,导出后可能会出现意想不到的行为。 尝试使用 Alpha 剪辑模式,或将不透明多边形放置在仅包含 Alpha 混合多边形的单层后面。

紫外映射

您可以通过将 UV 贴图节点和贴图节点连接到任何图像纹理节点来控制 UV 贴图选择和变换。

贴图节点中的设置使用名为 KHR_texture_transform 的 glTF 扩展导出。 顶部有一个映射类型选择器。 建议使用点导出。 还支持纹理和矢量。 支持的偏移量有:

对于纹理类型,缩放 X 和 Y 必须相等(均匀缩放)。

特意选择的 UV 贴图。

提示

这些节点是可选的。 并非所有 glTF 读取器都支持多个 UV 贴图或纹理变换。

因素

任何图像纹理节点都可以选择乘以常量颜色或标量。 它们将作为因子写入 glTF 文件中,即与指定图像纹理相乘的数字。 不常见。

例子

如果需要,单一材质可以同时使用所有上述节点。 下图显示了同时应用多个上述选项时的典型节点结构:

具有发光纹理的原则性 BSDF 材料。

导出无阴影(非发射)材料

要导出未照亮的材质,请混合相机光线并避免使用 Principled BSDF 节点。

导出 KHR_MATERIALS_UNLIT 并在 Blender 中渲染几个类似的没有阴影的节点排列之一。

扩展名)

可以使用 glTF 扩展来扩展核心 glTF 2.0 格式的附加信息。 这允许文件格式保留最初发布时不通用的细节。 并非所有 glTF 阅读器都支持所有扩展,但有些扩展相当常见。

某些 Blender 功能只能通过这些扩展导出到 glTF。 此附加组件直接支持以下 glTF 2.0 扩展:

进口

出口

第三方 glTF 扩展

Python 开发人员可以通过编写自己的第三方附加组件来添加 Blender 对其他 glTF 扩展的支持,而无需修改此 glTF 附加组件。 有关更多信息,请参阅 GitHub 上的示例,如果需要,请注册扩展前缀。

自定义属性

如果在导出之前选择了 Include ‣ Custom Properties 选项,则大多数对象始终会导入和导出自定义属性。 这些属性存储在 glTF 文件中相应对象的额外字段中。

与 glTF 扩展不同,自定义属性(附加)没有定义的命名空间,可用于任何特定于用户或特定于应用程序的目的。

动画片

GlTF 动画更改对象或姿势骨骼的变换或形状关键点的值。 一个动画可以影响多个对象,一个glTF文件中可以有多个动画。

进口

导入的模型已设置为自动播放文件中的第一个动画。 擦拭时间线即可观看播放。

当一个文件包含多个动画时,其余动画将使用非线性动画编辑器进行组织。 每个动画都成为隐藏在 NLA 轨道上的动作。 轨道的名称是 glTF 动画的名称。 要使该轨道中的动画可见,请单击要播放的轨道旁边的独奏(星形图标)。

这是狐狸模型,展示了它的“奔跑”动画。

如果一个动画影响多个对象,它将被分成多个部分。 影响对象的动画部分成为隐藏在该对象上的动作。 使用轨道名称来区分哪些动作是同一动画的一部分。 要播放整个动画,您需要为其所有轨道启用 Solo(星形图标)。

笔记

目前无法看到动画模型的非动画姿势。

出口

您可以通过创建动作来导出动画。 如何从动作生成 glTF 动画由 Animation ‣ Group by NLA 轨迹导出选项控制。

按 NLA 轨道分组(默认)。

如果某个动作是对象上的活动动作,或者它存储在 NLA 轨道上(例如,使用动作编辑器中的“隐藏”或“下推”按钮),则它将被导出。 不以这些方式之一与对象关联的操作不会导出。如果您要导出多个操作,请确保它们处于隐藏状态

一个glTF动画可以有一个名称,默认是动作名称。 您可以通过将其 NLA 轨道从 NLATrack/[Action Stash] 重命名为您要使用的名称来覆盖它。 例如,图将导出三个动画,“Watch”、“Walk”和“Run”。 如果将两个不同对象上的两个轨道重命名为相同的名称,它们将成为同一 glTF 动画的一部分并一起播放。

导入器组织操作,以便在此模式下正确导出它们。

靠近 NLA 轨道分组

在此模式下,不使用 NLA 组织,并且仅使用所有对象上的活动动作导出动画。

笔记

对于这两种模式,请记住仅支持某些类型的动画:

其他属性(例如物理、灯光或材质)的动画将被忽略。

笔记

为了使用骨骼变换对由驱动程序控制的形状关键动画进行采样,它们必须位于作为骨骼骨架的直接子代的网格对象上。

文件格式变化

glTF 规范确定了存储数据的不同方式。 进口商处理所有存储方法。 出口商将要求用户选择以下几种形式之一:

glTF 二进制文件 (.glb)

这将生成一个“.glb”文件,其中所有网格数据、图像纹理和相关信息都打包到二进制文件中。

提示

使用单个文件可以轻松共享模型或将模型复制到其他系统和服务。

glTF 单独(.gltf + .bin + 纹理)

这将生成一个基于描述整体结构的 JSON 文本的 .gltf 文件、一个包含网格和矢量数据的 .bin 文件以及 .gltf 文件中引用的多个可选 .png 或 .jpg 文件。

提示

拥有单独的文件可以让用户在导出完成后更轻松地返回并编辑任何 JSON 或图像。

笔记

请注意,共享此格式需要将所有这些单独的文件作为一个组共享。

嵌入 glTF (.gltf)

这将生成一个基于 JSON 文本的 .gltf 文件,其中所有网格数据和图像数据都编码在文件中(使用 Base64)。 如果必须通过纯文本连接共享资源,则此格式非常有用。

警告

这是可用格式中效率最低的,仅应在需要时使用。

属性

进口

打包图片

将所有图像打包到混合文件中。

染色

如何在导入期间计算法线。

猜猜原来的绑定姿势

确定编辑模式下骨骼(和面板网格)的姿势。 启用后,尝试猜测用于计算逆绑定矩阵的姿势。

骨方向

更改导入器用来决定骨尖放置位置的启发式。 请注意,命运设置可能会导致使用不均匀缩放的模型不准确。 否则,这纯粹是审美的。

出口

格式

看: 。

质地

放置纹理文件的文件夹。 相对于 .gltf 文件。

最后编辑:
作者:nuanquewen
吉祥物设计/卡通ip设计/卡通人物设计/卡通形象设计/表情包设计