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/
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149153.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

CCRC-DSA数据安全评估师:数据安全架构是什么?

架构不仅是抽象的概念,更是项目规划、系统开发、产品部署和安全增强中必不可少的思维模式、沟通桥梁和共享语言。 简言之,它定义了系统中包含的元素及其相互关系,这些元素被称为组件或逻辑模块。 例如,“组件”指独立存在的基础…

matlab之数据处理:滑动平均滤波算法与五点三次平滑算法

关注微♥公众号:“电击小子程高兴的MATLAB小屋”获取专属优惠 一.滑动平均滤波算法 算数平均滤波需要多次采样后才能得出一个有效值,如果被检测量变化较快,多次采样后才输出一次有效值,表现就是系统反应迟钝。将当前采样值与之前…

java后端字节一面

1. 我现在和你进行视频通话,这个是怎么做的? 视频通话通常基于实时通信技术(RTC),如WebRTC。它利用现代浏览器的API来实现视频、音频和数据的直接P2P(点对点)通信,或通过服务器中转。…

【小程序】uniapp自定义图标组件可动态更换svg颜色

组件描述 通过图标名称加载对应svg,size参数调整图标大小,color参数调整图标颜色 解决思路: 存svg获svg,对象方式正则替换svg的fill值,不改变源文件,通过base64直接加载缓存svg源文件,避免重…

动态时间【JavaScript】

这个代码实现了一个动态显示当前日期和时间的功能。具体来说&#xff0c;它会每秒更新一次时间并在页面上显示出来。 实现效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><…

关于在Facebook风控中生存的建议

在Facebook广告投放和账户管理的过程中&#xff0c;面对严格的风控机制&#xff0c;如何确保账户的安全与稳定运营是很多小伙伴关注的重点。以下是一些策略和建议&#xff0c;希望能帮助你在Facebook风控的浪潮中稳健前行。 一、风险支付管理 首先&#xff0c;需要明确风险支付…

win10 win11 设置文件权限以解决Onedrive不能同步问题

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

通信工程学习:什么是VNF虚拟网络功能

VNF&#xff1a;虚拟网络功能 VNF&#xff08;Virtual Network Function&#xff09;即虚拟网络功能&#xff0c;是网络功能虚拟化&#xff08;NFV&#xff09;架构中的一个核心概念。VNF允许通过软件化和虚拟化的方式&#xff0c;将传统的网络设备功能&#xff08;如路由器、交…

一键掌握!Matlab R2022a下载安装全攻略

Matlab R2022a下载方法&#xff1a; Matlab R2022a安装教程&#xff1a; 1、解压缩下载好的文件&#xff0c;打开文件夹 2、右击“R2022a_Windows.iso”&#xff0c;选择“装载”&#xff0c;或者直接双击打开 3、右击“setup.exe”&#xff0c;选择“以管理员身份运行” 4、点…

JavaScript --- 字符串常用方法(1)

chartAt(索引)&#xff0c;返回索引对应字符 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" …

通过spring-boot创建web项目

依赖的软件 maven 1. 官网下载zip 文件&#xff0c;比如apache-maven-3.9.9-bin.zip 2. 解压到某个盘符&#xff0c;必须保证父亲目录的名字包含英文&#xff0c;数字&#xff0c;破折号&#xff08;-&#xff09; 3. 设置环境变量M2_HOME, 并将%M2_HOME%\bin添加到windown…

中文文本分词-技术实现

当做语音&文本相关的技术时&#xff0c;经常会涉及到文本的分词实现。以下是对中文的文本简单实现。 一、单个中文句子的分词 import jiebatext_ "我爱我的祖国&#xff01;" # 精确模式 seg_list jieba.cut(text_, cut_allFalse) print("精确模式: &qu…

打造以太坊数据监控利器:InfluxDB与Grafana构建Geth可视化分析平台

前言 以太坊客户端收集大量数据&#xff0c;这些数据可以按时间顺序数据库的形式读取。为了简化监控&#xff0c;这些数据可以输入到数据可视化软件中。在此页面上&#xff0c;将配置 Geth 客户端以将数据推送到 InfluxDB 数据库&#xff0c;并使用 Grafana 来可视化数据。 一…

惊!国产便宜猫罐头也有精品!鲜朗、希喂、顽皮测评

好多进口猫罐头二十多一罐&#xff0c;家里两个超能吃的十斤四岁布偶&#xff0c;每月至少得买100多罐&#xff0c;我直呼“钱包告急”&#xff0c;难以承担。只好把目光投向国内的主食罐。这一年里&#xff0c;我试了挺多国产品牌&#xff0c;一开始看着不到十元的价格&#x…

力扣周赛 —— 416

前言 只做出了第一道&#xff0c;第二第三道都超时。 痛&#xff0c;太痛了。 题目 Q1.举报垃圾信息 给你一个字符串数组 message 和一个字符串数组 bannedWords。 如果数组中 至少 存在两个单词与 bannedWords 中的任一单词 完全相同&#xff0c;则该数组被视为 垃圾信息。…

深入探秘:Linux内存管理与泄漏检测

目录 1. 朋友&#xff0c;了解一下Linux的内存工作原理吧&#xff01; 1.1. 这张图展示的是一个Linux进程的虚拟内存结构 2. 内存分配与回收&#xff1a;让你的程序跑得更稳健 2.1. 内存分配与内存泄漏 3. 内存泄漏检测代码分析 3.1. 预处理宏替换方法 3.2. 动态链接库挂…

2024华为杯E题成品文章已出!

E题高速公路应急车道紧急启用模型 点击链接加入群聊【2024华为杯数学建模助攻资料】&#xff1a;http://qm.qq.com/cgi-bin/qm/qr?_wv1027&kxtS4vwn3gcv8oCYYyrqd0BvFc7tNfhV7&authKeyedQFZne%2BzvEfLEVg2v8FOm%2BWNg1V%2Fiv3H4tcE6X%2FW6lCmkhaSaZV4PwQ%2FOVPDtF%2B&…

kismet和war driving具体准备(仅供无线安全学习)

war driving准备 一台笔记本 一个最好是双频的网卡&#xff0c;单频搜集信号少 我自己买的是http://e.tb.cn/h.grI4EmkDLOqQXHG?tkKZ5g3RVeH6f 如果经济条件允许可以去买大功率天线&#xff08;我买的车载的 大概40db这样子 范围广&#xff09; http://e.tb.cn/h.grCM0CQ6L…

Python Appium自动化操作抖音

1、功能介绍 使用Python和Appium给手机抖音上的同城模块自动评论&#xff0c;主要是通过模拟用户在抖音同城模块的操作&#xff0c;实现自动发送评论的功能。具体步骤如下&#xff1a; - 安装并配置好Python环境&#xff1b; - 安装Appium库&#xff0c;用于自动化操作手机应…

【CSS in Depth 2 精译_038】6.2 CSS 定位技术之:绝对定位

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09;第二章 相对单位&#xff08;已完结&#xff09;第三章 文档流与盒模型&#xff08;已完结&#xff09;第四章 Flexbox 布局&#xff08;已…