glTF格式介绍(1)——概要

GLTF的基本结构详解 glTF的核心是一个JSON文件。 阅读详情

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.youkuaiyun.com/qq_31709249/article/details/86477710

原文地址:https://github.com/javagl/glTF-Tutorials/blob/master/gltfTutorial/gltfTutorial_002_BasicGltfStructure.md

一、glTF的基础结构

1.基础结构图

(1)scene:整个场景的入口点,由node构成图(树)结构(类似OSG的场景组织)组成

(2)node:场景层级中的一个节点,可以包含位置变换,可以有子节点。同时,node通过指向mesh、camera、skin来描述node的形变

(3)camera:定义渲染场景的视点配置

(4)mesh:描述了在场景中出现的几何物体,并通过accessor(访问器)来访问其真实的几何数据,通过material(材质)来确定渲染外观

(5)skin:蒙皮描述模型绑定到骨骼上的参数,用来实现骨骼动画,其真实数据也是通过访问器来获取的

(6)animation:骨骼动画,描述某个节点怎么随着时间运动

(7)accessor:访问器,定义了如何从二进制数据源中获取数据,在mesh、animation、skin中都会用到访问器。其指向buffer和bufferview,在这里面存着真正的几何数据

(8)material:材质包含了定义物体模型外观的参数,特别是纹理参数

(9)texture:包括采样器和图片,定义如何将纹理映射到模型

下图是结合官方的图片,做的一张结构图:

2.文件结构

glTF文件主要由以下几个文件组成:

(1)gltf文件:json文件,描述整个场景结构、动画、相机以及和二进制文件和图片文件的联系方式

(2)二进制文件:几何、动画、蒙皮的真正数据文件

(3)图片文件:主要是纹理图片文件

结构图如下:

3.文件的读取和管理

首先读取解析glTF的JSON文件格式,解析完成后,就能知道buffer和image的读取方式,然后在二进制数据块中读取即可

(1).buffer中的二进制文件

一个buffer包含一个URI,指向包含实际数据的二进制文件(.bin文件),通过buffers、bufferviews和accessors中,可以知道文件的数据类型,布局。读取出来的数据不需要解析,直接送进GPU进行渲染。

(2).图片文件

一个image中包含一个URI,通过这个ID去获取具体的图片文件。

3DMAX模型转换为gltf格式总结与问题汇总 众所周知,cesium平台所支持的三维模型格式为3dtiles和gltf,这两种格式都是开源的。对于建的的精模如果数据量不是很大的话(单个文件在2G以内) 阅读详情

相关推荐

GLTF格式学习:glTF介绍( 基于WebGL

原文: https://github.com/KhronosGroup/glTF-Tutorials/blob/master/gltfTutorial/gltfTutorial_001_Introduction.md 越来越多的应用程序和服务是基于3D内容的。在线商店提供具有3D预览的产品。博物馆通过三维扫描将其文物数字化,并允许游客在虚拟画廊中探索其收藏品。城市规划者使用三维城市模型进行城市规划...

weixin_42755384的博客 3157

glTF全解析——materials

glTF全解析——materials glTF的材质部分,使用的是一组参数来定义材质。这些参数为PBR的各种参数,包括金属性和粗糙性等参数。 结构图 结构图中展示了meshs到materials再到textures之间的过程。 例子 最简单的例子 { "materials": [ { "name": "gold", "pbrM...

qq_34205932的博客 9937

加载gltf-pipeline压缩后的gltf文件所需的js文件

gltf-pipeline对gltf文件进行压缩,压缩后的文件加载时需要专门的接压缩算法,这里面的js就是!包括: draco_decoder.js draco_decoder.wasm draco_encoder.js draco_wasm_wrapper.js

GLTF简介

gltf简介 gltf组织结构 glb转gltf

weixin_44273367的博客 1812

U3d WebGL使用ToLua

首先我们在编辑器模式下加入Tolua插件,然后配置修改到在编辑器模式下能够正常的运行。 同个U3d 插件Build出WebGL的工程,运行的时候你会发现(有些需要把这个WebGL工程放在一个HttpServer下面,直接本地访问index.html会被拒绝,让你使用http的格式)。 当要加载完的时候会出现 To use dlopen, you need to use Emscripten'...

qq_35267906的博客 2946

配电网可靠性评估(一)—最小路法和非序贯蒙特卡洛模拟法的matlab实现

电力系统的可靠性研究是相关领域的热点问题。根据研究对象的不同,又可分为发电系统的可靠性,输电系统的可靠性和配电系统的可靠性。配电网在电力系统中处于最末端的位置,直接和用户相连,一旦出现故障情况,就会在用户侧表现为停电事故。因此对配电网的可靠性评估有着重大意义。......

配电网和matlab的博客 1万+

glTF格式介绍——目录

最近因为科研需要,需要了解glTF文件结构,阅读了一下官方的文档,然后记录在这里写一个专栏吧。由于自己还是图形学小白,翻译的内容难免会有错误,希望大家见谅。此外,此专栏只翻译了主要部分,动画、蒙皮、材质三个部分因为个人知识的限制,暂时没有翻译,如有需要了解,请移步官方文档。 首先说一下为什么要设计glTF文件:网上的说法是当前各种3D模型种类众多,当用户要使用时,需要针对不同的模型安装不同的模型...

MeteorChenBo的博客 1万+

Canoe CAPL TCP通信避坑指南:从OnTcpConnect回调不触发到Socket句柄管理

本文详细解析了Canoe CAPL中TCP通信的常见问题与解决方案,包括OnTcpConnect回调不触发的三大原因、Socket句柄管理的内存泄漏风险、数据发送截断规则等。通过实战案例和代码示例,帮助开发者规避TCP通信中的典型陷阱,提升车载网络测试的稳定性和可靠性。

weixin_26976635的博客 358

glTF格式介绍(8)——解析一个Box的glTF文件

glTF格式介绍总目录:https://blog.youkuaiyun.com/qq_31709249/article/details/86477520 在以前的系列文章中,已经介绍了glTF文件的文件结构,而且拿了一个最简单的例子——三角形的glTF文件简单解析了一下。这一节来解析一个稍微复杂一点的glTF文件——正方形模型。正方形模型来源于glTF官方示例,里面有很多glTF格式的模型,下载下来可以用w...

MeteorChenBo的博客 1万+

推荐系统召回总结(持续更新)

推荐系统架构 候选池:可供推荐的物料候选池,对于图文、短视频、新闻等来说通常是最近N天的新物料组成的集合,定期进行物料更新。 召回:从候选池中选出和用户相关的物料,交给后面的排序模块进行打分。召回面对的候选集通常是数十万或者百万甚至千万的量级,检索过程必须轻量快速。通常由多路召回组成,保证不遗漏且相关性、多样性尽量好,可以分为非个性化召回和个性化召回。 粗排:对召回选择的几千或者几百候选物料进行排序,快速打分选出topN,减少精排的压力,兼顾精准与效率。 精排:对粗排的结果进行精准排序,这个环节需要特征尽可

whgyxy的博客 2515

保姆级避坑指南:用Docker在Ubuntu 22.04上部署Isaac Sim 5.1.0,搞定宇树G1仿真环境

本文提供了一份详细的保姆级避坑指南,帮助用户在Ubuntu 22.04上通过Docker部署Isaac Sim 5.1.0,并成功搭建宇树G1仿真环境。文章涵盖了环境准备、Docker与NVIDIA容器工具包的配置、Isaac Sim镜像的定制化拉取与配置,以及宇树G1仿真环境的实战调试,旨在帮助开发者高效解决部署过程中的常见问题。

weixin_33728268的博客 207

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

GLTF(GL Transmission Format)和 GLB(GL Binary)是用于在 Web 和各种应用程序中传输和加载 3D 场景和模型的开放标准格式。它们由 Khronos Group 开发,旨在提供一种高效、可扩展且易于使用的 3D 内容格式。GLTF 是一种基于 JSON 的格式,用于描述 3D 场景和模型。它支持多种 3D 数据类型,包括几何体、材质、动画、相机、灯光等。GLTF 文件通常由多个部分组成,包括 JSON 文件、二进制文件和外部资源文件(如纹理图像)。

weixin_42357472的博客 4480

VS Code配置Java开发环境避坑指南:从JDK到Spring Boot插件全流程

本文详细介绍了在VS Code中配置Java开发环境的完整流程,涵盖JDK选择、环境变量配置、核心插件安装、构建工具优化及Spring Boot项目专项设置。特别针对常见问题提供避坑方案,帮助开发者快速搭建高效稳定的开发环境,提升Java和Spring Boot开发效率。

weixin_28839699的博客 976

3D模型文件格式之《glb/gltf格式介绍》

​,尤其适合Web、移动端和开放平台。它的开源、轻量化、现代特性使其在元宇宙、AR/VR领域占据主导地位,而FBX更偏向传统DCC(数字内容创作)软件的内部交换。​:相比FBX、OBJ等,GLTF文件更小,加载更快,适合Web和移动端。​:Blender导出GLTF时需检查材质、动画是否正常转换。​:GLTF 2.0是主流,旧版1.0已淘汰。如果需要将FBX转为GLTF,推荐使用​。扩展可进一步减小文件。GLTF/GLB是​。

yuanpan的专栏 2866

Blender软件导出地形到Gazebo中

Blender软件导出地形到Gazebo中,并配置纹理、刚度、高度。

m0_70652514的博客 3376

Android11原生设置屏幕亮由Gamma变化改为线性变化

从Android9 开始屏幕亮度调解变成非线性变化,这样的话就会出现 之前亮度变化很小,到后面时变化亮度很快; 修改为线性变化,只需要修改 ./frameworks/base/packages/SettingsLib/src/com/android/settingslib/display/BrightnessUtils.java /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache L

Android 4923

gltf格式

是啥? khronos推出的,致力于使其成为3D界的JPEG那样的通用格式的一种格式。目前支持多种常用的三维软件通过插件直接读写gltf格式,比如Maya、3dmax、unity等等,assimp也支持了gltf格式的读写。 为啥要用? 1、glTF = The GL Transmission Format,使用gltf可以享受三维数据格式统一的好处,并避免各个三维软件间处理大量的导入/导出脚本...

_Lina的博客 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

GLTF(GL Transmission Format)详细介绍

GLTF(GL Transmission Format)是一种现代 3D 文件格式,由 Khronos Group 开发,专为高效传输和渲染 3D 资产而设计。它被广泛用于 Web 3D(如 Three.js、Babylon.js)、游戏开发(Unity、Unreal)以及 AR/VR 应用。

2301_79436039的博客 2867

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

3D Tiles格式介绍(1)——概要

3DTiles格式介绍总目录:https://blog.youkuaiyun.com/qq_31709249/article/details/102643371 前一段时间写了glTF的格式解析(传送门:https://blog.youkuaiyun.com/qq_31709249/article/details/86477520),最近两天因为选题的缘故又看了3D Tilels的数据组织(话说选题真的好难啊,有没有人...

MeteorChenBo的博客 3万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

glTF格式详解

本文主要通过总结glTF文件格式来对3d模型有一个整体的认识概念,对glTF有了一个清晰的概念后我们可以简单试下如何解析一个glTF文件为模型,并且简单介绍下我对glTF文件在实际项目中应用优化的落地实践。glTF作为一个标准的3d场景和模型文件格式,类似于图形中的jpeg,有两种文件扩展名:.gltf(JSON/ASCII)或者.gbl(二进制文件)两种类型。下图我们可以看到我在blender里简单放了一个cube后导出glTF2.0文件的话可以选择以下三种格式:glTF二进制(.glb)、glTF分离(

jieqiang3的专栏 2万+

Unity3D使用glTF格式三维文件,glTF在unity中如何呈现,glTF导入unity

1,什么是glTF文件? 一直在研究如何优化检查三维模型的问内容,单独从三维文件来说,有很多可以优化规范的内容,最近在看到有一个压缩格式,话说这个方式是要做一个三维文件的通用格式,比如图片的jpg格式,音频的mp3格式,这个也就是三维文件中的glTF格式 如图: 2,如何产生glTF文件? 本人测试了maya和3dmax中导入glTF格式的三维文件,其中这两个软件都需要安装插件,然后执行导出格式 详细的插件如下: 链接:https://pan.baidu.com/s/1GvCbDFMHjfOW4wnl

qq_27999715的博客 6483

GLTF文件格式详解

模型加载顺序为,先加载gltf文件,然后解析依次读取scenes、nodes、meshes、accessors、bufferViews、buffers、materials、textures、images。其中每个mesh包括一个bufferViews和一个materials。每一层的递进都有数组下标来确定。

积累点滴,保持自我 5701

关于GLTF格式的综述、结构与TS解析

三维格式、GLTF总概、GLTF历史、GLTF基础结构、GLTF基础示例、GLTF结构解析实践。

zouzouzou的博客 6436

GLTF是什么?

GLTF是什么?1. gltf简介2. gltf使用3. gltf修改3. 二进制gltf参考 1. gltf简介 GLTF代表 Graphics Language Transmission Format(图形语言传输格式)。这种跨平台格式已成为Web上的3D对象标准。它由OpenGL和Vulkan背后的3D图形标准组织Khronos所定义,这使得GLTF基本上成为3D模型的JPG格式:Web导出的通用标准。 A-Frame和ThreeJS原生支持GLTF。尽管一些3D Web框架支持特定于平台的模型格式,

qq_40985985的博客 1万+

Threejs加载gltf格式模型,.fbx转.glb格式,压缩gltf模型

11

qq_33069557的博客 6205
上一篇: 使用fbx2gltf把FBX3D模型转成glTF格式模型
下一篇: javascript数组的map()、filter()、some()、every()、forEach()方法的区别
linziping
博客等级 码龄11年 38粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值