自学内容网 自学内容网

3D 模型GLTF、GLB格式文件介绍使用

一、介绍

GLTF(GL Transmission Format)和 GLB(GL Binary)是用于在 Web 和各种应用程序中传输和加载 3D 场景和模型的开放标准格式。它们由 Khronos Group 开发,旨在提供一种高效、可扩展且易于使用的 3D 内容格式。以下是对 GLTF 和 GLB 格式的详细介绍:

1. GLTF 格式

1.1 概述

GLTF 是一种基于 JSON 的格式,用于描述 3D 场景和模型。它支持多种 3D 数据类型,包括几何体、材质、动画、相机、灯光等。GLTF 文件通常由多个部分组成,包括 JSON 文件、二进制文件和外部资源文件(如纹理图像)。

1.2 文件结构

一个典型的 GLTF 文件包含以下部分:

  • JSON 文件:描述 3D 场景的结构和内容。JSON 文件包含场景、节点、网格、材质、纹理、动画等信息。
  • 二进制文件:存储几何体数据(如顶点、法线、UV 坐标等)。二进制文件通常以 .bin 扩展名保存。
  • 外部资源文件:存储纹理图像、外部引用等资源。外部资源文件通常以 .png.jpg 等格式保存。
1.3 优点
  • 高效传输:GLTF 格式设计用于高效传输和加载 3D 内容,减少文件大小和加载时间。
  • 可扩展性:GLTF 格式支持扩展,可以添加自定义数据和功能。
  • 跨平台支持:GLTF 格式广泛支持各种平台和应用程序,包括 Web、移动设备、桌面应用程序等。
1.4 应用场景
  • Web 3D 应用:GLTF 格式广泛用于 Web 3D 应用,如 Three.js、Babylon.js 等。
  • 游戏开发:GLTF 格式用于游戏开发中的 3D 模型和场景的传输和加载。
  • 虚拟现实和增强现实:GLTF 格式用于虚拟现实(VR)和增强现实(AR)应用中的 3D 内容传输和加载。

2. GLB 格式

2.1 概述

GLB 是 GLTF 的二进制格式版本,将 JSON 文件和二进制文件合并为一个单独的二进制文件。GLB 文件通常以 .glb 扩展名保存。

2.2 文件结构

GLB 文件包含以下部分:

  • 文件头:包含文件的元数据,如文件格式版本、文件大小等。
  • JSON 部分:包含 3D 场景的结构和内容,以二进制格式存储。
  • 二进制数据部分:包含几何体数据(如顶点、法线、UV 坐标等),以二进制格式存储。
  • 外部资源部分:包含纹理图像、外部引用等资源,以二进制格式存储。
2.3 优点
  • 单一文件:GLB 格式将所有数据合并为一个单一文件,简化了文件管理和传输。
  • 高效加载:GLB 格式减少了文件数量和加载时间,提高了加载效率。
  • 跨平台支持:GLB 格式广泛支持各种平台和应用程序,包括 Web、移动设备、桌面应用程序等。
2.4 应用场景
  • Web 3D 应用:GLB 格式广泛用于 Web 3D 应用,如 Three.js、Babylon.js 等。
  • 游戏开发:GLB 格式用于游戏开发中的 3D 模型和场景的传输和加载。
  • 虚拟现实和增强现实:GLB 格式用于虚拟现实(VR)和增强现实(AR)应用中的 3D 内容传输和加载。

3. GLTF 和 GLB 的比较

特性GLTFGLB
文件格式基于 JSON 的文本格式二进制格式
文件结构多个文件(JSON、二进制、外部资源)单一文件
文件大小较大(多个文件)较小(单一文件)
加载时间较长(多个文件)较短(单一文件)
文件管理复杂(多个文件)简单(单一文件)
跨平台支持广泛支持广泛支持
应用场景Web 3D 应用、游戏开发、VR/ARWeb 3D 应用、游戏开发、VR/AR

二、使用

例子下载:
https://github.com/KhronosGroup/glTF-Sample-Models/tree/main/2.0
在这里插入图片描述
GLB只要一个二进制文件酒席,GLTF需要下载两个bin和gltf文件一起传入才能显示
在这里插入图片描述

在线GLTF、GLB网页查看:
https://gltf-viewer.donmccurdy.com/
在这里插入图片描述


原文地址:https://blog.csdn.net/weixin_42357472/article/details/142470390

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!