Blender 插件:GLTF 2.0 导入 / 导出工具
推荐:使用NSDT场景编辑器快速搭建 3D 应用场景
用法
glTF™(GL 传输格式)用于 3D 模型的传输和加载 在 Web 和本机应用程序中。glTF 减小了 3D 模型的大小和 解包和呈现这些模型所需的运行时处理。 这种格式在网络上常用,并且在各种3D引擎中都有支持。 比如 Unity3D、虚幻引擎 4 和 Godot。
此导入器/导出器支持以下 glTF 2.0 功能:
网 格
材料(原理 BSDF)和无阴影(无照明)
纹理
相机
准时灯光(点、点和方向)
动画(关键帧、形状关键帧和外观)
网 格
glTF 的内部结构模仿了图形芯片常用的内存缓冲区 实时渲染时,以便可以将资产交付到桌面、Web 或移动客户端 并以最少的处理及时显示。结果,四边形和 n 边形 导出为 glTF 时自动转换为三角形。 不连续的 UV 和平坦的阴影边缘可能会导致 glTF 中的顶点计数略高 与搅拌机相比,因为这样的顶点是分开的。 同样,曲线和其他非网格数据也不会保留, 并且必须在导出之前转换为网格。
材料
glTF 中的核心材料系统支持金属/原石 PBR 工作流程 具有以下信息渠道:
基色
金属
粗糙度
烘烤环境光遮蔽
法线贴图
发射的
glTF 2.0 核心格式中可用的各种图像映射的示例。这是 水瓶示例模型与其各种图像映射的切片一起显示。
进口材料
glTF 材料系统与 Blender 自己的材料不同。导入 glTF 文件时, 该插件将构建一组 Blender 节点,以尽可能接近地复制每个 glTF 材料。
导入器支持金属/原石 PBR (核心 glTF)、规格/光泽 PBR () 和无阴影 () 材料。KHR_materials_pbrSpecularGlossinessKHR_materials_unlit
提示
检查材料导入过程的结果是查看示例的好方法 可导出到 glTF 的材质节点和设置的类型。
出口材料
导出器支持金属/粗糙 PBR(核心 glTF)和无阴影()材料。 它将根据它在 Blender 材质中识别的节点构建 glTF 材质。 材料导出过程处理下述设置。KHR_materials_unlit
注意
当材质使用图像纹理时,glTF 要求图像采用 PNG 或 JPEG 格式。 该插件将自动转换其他格式的图像,从而增加导出时间。
提示
要创建无阴影(无光照)材质,请使用背景材质类型。
基色
glTF 基色是通过在原则 BSDF 节点上查找基色输入来确定的。 如果输入未连接,则输入的默认颜色(未连接的套接字旁边的色域) 用作 glTF 材质的基色。
可以直接在节点上指定纯基色。
如果发现图像纹理节点连接到基色输入, 该图像将用作 glTF 基色。
图像用作 glTF 基色。
金属和粗糙度
这些值是从原则 BSDF 节点读取的。如果这两个输入都未连接, 节点将显示滑块以控制它们在 0.0 和 1.0 之间的相应值, 这些值将被复制到 glTF 中。
使用图像时,glTF 期望金属值在蓝色 () 通道中编码, 以及在同一图像的绿色()通道中编码的粗糙度。 如果图像以不遵循此约定的方式连接到 Blender 节点, 加载项可能会尝试在导出过程中将图像调整为正确的形式(增加导出时间)。BG
在 Blender 节点树中,建议使用单独的 RGB 节点 将通道与图像纹理节点分开,以及 将绿色 () 通道连接到粗糙度,将蓝色 () 连接到金属。 glTF 导出商将识别此安排与 glTF 标准匹配,并且 这将允许它在导出过程中简单地将图像纹理复制到 glTF 文件中。GB
此时的“图像纹理”节点应将其“颜色空间”设置为“非颜色”。
以符合 glTF 标准的方式连接的金属/粗糙度图像, 允许在导出的 glTF 文件中逐字使用它。
烘烤环境光遮蔽
glTF 能够存储烘焙的环境光遮蔽贴图。 目前没有导致 Blender 的节点排列 以与 glTF 中完全相同的方式使用此类映射。 但是,如果导出程序找到名为 和 的自定义节点组 查找在该节点组上命名的输入, 它将查找附加在那里的图像纹理,以用作 glTF 中的遮挡贴图。 效果不需要在 Blender 中显示,因为 Blender 还有其他显示环境光遮蔽的方式, 但此方法将允许导出器将遮挡图像写入 glTF。 这对于实时 glTF 查看器非常有用,尤其是在存在 可能不是在渲染时计算这些东西的备用电源。glTF SettingsOcclusion
预烘焙的环境光遮蔽贴图,连接到不渲染但将导出到 glTF 的节点。
提示
创建自定义节点组的最简单方法是导入现有的 glTF 模型 包含遮挡贴图,例如 水瓶或其他现有模型。也可以使用手动创建的自定义节点组。
glTF 将遮挡存储在红色 () 通道中,允许其选择性共享 具有粗糙度和金属通道的图像相同。R
这种节点组合模仿了 glTF 包装遮挡、粗糙度和 金属值到单个图像中。
提示
循环渲染引擎有一个烘焙面板,可用于烘焙 环境光遮蔽贴图。生成的图像可以保存和连接 直接到节点。glTF Settings
法线贴图
要在 glTF 中使用法线贴图,请连接图像纹理节点的颜色输出 连接到法线贴图节点的颜色输入,然后将法线贴图法线输出连接到 原则 BSDF 节点的正常输入。“图像纹理”节点 为此,应将其“颜色空间”属性设置为“非颜色”。
法线贴图节点必须保留在其默认属性“切线空间”上,作为 这是 glTF 目前支持的唯一法线贴图类型。 法线贴图的强度可以在此节点上进行调整。 导出器不会直接导出这些节点,而是会使用它们来定位 正确的图像,并将强度设置复制到 glTF 中。
连接了一个法线地图图像,以便导出器能够找到并复制它 到 glTF 文件。
提示
循环渲染引擎有一个烘焙面板,可用于烘焙 来自几乎任何其他法线向量节点排列的切空间法线贴图。 将烘焙类型切换为正常。保留默认空间设置 (空格:切线,R: +X,G:+Y,B:+Z)当将此烘焙面板用于 glTF 时。 生成的烘焙图像可以保存并插入到新材料中 如上所述的法线贴图节点,允许其正确导出。
请参见:循环渲染烘焙
发射的
图像纹理节点可以连接到发光着色器节点,并且 可以选择通过添加着色器节点与原则 BSDF 节点的属性组合。
如果 glTF 导出器找到连接到发光着色器节点的图像, 它会将该图像导出为 glTF 材质的自发光纹理。
可以将排放节点添加到现有节点。
注意
此导出器尚不支持原则 BSDF 节点的发射输入。 这可能会在将来的版本中更改。
双面/背面剔除
对于仅可以看到正面的材质,请打开背面剔除 Eevee 材质的“设置”面板。使用其他发动机(循环、工作台)时 您可以暂时切换到 Eevee 来配置此设置,然后切换回来。
对于双面材料,请取消选中此框。
此设置的反转控制 glTF 的标志。
混合模式
基色输入可以选择提供 alpha 值。 glTF 如何处理这些值取决于所选的混合模式。
选择 Eevee 渲染引擎后,每个材质都有一个混合模式 材质设置面板。使用此设置定义 alpha 值如何从 基色通道在 glTF 中处理。glTF 支持三种设置:不透明字母值将被忽略(默认值)。阿尔法混合较低的 Alpha 值会导致与背景对象混合。阿尔法剪辑低于“剪辑阈值”设置的 Alpha 值将导致部分 根本不要渲染的材料。其他所有内容都呈现为不透明。
选择 Eevee 引擎后,材质的混合模式是可配置的。
注意
请注意,透明度(或 Alpha 混合模式)对于实时引擎来说很复杂 进行渲染,并且在导出后可能会以意外的方式运行。在可能的情况下, 改用 Alpha 裁剪模式,或仅将不透明多边形放在后面 阿尔法混合多边形的单个图层。
紫外线贴图
通过连接 UV 贴图节点可以控制 UV 贴图的选择和变换 以及将节点映射到任何图像纹理节点。
“映射”节点中的设置使用名为 的 glTF 扩展名导出。 顶部有一个映射类型选择器。点是建议导出的类型。还支持纹理和矢量。支持的偏移量包括:KHR_texture_transform
位置 - X 和 Y
旋转 - 仅 Z 轴
比例 - X 和 Y
对于纹理类型,缩放 X 和 Y 必须相等(均匀缩放)。
深思熟虑的 UV 贴图选择。
提示
这些节点是可选的。并非所有 glTF 读取器都支持多个 UV 贴图或纹理变换。
因素
任何图像纹理节点都可以选择与常量颜色或标量相乘。 这些将作为因子写入 glTF 文件中,它们是相乘的数字 使用指定的图像纹理。这些并不常见。
例
如果需要,单一材料可以同时使用上述所有材料。此图显示 同时应用上述多个选项时的典型节点结构:
具有自发光纹理的原则 BSDF 材质。
扩展
核心 glTF 2.0 格式可以使用 glTF 扩展扩展使用额外信息进行扩展。 这允许文件格式保存首次发布时不被视为通用的详细信息。 并非所有 glTF 阅读器都支持所有扩展,但有些扩展相当常见。
某些 Blender 功能只能通过这些扩展导出到 glTF。 此附加组件直接支持以下 glTF 2.0 扩展:
进口
KHR_materials_pbrSpecularGlossiness
KHR_lights_punctual
KHR_materials_unlit
KHR_texture_transform
出口
KHR_draco_mesh_compression
KHR_lights_punctual
KHR_materials_unlit
KHR_texture_transform
动画
glTF 允许每个文件有多个动画,动画目标为 导出时的特定对象。为了确保包含动画, (a) 使其成为对象上的活动操作,(b) 创建单条带 NLA 轨道, 或 (c) 隐藏操作。
支持
仅支持某些类型的动画:
关键帧(平移、旋转、缩放)
形状键
电枢/蒙皮
其他属性(如光源或材质)的动画将被忽略。
自定义属性
大多数对象的自定义属性都保留在 glTF 导出/导入中,并且 可用于用户特定目的。
版权声明: 本文为 InfoQ 作者【3D建模设计】的原创文章。
原文链接:【http://xie.infoq.cn/article/d8d2ff321a5db0bc878566d60】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论