3D 模型格式完全指南(OBJ、glTF、GLB、STEP、FBX 及更多)

综合整理自多个公开技术资料,包括 Khronos Group 官方规范、ISO 标准、Blender Studio 命名规范、Poly Haven 技术标准、CSDN、Modelo.io 等社区资源。

本文全面整理了 3D 领域常见模型格式的详细说明、应用场景、优缺点对比、文件命名规范及格式转换工具。涵盖 OBJ、glTF、GLB、STEP、FBX 五种核心格式,以及 STL、3MF、PLY、PCD、DAE、3DS、ABC、USD、VRM 等 15+ 种扩展格式。


目录


1. OBJ 格式

1.1 OBJ 文件

OBJ 文件格式是一种用于表示三维几何形状的标准文件格式,最初由 Wavefront Technologies 开发。它广泛应用于计算机图形学和 3D 建模领域,支持多种 3D 软件和渲染引擎。

  • 文件扩展名.obj
  • 数据表示:纯文本格式,可被人类阅读和编辑,主要包括顶点、法线、纹理坐标和面等几何信息
文件结构
关键字 说明 示例
v 顶点(Vertices) v 1.0 2.0 3.0
vt 纹理坐标(Texture Coordinates) vt 0.5 1.0
vn 法线(Normals) vn 0.0 0.0 1.0
f 面(Faces) f 1/1/1 2/2/2 3/3/3
支持的几何类型
  • 点(Points)
  • 线(Lines)
  • 多边形(Polygons)
  • 三角形(Triangles)
应用领域
  • 3D 建模:创建和编辑三维模型
  • 计算机图形学:渲染和显示三维图形
  • 游戏开发:导入和导出游戏中的三维模型
  • 虚拟现实(VR)和增强现实(AR)
优缺点
优点 缺点
简单易读,纯文本格式 不支持复杂的材质和动画信息
广泛支持,多种 3D 软件和渲染引擎兼容 文件可能较大(大量顶点和面时)
易于编辑和调试 不支持层次结构和装配信息
示例
# List of vertices
v 0.0 0.0 0.0
v 1.0 0.0 0.0
v 1.0 1.0 0.0
v 0.0 1.0 0.0

# List of texture coordinates
vt 0.0 0.0
vt 1.0 0.0
vt 1.0 1.0
vt 0.0 1.0

# List of normals
vn 0.0 0.0 1.0

# List of faces
f 1/1/1 2/2/1 3/3/1 4/4/1

1.2 MTL 文件

材质文件(MTL)是一种用于描述 3D 模型材质属性的文件格式,通常与 OBJ 文件一起使用。使用纯文本格式,定义了模型表面的颜色、纹理、反射率等材质属性。

  • 文件扩展名.mtl
文件结构
关键字 说明 示例
newmtl 材质名称 newmtl MaterialName
Ka 环境光颜色(Ambient Color) Ka 1.000 1.000 1.000
Kd 漫反射颜色(Diffuse Color) Kd 1.000 0.000 0.000
Ks 镜面反射颜色(Specular Color) Ks 0.500 0.500 0.500
Ns 镜面高光指数(Specular Exponent) Ns 100.0
d / Tr 透明度(0.0~1.0) d 1.0
illum 光照模型 illum 2
map_Kd 漫反射纹理映射 map_Kd texture.jpg
支持的材质属性
  • 环境光颜色(Ka)
  • 漫反射颜色(Kd)
  • 镜面反射颜色(Ks)
  • 镜面高光指数(Ns)
  • 透明度(d 或 Tr)
  • 光照模型(illum)
  • 纹理映射(map_Kd, map_Ka, map_Ks, map_d, map_bump 等)
示例
# Define a new material named "RedMaterial"
newmtl RedMaterial
Ka 1.000 1.000 1.000
Kd 1.000 0.000 0.000
Ks 0.500 0.500 0.500
Ns 100.0
d 1.0
illum 2
map_Kd red_texture.jpg

# Define another material named "TransparentMaterial"
newmtl TransparentMaterial
Ka 1.000 1.000 1.000
Kd 0.000 1.000 0.000
Ks 0.500 0.500 0.500
Ns 100.0
d 0.5
illum 2
map_Kd green_texture.png

2. glTF 格式

glTF(GL Transmission Format)是一种用于 3D 场景和模型的文件格式,设计目标是提供高效的加载和运行时最小的内存占用。

关键特性

  • 开放标准:由 Khronos Group(OpenGL 和 WebGL 的背后组织)开发和维护
  • JSON 格式:包含 3D 模型的结构和属性信息(节点、网格、材质等),可被人类读取和机器轻松解析
  • 二进制数据和纹理:可引用外部文件(.bin 和纹理图像),数据可直接上传到 GPU
  • PBR 材质:支持基于物理的渲染(PBR)材质,可创建逼真的 3D 模型
  • 动画:支持骨骼动画和形状变形
  • 扩展性:支持通过扩展增加新功能(光照、环境贴图等)
  • 广泛支持:Three.js、Babylon.js、Unity、Unreal Engine 等

文件组成

一个 glTF 模型是一个目录,包含多个文件:

文件类型 说明 数量
.gltf 场景描述文件(JSON 格式) 1 个
.bin 几何数据(二进制文件) 0~n 个
.png / .jpg 图片纹理 0~n 个

参考:glTF 2.0 格式说明

主要组成部分

组成部分 说明
Asset 文件元数据(版本、生成器等)
Scenes 3D 场景列表,每个场景包含一组节点(Node)
Nodes 3D 对象列表,可包含网格(Mesh)、摄像机(Camera)、骨骼(Skin)等
Meshes 3D 网格列表,每个网格包含一组图元(Primitive)
Materials 材质列表,定义表面外观(颜色、纹理、光照模型等)
Textures 纹理列表,每个纹理包含图像(Image)和采样器(Sampler)
Animations 动画列表,包含通道(Channel)和采样器(Sampler)

Primitive 绘制模式

模式 说明
POINTS 独立的点(1 个点)
LINES 线段(2 个顶点)
LINE_LOOP 线环(首尾相连)
LINE_STRIP 线条带(顶点按顺序连接)
TRIANGLES 三角形(3 个顶点,默认值)
TRIANGLE_STRIP 三角形带
TRIANGLE_FAN 三角形扇

示例

{
  "asset": {
    "version": "2.0"
  },
  "scenes": [
    {
      "nodes": [0]
    }
  ],
  "nodes": [
    {
      "mesh": 0
    }
  ],
  "meshes": [
    {
      "primitives": [
        {
          "attributes": {
            "POSITION": 0
          },
          "indices": 1
        }
      ]
    }
  ],
  "buffers": [
    {
      "uri": "data:application/octet-stream;base64,...",
      "byteLength": 1024
    }
  ],
  "bufferViews": [
    {
      "buffer": 0,
      "byteOffset": 0,
      "byteLength": 512
    }
  ],
  "accessors": [
    {
      "bufferView": 0,
      "componentType": 5123,
      "count": 36,
      "type": "SCALAR"
    }
  ]
}

3. GLB 格式

GLB 是 glTF 的二进制版本,由 Khronos Group 定义。

关键特性

  • 单一文件:将所有模型数据(结构、几何、纹理等)打包到一个文件中,更易于传输和加载
  • 二进制格式:可直接被 GPU 读取和处理,无需预处理,但不易于人类阅读和编辑
  • glTF 兼容:完全兼容 glTF 规范,支持 PBR 材质、动画、骨骼等所有特性
  • 广泛支持:Three.js、Babylon.js、Unity、Unreal Engine 等

GLB 是一种高效、紧凑的 3D 模型格式,特别适合网络传输和实时渲染。


4. glTF 和 GLB 格式比较

对比项 glTF (.gltf) GLB (.glb)
格式 JSON 文本格式 二进制格式
文件数量 多文件(.gltf + .bin + 纹理) 单一文件
可读性 易于阅读和编辑 不易于阅读和编辑
传输便利性 需要多个文件 单文件即可传输
GPU 加载 需要预处理 可直接读取
适用场景 开发调试、需要编辑的场景 网络传输、生产部署

选择建议

  • 需要易于阅读和编辑 → 选择 glTF
  • 需要易于传输和加载 → 选择 GLB

5. STEP 格式

STEP(Standard for the Exchange of Product model data)是一种用于描述三维模型数据的国际标准格式,由 ISO 10303 标准定义,主要目的是实现不同 CAD 系统之间的互操作性。

  • 文件扩展名.stp.step
  • 数据格式:ASCII 文本格式,包含几何信息、拓扑信息、材料属性、装配结构等

数据结构

HEADER          → 文件头部(文件名、作者、日期等)
DATA            → 数据部分(几何和拓扑信息)
END-ISO-10303-21 → 文件结束标志

优缺点

优点 缺点
高互操作性,不同 CAD 软件可数据交换 文件可能较大
ISO 10303 国际标准 解析和生成需要较高计算资源
支持复杂的几何和拓扑信息

应用领域

  • 机械设计、建筑设计
  • 航空航天、汽车制造
  • 电子产品设计等工程和制造领域

示例

ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('Example STEP file'),'2;1');
FILE_NAME('example.stp','2023-10-10T12:00:00',('Author'),('Organization'),'','');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1 = CARTESIAN_POINT('',(0.0, 0.0, 0.0));
#2 = CARTESIAN_POINT('',(1.0, 0.0, 0.0));
#3 = LINE('',#1,#2);
ENDSEC;
END-ISO-10303-21;

6. glTF 和 STEP 格式比较

对比项 glTF STEP
发布机构 Khronos Group ISO(ISO 10303)
文件扩展名 .gltf / .glb .stp / .step
数据格式 JSON / 二进制 ASCII 文本
主要用途 实时 3D 图形和 Web 应用 工程和制造领域数据交换
应用领域 WebGL、VR、AR、游戏开发 机械设计、建筑、航空航天、汽车制造
内容侧重 几何、材质、纹理、动画 几何、拓扑、材料属性、装配结构
文件大小 通常较小,支持 Draco 压缩 可能较大
互操作性 浏览器、3D 引擎(Three.js 等) CAD 软件(AutoCAD、SolidWorks、CATIA 等)
特色功能 PBR 材质、骨骼动画 装配结构、产品数据管理

7. FBX 格式

FBX(Filmbox)是一种广泛使用的三维模型和动画文件格式,由 Autodesk 开发和维护,支持多种 3D 数据类型。

  • 文件扩展名.fbx
  • 数据表示:支持二进制格式(紧凑,适合传输存储)和 ASCII 文本格式(易于阅读和调试)

支持的数据类型

数据类型 说明
几何(Geometry) 顶点、边、面、法线、UV 坐标等
材质(Materials) 颜色、纹理、反射率等
动画(Animation) 关键帧动画、骨骼动画、变形动画等
骨骼(Skeletons) 骨骼结构、关节、权重等
灯光(Lights) 点光源、聚光灯、环境光等
摄像机(Cameras) 透视摄像机、正交摄像机等

文件结构

组成部分 说明
Header 文件头部(版本等基本信息)
Objects 所有对象定义(几何、材质、动画等)
Connections 对象之间的关系和连接
Takes 动画数据

应用领域

  • 3D 建模和动画
  • 游戏开发
  • 虚拟现实(VR)和增强现实(AR)
  • 影视制作

优缺点

优点 缺点
支持多种 3D 数据类型 文件结构复杂,不易手动编辑
高度兼容,广泛支持多种 3D 软件 文件可能较大(大量动画数据时)
支持复杂的动画和骨骼结构 二进制格式不易阅读和调试

FBX 与 glTF 对比

对比项 FBX glTF
适用场景 复杂动画和骨骼结构的 3D 建模 实时渲染和 Web 应用
应用领域 游戏开发、影视制作、VR WebGL、VR、AR、实时交互
文件特点 功能丰富,文件较大 轻量级,文件小,易于传输

8. 各格式应用场景详解

8.1 OBJ 格式应用场景

场景 说明
图形学教学与学习 OpenGL / WebGL 入门教程中最常用的模型加载格式,代码示例丰富
3D 打印 简单的静态模型导出,配合切片软件使用
轻量级数据交换 在不同建模软件间传递静态几何体
原型设计与概念展示 快速导出查看效果,无需复杂材质和动画
考古与文化遗产数字化 激光扫描生成的点云/网格数据常用 OBJ 存储

不适用场景:需要动画、骨骼绑定、PBR 材质或层次结构的场景(如游戏角色、影视特效)。

8.2 glTF / GLB 格式应用场景

场景 说明
Web 3D 与在线展示 WebGL / WebXR 网页端 3D 模型加载的首选格式,支持流式传输
电商产品展示 商品 3D 预览、AR 试穿/试戴(如 Shopify、淘宝 3D 查看)
AR / VR 应用 Meta Quest、Apple Vision Pro 等设备的内容分发格式
数字孪生 建筑 BIM、智慧城市、工业数字孪生的可视化层
元宇宙与虚拟世界 Spatial、Decentraland 等平台的标准资产格式
移动端实时渲染 文件小、GPU 友好,适合手机/平板上的 3D 应用
游戏开发 Unity、Unreal Engine 原生支持,适合中小型游戏资产

glTF vs GLB 选择指南

  • 开发调试阶段 → 使用 glTF(可读可编辑,方便排查问题)
  • 生产部署上线 → 使用 GLB(单文件、HTTP 请求少、加载快、易缓存)
  • 需要动态替换纹理 → 使用 glTF(纹理为外部文件,可单独替换)
  • 模型查看器 / 嵌入网页 → 使用 GLB(单文件嵌入最方便)

8.3 STEP 格式应用场景

场景 说明
CAD 跨平台数据交换 不同 CAD 软件间的模型互导(CATIA ↔ NX ↔ SolidWorks ↔ Creo)
航空航天 飞机零部件设计、装配体传递,AP242 版本为行业标准
汽车制造 AP214 标准专为汽车行业设计,支持复杂装配和汽车特定信息
供应链协同 OEM 厂商与供应商之间的强制性交付格式
CAM / CAE 衔接 从设计端到数控编程(CAM)、仿真分析(CAE)的无缝衔接
PLM 产品生命周期管理 长期存储和追溯产品设计数据
3D 打印(工程级) 精密零件打印时保留完整几何和拓扑信息

STEP 应用协议版本

版本 全称 主要用途
AP203 Configuration Controlled Design 通用机械设计
AP214 Core Data for Automotive 汽车行业设计标准
AP242 Managed Model-Based 3D Engineering 最新综合版本,支持 PMI(产品制造信息)

不适用场景:实时渲染、Web 应用、游戏开发(需经专用转换器转为网格格式)。

8.4 FBX 格式应用场景

场景 说明
游戏角色动画 骨骼动画、蒙皮权重、变形动画的行业标准
影视特效与动画 Maya、3ds Max、MotionBuilder 之间的动画数据交换
动作捕捉数据传递 MoCap 数据从录制软件导入到 DCC 工具
虚拟制片 LED 屏幕虚拟拍摄中的摄像机和灯光数据
建筑可视化 建筑动画漫游、室内设计展示
Unity / Unreal Engine 资产导入 游戏引擎中最常用的动画资产导入格式

不适用场景:Web 端 3D 展示、移动端轻量应用(文件大、解析复杂)。

8.5 场景选择速查表

你的需求 推荐格式 原因
网页 3D 展示 / 电商 AR GLB 单文件、加载快、PBR 材质
游戏角色带动画 FBX 骨骼动画支持最完善
教学学习 3D 图形学 OBJ 格式简单、代码示例多
CAD 模型跨软件交换 STEP 工业标准、保留完整设计意图
3D 打印简单模型 OBJ / STL 通用、切片软件广泛支持
精密零件工程打印 STEP 保留精确几何和拓扑
数字孪生可视化 GLB 实时渲染、Web 友好
影视动画制作 FBX 复杂动画和摄像机数据
元宇宙 / VR 平台资产 GLB 行业生态标准
开发调试 3D 模型 glTF JSON 可读、方便编辑

9. 深度优缺点对比

9.1 功能特性对比

特性 OBJ glTF GLB STEP FBX
几何数据 ✅ 顶点/面 ✅ 顶点/面 ✅ 顶点/面 ✅ B-Rep/实体 ✅ 顶点/面
材质系统 ⚠️ 基础(MTL) ✅ PBR 金属-粗糙度 ✅ PBR 金属-粗糙度 ⚠️ 材料属性 ⚠️ 传统材质
纹理贴图 ✅ 基础 UV ✅ 完整 PBR 纹理 ✅ 内嵌纹理 ✅ 多通道纹理
骨骼动画 ✅ 骨骼+变形 ✅ 骨骼+变形 ✅ 最完善
关键帧动画
摄像机/灯光
层次结构(场景图) ✅ 节点树 ✅ 节点树 ✅ 装配结构 ✅ 层级节点
压缩支持 ✅ Draco 网格压缩 ✅ Draco 网格压缩
二进制优化 ❌ 纯文本 ⚠️ 可选 GLB ✅ 原生二进制 ⚠️ 可选压缩 ✅ 原生二进制
拓扑信息 ❌ 仅网格 ❌ 仅网格 ❌ 仅网格 ✅ B-Rep 实体 ❌ 仅网格

9.2 性能与工程对比

维度 OBJ glTF GLB STEP FBX
文件大小 中等(文本冗余) 较小 最小 较大 较大
解析速度 最快 中等
内存占用 中等 较低 最低 中等
GPU 加载效率 低(需预处理) 最高 不适用 中等
网络传输 不友好(多文件) 一般(多请求) 最优(单文件) 不适用 不友好
可读性 最高(纯文本) 高(JSON) 低(二进制) 高(ASCII) 低(二进制)
手动编辑 容易 较容易 困难 困难 困难
解析库生态 丰富 丰富 丰富 稀少 中等(FBX SDK)

9.3 生态与兼容性对比

维度 OBJ glTF GLB STEP FBX
标准化 事实标准 Khronos 开放标准 Khronos 开放标准 ISO 国际标准 Autodesk 私有
开源程度 完全开放 完全开放 完全开放 完全开放 SDK 有限制
浏览器支持 需转换 原生支持 原生支持 不支持 需转换
游戏引擎 支持 原生支持 原生支持 不支持 原生支持
CAD 软件 基础导入 不支持 不支持 原生支持 有限支持
DCC 工具 广泛支持 广泛支持 广泛支持 不支持 最广泛
3D 打印切片 广泛支持 有限 有限 有限 不支持
长期存档 ⚠️ 无版本管理 ✅ 有版本规范 ✅ 有版本规范 ✅ ISO 标准 ⚠️ 版本碎片化

9.4 各格式核心优缺点总结

OBJ
优点 缺点
格式极简,学习成本最低 无动画、无骨骼、无场景图
几乎所有 3D 软件原生支持 材质系统落后(不支持 PBR)
纯文本可读,便于调试 无压缩,文件体积偏大
适合教学和快速原型 无层次结构,不支持装配体
多文件分离,灵活管理 缺乏标准化版本管理
glTF
优点 缺点
“3D 界的 JPEG”,行业标准定位 多文件管理稍复杂
PBR 材质,渲染效果逼真 不支持 B-Rep 实体几何
骨骼动画 + 变形动画 CAD 领域支持薄弱
Draco 压缩,文件极小 复杂场景的扩展规范仍在演进
JSON 可读,生态工具丰富
GLB
优点 缺点
单文件打包,传输和部署最方便 二进制不可读,调试困难
HTTP 单请求加载,性能最优 纹理更新需重新打包整个文件
GPU 直接读取,运行时内存最低 文件内嵌纹理无法独立替换
完美适配 Web 和移动端
缓存友好,CDN 分发高效
STEP
优点 缺点
ISO 国际标准,法律和供应链强制要求 文件大,解析耗内存
保留完整 B-Rep 实体和拓扑信息 无法直接用于实时渲染
支持装配结构、PMI 制造信息 解析库稀少,开发成本高
AP242 版本功能持续增强 格式复杂,手动编辑不现实
跨 CAD 软件互操作性最强
FBX
优点 缺点
动画支持最完善(骨骼、变形、MoCap) Autodesk 私有格式,开放性受限
DCC 工具链兼容性最好(Maya/Max/Blender) 文件大,不适合 Web 传输
支持摄像机、灯光、材质完整场景 二进制格式版本碎片化严重
游戏引擎动画资产的事实标准 FBX SDK 许可证有限制
虚拟制片行业核心格式 不支持 PBR 材质

10. 更多 3D 格式速览

除了前文详细介绍的 OBJ、glTF、GLB、STEP、FBX 五种核心格式外,3D 领域还有许多其他格式。本章按应用领域分类,对常用和不常用的格式进行简要介绍。

10.1 3D 打印格式

STL(Stereolithography)
项目 说明
扩展名 .stl
诞生年份 1987 年,3D Systems 公司
数据格式 ASCII 文本或二进制,仅存储三角面片表面几何
核心特点 最古老、最通用的 3D 打印格式,几乎所有切片软件都支持
支持内容 仅三角网格(无颜色、无材质、无纹理、无动画)
优点 生态最成熟、切片软件广泛支持、文件简单
缺点 信息量极少(仅几何)、文件可能很大、无拓扑信息、无法区分内外表面
应用场景 FDM/SLA/DLP 等 3D 打印的通用交换格式
3MF(3D Manufacturing Format)
项目 说明
扩展名 .3mf
发布方 3MF 联盟(Microsoft、HP、Autodesk、Stratasys 等)
数据格式 基于 XML + OPC(Open Packaging Convention)的 ZIP 压缩包
核心特点 旨在取代 STL 的新一代 3D 打印标准,支持完整制造信息
支持内容 几何网格、颜色、材质、纹理、多材料、打印设置、网格结构元数据
优点 信息完整、支持多材料/多色打印、包含切片参数、基于开放标准
缺点 生态仍在发展中、部分老旧切片软件不支持
应用场景 工业级 3D 打印、多材料打印、全彩 3D 打印

STL vs 3MF 对比

对比项 STL 3MF
几何数据 ✅ 三角面片 ✅ 三角面片
颜色/材质
多材料
打印设置 ✅ 内嵌
纹理贴图
网格结构 ✅(晶格/填充)
文件大小 较大(冗余) 较小(ZIP 压缩)
生态成熟度 最高 快速增长中

10.2 点云与扫描格式

PLY(Polygon File Format / Stanford Triangle Format)
项目 说明
扩展名 .ply
发布方 斯坦福大学
数据格式 ASCII 文本或二进制
核心特点 因"斯坦福兔子"模型而闻名,可同时存储点云和网格数据
支持内容 顶点位置、颜色、法线、面片、自定义属性
优点 灵活可扩展(自定义属性)、同时支持点云和网格、学术/扫描领域广泛使用
缺点 文件较大、不支持动画和材质、生态相对小众
应用场景 3D 扫描、点云处理、计算机视觉研究、3D 重建
PCD(Point Cloud Data)
项目 说明
扩展名 .pcd
发布方 Open3D / PCL(Point Cloud Library)
数据格式 二进制或 ASCII
核心特点 PCL 库的原生格式,专为点云处理设计
支持内容 点位置、颜色、法线、强度、自定义字段
优点 PCL/Open3D 原生支持、支持丰富的点属性、二进制模式读写高效
缺点 几乎仅限点云领域使用、不支持网格和动画
应用场景 激光雷达(LiDAR)、自动驾驶点云、3D 扫描、SLAM

PLY vs PCD 对比

对比项 PLY PCD
数据类型 点云 + 网格 仅点云
自定义属性 ✅ 灵活 ✅ 灵活
生态/工具 Blender、MeshLab、CloudCompare PCL、Open3D
学术界 广泛 广泛
工业界 3D 扫描 LiDAR、自动驾驶

10.3 CAD / 工程格式

IGES(Initial Graphics Exchange Specification)
项目 说明
扩展名 .igs / .iges
发布方 美国空军 + 波音(1970 年代),ANSI 标准
数据格式 ASCII 文本
核心特点 最古老的 CAD 交换格式之一,主要描述曲面几何
支持内容 线框、曲面、实体(有限)、标注
优点 历史悠久、老旧 CAD 系统广泛支持
缺点 仅支持曲面(无完整 B-Rep 实体)、文件大、已被 STEP 大量替代
应用场景 老旧 CAD 系统的数据交换、曲面建模(如汽车外观设计)
JT(JT Format)
项目 说明
扩展名 .jt
发布方 Siemens(西门子)
数据格式 二进制
核心特点 Siemens PLM 软件的原生格式,工业界重要的轻量化格式
支持内容 精确几何、装配结构、PMI、可视化数据
优点 支持超大装配体的轻量化浏览、Teamcenter 深度集成
缺点 Siemens 生态绑定较深、第三方支持有限
应用场景 汽车和航空航天领域的大型装配体可视化、PLM 协同
PRC(Product Representation Compact)
项目 说明
扩展名 .prc
发布方 PTC(Parametric Technology Corporation)
数据格式 二进制
核心特点 PDF 中嵌入 3D 数据的标准格式(ISO 24517)
支持内容 精确 B-Rep 几何、装配结构、PMI
优点 可嵌入 PDF 文档、支持精确几何浏览、文件紧凑
缺点 主要用于 PDF 3D 交互、独立使用较少
应用场景 技术文档中的 3D 交互预览、产品数据发布

10.4 DCC / 动画格式

DAE(COLLADA - Collaborative Design Activity)
项目 说明
扩展名 .dae
发布方 Khronos Group
数据格式 基于 XML 的文本格式
核心特点 曾被称为"3D 界的 XML",设计为跨软件的通用交换格式
支持内容 几何、材质、纹理、动画、骨骼、物理、摄像机、灯光
优点 功能全面、开放标准、人类可读(XML)、支持动画和物理
缺点 XML 冗余导致文件大、解析慢、逐渐被 glTF 替代、部分软件支持不完整
应用场景 Google Earth / SketchUp 旧版交换、Blender 导出、学术项目
3DS(3D Studio)
项目 说明
扩展名 .3ds
发布方 Autodesk(原 Discreet / Kinetix)
数据格式 二进制
核心特点 3ds Max 的经典格式,最古老的 3D 格式之一(1990 年代)
支持内容 网格几何、材质、纹理、摄像机、灯光、基础动画
优点 生态成熟、大量老旧资产仍使用此格式、广泛支持
缺点 顶点数限制 65536、不支持现代 PBR 材质、不支持骨骼动画权重、已过时
应用场景 老旧游戏资产、复古 3D 内容、简单的静态模型交换
ABC(Alembic)
项目 说明
扩展名 .abc
发布方 ILM(工业光魔)+ Sony Pictures Imageworks
数据格式 二进制,基于 HDF5
核心特点 影视行业标准的几何缓存格式,用于存储烘焙后的动画几何数据
支持内容 顶点动画、粒子、曲线、变形、层次结构
优点 高效存储大量动画帧数据、支持增量写入、影视管线成熟
缺点 不存储材质/纹理/骨骼、主要用于缓存而非交换、学习曲线陡
应用场景 影视特效中的流体/粒子/布料模拟缓存、大型场景的烘焙数据

DAE vs 3DS vs ABC 对比

对比项 DAE (COLLADA) 3DS ABC (Alembic)
格式 XML 文本 二进制 二进制(HDF5)
动画 ✅ 基础骨骼 ⚠️ 基础关键帧 ✅ 顶点动画缓存
材质 ✅ 传统材质 ⚠️ 基础材质
顶点限制 65536
主要用途 跨软件交换 老旧资产兼容 影视缓存
现状 逐渐被 glTF 替代 已过时 影视行业活跃

10.5 Web / VR 格式

VRML / X3D
项目 说明
扩展名 .wrl(VRML)/ .x3d / .x3db(X3D)
发布方 Web3D 联盟
数据格式 VRML 为文本,X3D 支持 XML / VRML / 二进制
核心特点 最早的 Web 3D 标准(1994 年),X3D 为其现代继承者
支持内容 几何、材质、动画、交互、脚本、物理
优点 标准化、支持交互和脚本、X3D 支持 XML 序列化
缺点 性能差、生态萎缩、已被 WebGL + glTF 完全取代
应用场景 学术研究、老旧 Web 3D 项目、部分科学可视化
VRM / VRM-A
项目 说明
扩展名 .vrm
发布方 VRM Consortium(日本)
数据格式 基于 glTF 2.0 的扩展(JSON + GLB)
核心特点 日本发源,专为 VRChat / VTuber 虚拟形象设计的格式
支持内容 角色网格、PBR 材质、骨骼动画、面部表情(BlendShape)、人体约束
优点 与 glTF 生态兼容、VRChat/UniVRM 原生支持、表情系统完善
缺点 主要限于日本 VR 社区、国际生态较小
应用场景 VRChat 虚拟形象、VTuber 3D 模型、虚拟角色分发

10.6 新兴 / 专用格式

USD / USDA / USDC / USDZ
项目 说明
扩展名 .usd / .usda / .usdc / .usdz
发布方 Pixar,2019 年开源
数据格式 USDA(文本)/ USDC(二进制)/ USDZ(ZIP 压缩)
核心特点 面向大型影视/游戏/工业场景的组合式场景描述格式,被称为"3D 界的 USD"
支持内容 几何、材质、纹理、动画、灯光、物理、层次结构、自定义元数据
优点 非破坏式引用、图层系统、延迟加载、超大规模场景支持
缺点 学习曲线陡、工具链仍在完善、中小项目可能过重
应用场景 NVIDIA Omniverse、UE5、Unity、Apple Vision Pro、影视制作
MaterialX(.mtlx)
项目 说明
扩展名 .mtlx
发布方 Autodesk(Academy Software Foundation)
数据格式 XML
核心特点 开源的材质定义互操作标准,用于在不同渲染器间传递材质
支持内容 材质节点图、着色器定义、纹理引用
优点 渲染器无关、支持 Arnold / RenderMan / UsdPreview 等
缺点 仅定义材质,不包含几何数据
应用场景 影视管线中的材质互操作、跨渲染器资产交付

10.7 全格式总览表

格式 扩展名 类型 领域 动画 PBR 开放性 热度
OBJ .obj 网格 通用 开放 ★★★★★
glTF .gltf 场景 Web/游戏 开放 ★★★★★
GLB .glb 场景 Web/游戏 开放 ★★★★★
FBX .fbx 场景 游戏/影视 私有 ★★★★★
STEP .stp CAD 工程 开放 ★★★★★
STL .stl 网格 3D 打印 开放 ★★★★★
USD .usd 场景 影视/大型 开放 ★★★★☆
DAE .dae 场景 通用交换 开放 ★★★☆☆
3DS .3ds 场景 老旧资产 ⚠️ 私有 ★★★☆☆
ABC .abc 缓存 影视特效 开放 ★★★☆☆
PLY .ply 点云/网格 扫描/学术 开放 ★★★☆☆
PCD .pcd 点云 LiDAR/扫描 开放 ★★★☆☆
3MF .3mf 制造 3D 打印 开放 ★★★☆☆
IGES .igs CAD 工程 开放 ★★☆☆☆
JT .jt CAD 工业/PLM 私有 ★★☆☆☆
VRML .wrl 场景 Web(过时) ⚠️ 开放 ★☆☆☆☆
X3D .x3d 场景 Web(过时) ⚠️ 开放 ★☆☆☆☆
VRM .vrm 角色 VR/VTuber 开放 ★★☆☆☆
PRC .prc CAD PDF 3D 开放 ★★☆☆☆
MaterialX .mtlx 材质 影视管线 开放 ★★☆☆☆

热度说明:★★★★★ = 行业必备,★★★★☆ = 快速增长,★★★☆☆ = 常用但非主流,★★☆☆☆ = 小众/特定领域,★☆☆☆☆ = 过时/衰退中


11. 总结对比表

格式 扩展名 数据格式 动画支持 PBR 材质 主要应用领域 文件大小
OBJ .obj / .mtl 纯文本 3D 建模、图形学学习、3D 打印 中等
glTF .gltf JSON + 外部文件 Web 3D、AR/VR、数字孪生 较小
GLB .glb 二进制单文件 Web 3D、电商 AR、元宇宙 最小
STEP .stp / .step ASCII 文本 CAD 互导、航空航天、汽车制造 较大
FBX .fbx 二进制/ASCII 游戏动画、影视特效、虚拟制片 较大

格式选择决策流程

你的项目是什么类型?
│
├── 工程 / 制造 / CAD
│   └── STEP(跨软件交换)或 OBJ(简单几何导出)
│
├── Web / 移动端 / AR
│   └── GLB(生产部署)或 glTF(开发调试)
│
├── 游戏 / 影视 / 动画
│   └── FBX(动画资产)+ GLB(静态场景/道具)
│
├── 3D 打印
│   └── STEP(精密零件)或 OBJ/STL(简单模型)
│
└── 教学学习
    └── OBJ(最简单,教程最多)

参考资料:


12. 文件命名规范

良好的文件命名规范是 3D 资产管理的基础,能显著提升团队协作效率、减少版本混乱、方便自动化工具处理。以下规范综合了 Blender Studio、Poly Haven、游戏行业等主流实践。

12.1 通用命名原则

原则 说明 示例
全小写 避免大小写敏感问题(Windows 不区分,Linux 区分) hero_char.glb ✅ / Hero_Char.glb
下划线分隔 _ 分隔单词,不用空格或连字符 iron_sword_v03 ✅ / iron-sword v03
无特殊字符 禁止 +=#^*&$()?! 等符号 wall_01 ✅ / wall#01
无中文/空格 仅使用拉丁字母(a-z)、数字(0-9)和下划线 chair_oak ✅ / 橡木椅子
层次从宽到窄 文件名体现从大类到小类的层级关系 chr_hero_combat_v02.fbx
版本号递增 使用 _v01_v02 连续编号,不用日期 scene_hall_v03.glb ✅ / scene_hall_20240601.glb

12.2 命名公式

基础公式
{项目前缀}_{资产类型}_{描述名称}_{变体}_{版本}.{扩展名}
字段 说明 可选 示例值
项目前缀 项目缩写,区分不同项目 prjgamebld
资产类型 资产分类缩写 chrpropenvvehfx
描述名称 具体资产的描述性名称 heroswordoak_tree
变体 同一资产的不同版本/状态 redbrokenlow
版本 迭代版本号 v01v02v03
完整示例
# 角色模型
chr_hero_combat_v03.fbx
chr_hero_idle_v02.glb

# 道具模型
prop_iron_sword_v01.obj
prop_wooden_chest_red_v02.glb

# 环境模型
env_castle_wall_v05.glb
env_forest_tree_oak_v03.obj

# 载具模型
veh_sports_car_v04.fbx

# 特效模型
fx_fire_camp_v01.glb
fx_smoke_thick_v02.glb

12.3 资产类型缩写规范

缩写 英文 中文 说明
chr Character 角色 人物、动物等可操控角色
prop Prop 道具 可交互或装饰性物品
env Environment 环境 建筑、地形、场景元素
veh Vehicle 载具 车辆、飞行器、船只
wpn Weapon 武器 枪械、近战武器
fx Effect 特效 粒子、体积雾等
mat Material 材质 材质预设文件
tex Texture 纹理 贴图文件
ani Animation 动画 动画片段
rig Rig 骨骼绑定 绑定文件
snd Sound 音效 音频文件
ui UI 界面 UI 相关资源

12.4 纹理贴图命名规范

命名公式
{资产名称}_{贴图类型}_{分辨率}.{扩展名}
PBR 贴图类型缩写
缩写 全称 中文 说明
diff Diffuse / Albedo 漫反射/反照率 基础颜色贴图
nor Normal Map 法线贴图 表面凹凸细节
rough Roughness 粗糙度 表面光滑程度
metal Metallic 金属度 金属/非金属属性
ao Ambient Occlusion 环境光遮蔽 间接光照阴影
disp Displacement 置换贴图 几何体位移
emis Emissive 自发光 发光效果
opacity Opacity 不透明度 透明通道
gloss Glossiness 光泽度 粗糙度的反义
spec Specular 高光 传统高光贴图
纹理命名示例
# 单材质资产
hero_sword_diff_4k.png
hero_sword_nor_4k.png
hero_sword_rough_4k.png
hero_sword_metal_4k.png
hero_sword_ao_4k.png

# 多材质资产(材质名作为中间段)
castle_wall_stone_diff_4k.png
castle_wall_wood_diff_4k.png
castle_wall_metal_diff_4k.png
纹理分辨率标注
标注 分辨率 用途
_1k 1024×1024 移动端、远处物体
_2k 2048×2048 通用、中等距离
_4k 4096×4096 高品质、近景特写
_8k 8192×8192 电影级、Hero 资产

12.5 各格式文件命名注意事项

格式 命名注意事项
OBJ .obj.mtl 文件名必须一致(如 model.obj + model.mtl),纹理路径在 MTL 中引用
glTF .gltf 文件名可自定义,.bin 和纹理文件名在 JSON 内通过 uri 引用
GLB 单文件,命名自由,建议包含资产描述和版本号
STEP 通常使用零件号或项目编号命名(如 PART-12345_A.stp),避免中文路径
FBX 建议包含资产类型和版本号,导出时保持内部节点名称一致

12.6 Blender Studio 命名规范参考

Blender Studio 的官方命名公式:

{show_prefix:可选}-{type}-{name}.{variant:可选}-{task}-v{version:可选}_{version_info:可选}.{扩展名}

资产文件示例

char-gabby-concept.blend
char-gabby-shading-v001.mp4
char-gabby-rigging.blend
lib-sea_shells-design-v001.kra

任务标识符(Task)

标识符 阶段
reference 参考资料收集
concept 概念设计
design 设计细化
sculpting 雕塑/高模
modeling 拓扑建模
shading 材质贴图
rigging 骨骼绑定

12.7 目录结构规范

project_root/
├── assets/
│   ├── characters/
│   │   ├── chr_hero/
│   │   │   ├── chr_hero_v03.fbx
│   │   │   ├── chr_hero_idle_v02.fbx
│   │   │   └── textures/
│   │   │       ├── chr_hero_diff_4k.png
│   │   │       ├── chr_hero_nor_4k.png
│   │   │       └── chr_hero_rough_4k.png
│   │   └── chr_npc_guard/
│   ├── props/
│   │   ├── prop_sword/
│   │   └── prop_chest/
│   ├── environments/
│   │   ├── env_castle/
│   │   └── env_forest/
│   └── vehicles/
│       └── veh_car/
├── scenes/
│   ├── scene_level_01_v05.glb
│   └── scene_menu_v02.glb
└── export/
    └── glb/          # 最终交付的 GLB 文件

13. 补充说明

13.1 格式名称官方写法

在技术文档、代码和正式交流中,各格式名称有官方规定的大小写写法:

格式 官方写法 说明
glTF glTF(小写 g,大写 T、F) Khronos 官方规范写法,代表 “GL Transmission Format”
GLB GLB(全大写) glTF 的二进制封装格式
OBJ OBJ(全大写) Wavefront OBJ 格式
MTL MTL(全大写) OBJ 配套材质格式
STEP STEP(全大写) ISO 10303 标准
FBX FBX(全大写) Autodesk Filmbox 格式
STL STL(全大写) 光固化打印格式
USD USD(全大写) Pixar Universal Scene Description
USDZ USDZ(全大写) Apple 的 USD 压缩封装

常见错误GLTF(全大写)、gltf(全小写)、glft(拼写错误)均不规范,应统一使用 glTF

13.2 格式版本演进

格式 当前版本 发布/维护方 版本演进要点
glTF 2.0 Khronos Group 1.0(2015)→ 2.0(2017),2.0 新增 PBR 金属-粗糙度工作流、骨骼蒙皮、形态目标
GLB 2.0 Khronos Group 与 glTF 同版本,是 glTF 2.0 规范的二进制容器部分
OBJ 无正式版本号 Wavefront / 社区 1990 年代诞生,无标准化组织维护,属事实标准
STEP AP242 Ed.3 ISO AP203(通用)→ AP214(汽车)→ AP242(综合,支持 PMI)
FBX 2024+ Autodesk 2005 被 Autodesk 收购,持续更新但二进制格式不透明
USD 24.x Pixar 2019 开源,快速迭代,已成为影视和大型游戏引擎的新标准
STL 无正式版本 3D Systems 1987 年诞生,仅有 ASCII 和 Binary 两种变体

13.3 格式转换工具

工具 支持的转换 特点
Blender(免费开源) OBJ ↔ glTF ↔ FBX ↔ STL 等 最通用的免费转换工具,支持几乎所有格式互导
FBX SDK(Autodesk) FBX → glTF / OBJ / COLLADA 官方 SDK,FBX 导出的首选
CAD Exchanger STEP ↔ glTF / OBJ / FBX / USD 等 工业级 CAD 格式转换,支持 AP203/214/242
gltf-pipeline(npm) glTF ↔ GLB、Draco 压缩 命令行工具,适合 CI/CD 自动化
NVIDIA Omniverse USD ↔ FBX ↔ glTF 等 企业级 3D 协作平台,USD 为原生格式
CloudConvert(在线) 多格式互转 在线工具,无需安装,适合临时转换
Assimp(开源库) OBJ / glTF / FBX / STL 等 40+ 格式 开源 C++ 库,可集成到自定义工具链
常用转换命令示例
# glTF → GLB(使用 gltf-pipeline)
npx gltf-pipeline -i model.gltf -o model.glb

# GLB → glTF
npx gltf-pipeline -i model.glb -o model.gltf

# Draco 压缩 GLB
npx gltf-pipeline -i model.glb -o model_compressed.glb --draco.compressionLevel 7

# Blender 命令行批量转换 FBX → GLB
blender --background --python-expr "
import bpy
bpy.ops.import_scene.fbx(filepath='model.fbx')
bpy.ops.export_scene.gltf(filepath='model.glb', export_format='GLB')
"

13.4 新兴格式趋势

USD(Universal Scene Description)
特性 说明
发布方 Pixar,2019 年开源
定位 面向大型影视、游戏、工业场景的组合式场景描述格式
核心优势 非破坏式引用、图层系统、延迟加载、支持超大规模场景
采用者 NVIDIA Omniverse、Unity、Unreal Engine、Apple Vision Pro
与 glTF 关系 USD 适合场景编排和管线管理,glTF 适合实时渲染交付,两者互补
USDZ
特性 说明
发布方 Apple
定位 USD 的压缩封装格式,Apple 生态的 AR 内容标准
应用场景 iOS AR Quick Look、macOS 预览、visionOS 空间计算
与 GLB 关系 Apple 平台优先支持 USDZ,Web 端优先支持 GLB
3MF(3D Manufacturing Format)
特性 说明
发布方 3MF 联盟(Microsoft、HP、Autodesk 等)
定位 新一代 3D 打印文件格式,旨在取代 STL
核心优势 支持材质、颜色、纹理、多材料打印、网格结构元数据
与 STL 关系 向下兼容 STL 的三角网格,但增加了丰富的制造信息

13.5 格式选择未来趋势

2024-2026 趋势判断:
│
├── Web / 移动端 / AR
│   └── GLB 仍是首选(生态最成熟)
│   └── USDZ 在 Apple 生态持续增长
│
├── 游戏 / 实时渲染
│   └── FBX → USD 迁移趋势明显(UE5 原生支持 USD)
│   └── GLB 作为轻量级资产格式持续普及
│
├── 影视 / 大型场景
│   └── USD 正在成为行业标准(Pixar + NVIDIA 推动)
│
├── 工程 / 制造
│   └── STEP AP242 持续增强(PMI + MBD)
│   └── 3MF 在 3D 打印领域逐步替代 STL
│
└── 元数据 / 互操作性
    └── glTF 扩展生态持续增长(灯光、物理、场景描述)
    └── MaterialX 成为材质互操作的新标准

13.6 各格式 MIME 类型与魔法字节

格式 MIME 类型 文件头标识(Hex)
glTF model/gltf+json { 开头(JSON)
GLB model/gltf-binary 46546C67(ASCII: glTF
OBJ text/plainapplication/octet-stream #v 开头
STEP application/step 49534F2D(ASCII: ISO-
FBX application/octet-stream 4B696E64617474(ASCII: Kaydara)或 FBX
STL application/sla 736F6C6964(ASCII: solid
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐