**工具推荐:3D数字孪生场景编辑器-GLTF GLB材质纹理编辑器-3D模型转换-三JS AI自动纹理开发套件 - Yolo Unreal 合成数据生成器 - 3D模型预览生成器 - 3D模型语义搜索引擎
简而言之,如果要将数据传输到Unity或虚幻引擎等游戏引擎,或者Clara等游戏引擎如果在 IO、Maya 或 3ds Max 等 3D 工具之间传输数据,则 FBX 文件格式优于 GLTF。 如果要通过 Internet 高效传输 3D 场景数据,以便在远程应用程序(例如增强现实)中查看,则 GLTF 格式优于 FBX。
FBX文件格式是什么?Autodesk FBX 文件格式是 3D 编辑器和游戏引擎之间常用的 3D 数据交换格式。 它最初是作为 Kaydara 的 Filmbox 动作捕捉工具的原生文件格式创建的。 FBX 格式名称和扩展名派生自应用程序名称 Filmbox。 2005 年,Kaydara 发布了一个用于其他封闭和专有 FBX 文件格式的公共 SDK,并参与了协调的公关活动,以鼓励采用 FBX 文件格式在不同工具之间进行高质量的 3D 数据交换。 Filmbox最终更名为MotionBuilder,后来被Autodesk收购。
1. 分离位置、UV和普通拓扑结构:
FBX 文件格式的一个优点是它可以存储具有不同拓扑的位置、UV 和法线数据,这也由 OBJ 3D 模型格式共享。 这是高质量建模工具的理想选择,并支持复杂的特征,例如精确的细分曲面。 这使得将这些模型加载到游戏引擎中有点困难,因为需要对数据进行预处理以统一所有拓扑结构。
2. 强大的SDK
如果您使用的是 SDK 支持的语言,则它非常强大且使用起来非常方便。 导入和导出 FBX 文件的过程是一个相对简单的过程,即链接 SDK,然后使用其 API 流式传输数据。 文件格式的所有复杂性对集成 SDK 的软件开发人员都是隐藏的。 而且您无需担心 SDK 是否支持所有 FBX 功能,因为它是官方且唯一的 FBX SDK。
这与 GLTF 和 Collada 等主要书面标准形成鲜明对比,后者很复杂且相对容易错误实施。 这些书面标准很少由不同的团队实施,但仍然完全兼容。
3.兼容性好
由于 SDK 读取所有以前版本的 FBX 文件格式,因此该工具的最现代版本可以正确读取其他工具生成的 FBX 文件。 即使 FBX 文件格式发生更改,SDK 也会确保通过对 SDK 用户透明的不同路径读取旧格式和新格式。 因此,FBX 不会充斥着像 collada (.) 这样的类似复杂格式。dae))。如果 FBX 正确支持某项功能,它可以在应用程序之间传输该数据,而无需太多顾虑。
4. 广泛的功能支持
FBX 格式是支持其格式中各种数据的标准。 FBX 支持 3D 模型、场景层次结构、材质照明、动画、骨骼、皮肤和混合形状。 由于 FBX 是一种较旧的格式,因此它还支持目前不再广泛使用的数据,例如 NURBS 曲面和曲线。 当您选择 FBX 作为交换格式时,您知道它可能表示您需要的几何数据。
5.快速高效
FBX 文件格式,非常有效,因为它使用二进制格式。 当数据存储为二进制时,写入和读取数据的速度会更快,这与基于文本的格式相反,在基于文本的格式中,二进制数据必须与人类可读的数字相互转换。 它在空间方面也很有效,因为数字的二进制表示比人类可读的数字占用更少的空间。 如果您需要直接读取和写入二进制格式,它们通常可能很复杂,但 FBX SDK 会向用户隐藏这一点。
1.封闭格式
FBX 格式的最大缺点是它是一种封闭格式。 访问 FBX 文件中数据的唯一官方方法是使用官方 SDK。 您无法在 FBX SDK 未正式支持的系统(例如 Web 浏览器或开源应用程序)上加载 FBX。 也就是说,经过几年的努力,Blender 已经成功地对当前版本的 FBX 格式进行了逆向工程。
由于 FBX 是一种封闭格式,因此除了其所有者的 Autodesk 之外,任何人都不可能改进该格式,并且最近没有任何更新。
2. 广泛的功能支持
虽然这在优点中列出,但它也可能是一个缺点。 FBX 广泛的数据支持的问题在于,它支持的许多数据类型都是遗留的,不再经常使用。 除了过时的材质和照明模型(如下所述)外,FBX 还支持 NURBS 曲面和曲线。 这些支持很复杂,因为它们需要完整的 CAD 内核才能成为 FBX SDK 的一部分。 NURBS 支持等传统功能大大增加了 FBX 文件格式的复杂性,使其难以维护且成本高昂。 它的 SDK 非常大,因此很难集成到手机游戏或其他大小受限的应用程序中。
3. 遗留材料
FBX 文件格式使用 1990 年代的照明模型,该模型以 blinn-phong 规范光泽度模型为前提,以及每种材料属性的单一颜色或纹理。 虽然这对于材质的极简表示来说已经足够了,但它并不能反映现代 3D 编辑器或游戏引擎的功能,这些编辑器或游戏引擎利用复杂的着色器网络与以粗糙度金属度为中心的基于物理的渲染 (PBR) 材质模型协同工作。 简单的 FBX 材质也不支持次表面散射、适当的分层材质或各向异性效果。 由于 FBX 材料模型的严格限制,3D 模型上的大多数材料在通过 FBX 格式在工具之间传输后必须重做。
4. 传统照明
FBX 中的照明模型再次使用了 1990 年代的惯例。 像threekit这样的现代游戏和工具使用基于物理的照明模型,其中所有照明参数都基于物理量,如流明、亮度和基于物理的衰减。 现代游戏引擎希望传输全局照明信息,例如光照探针和基于图像的照明,但 FBX 不支持此功能。 FBX 使用更具历史性和任意性的光照模型,这使得使用更现代和基于物理的方法的工具之间难以进行通信。 与材质一样,大多数使用 FBX 文件格式传输的照明信息在导入其目标应用程序后必须修复或简单地重做。
gltf的格式是什么?GLTF 格式是一种开放的 3D 模型和场景格式,旨在有效地传输丰富的场景 3D 数据。 自 2013 年以来,它一直由 Khronos 集团创建和管理。 GLTF 是图形语言传输格式的首字母缩写。
1.易于读写
您可以使用众多开源库之一将 gltf 文件读入自定义应用程序,也可以自己编写导入器。 GLTF 格式使用 JSON 描述符文件来描述 GLTF 的内容及其属性。 对于开发人员来说,直接读写非常容易,甚至比 OBJ 文件格式更是如此,因为 JSON 本身是一种灵活的人类可读文件格式标准,大多数语言都提供解析器。
GLTF 可视化材质编辑器。
2.快速高效
与 FBX 文件格式一样,GL 传输格式 (GLTF) 将 3D 几何体的主要批处理数据存储在二进制文件中。 二进制文件的读取由 JSON 描述符文件指导。 这意味着 GLTF 平均比将批量 3D 几何图形存储为人类可读文本的文件格式(如 OBJ)小 5 倍,读取速度快 10 倍以上。
3.直接阅读游戏引擎
在游戏引擎的上下文中,GLTF 的读取速度甚至比 FBX 更快,因为它将其网格数据存储在统一的拓扑中。 这意味着游戏引擎可以将数据从 GLTF 直接读取到 GPU 内存中,然后在屏幕上渲染生成的图形,而无需对 OBJ 网格数据进行中间处理。
4. 标准组的指导
标准组通常被视为繁琐而笨拙的官僚机构,但就文件格式而言,标准组具有多种好处。 它们确保文件格式随着技术趋势不断发展,并且各种供应商就如何在各种工具中实现文件格式达成一致,以确保兼容性。 此外,标准组织编写了明确的规范,并发布了一致性测试工具,当存在分歧时,每个人都可以参考这些工具。 Khronos 正在做所有这些事情来支持 GLTF 的未来增长和采用。
5.丰富的场景数据
除了存储模型和材质外,GLTF 文件还可以存储动画数据、骨骼、皮肤、场景层次结构和灯光(通过扩展)。 这意味着 GLTF 既可用于单个静态模型(如 OBJ),也可用于动画角色和完整的复杂场景,类似于 FBX 文件。
GLTF 编辑器(支持 GLTF GLB 预览、材质编辑、重置原点和模型轻量化(合并相同的材质网格)。
6. 增强现实
GLTF 正在成为将数据流式传输到基于 Web 和基于应用程序的增强现实应用程序的标准。 谷歌和Facebook已经将其用于此目的。 这是因为它快速、高效,并允许游戏引擎直接读取。 因为它是官方标准,所以世界各地的**供应商都可以将其写入此格式。
1. 不可编辑的 3D 模型
与 FBX 相比,GLTF 的最大缺点之一是其 3D 模型数据以更简单的格式存储。 它不允许对位置、UV 和法线数据使用不同的拓扑。 如果您希望直接读取游戏引擎的速度,这是有益的,但这意味着修改 3D 模型可能非常困难。 最好将 GLTF 当前的 3D 模型存储格式视为发布 3D 模型以供查看的一种方式,而不是高保真 3D 模型存储角色。 如果要存储 3D 资源以供以后编辑,最好不要使用 GLTF。
2. 无着色网络
与 FBX 类似,GLTF 中的当前材料定义要简单一些。 它比 fbx 材质定义更现代一些,但几乎没有。 它不适用于 Maya、Clara在IO和虚幻引擎等现代3D工具中可以表示的材质的复杂性不相上下。 以强大而灵活的方式表示材质的最新方法是通过着色器网络。 GLTF 不支持着色器网络,因此如果您想编辑材质,它不是最好的文件格式。 相反,当您想要发布模型供其他人查看时,您可以转换为格式。
3. 非向后兼容扩展
GLTF 标准委员会允许对 GLTF 格式进行特定于商的扩展。 这些扩展虽然提供了额外的功能,但目前不能保证与不支持这些特定于供应商的扩展的 GLTF 查看器或读取器的向后兼容性。 这意味着,每当这些非向后兼容的扩展仅由单个供应商采用时,文件格式就会被碎片化。 随着更多这些特定于商的扩展的出现,用户将更难在供应商工具之间实现 GLTF 兼容性。 FBX 文件格式不会发生这种类型的碎片。
如果要在分发 3D 模型以用于游戏引擎或查看器时获得复杂的场景、动画、照明和效率,请使用 GLTF 格式。 当您确切知道哪个工具将生成 GLTF 文件以及哪个工具将读取 GLTF 文件以确保它们完全兼容时,这尤其理想。
如果您希望能够保存和加载 3D 模型和场景,然后对其进行编辑,请选择 FBX。 FBX 保证了工具之间的兼容性,至少对于它支持的功能而言,并且它的数据表示比 GLTF 更准确。 FBX 不应该是与开源工具进行通信的首选场所,也不应该是首选简单性的地方。
*: GLTF vs FBX:我应该使用哪种格式? (mvrlink.com)