GLTF文件格式
glTF的全称(Graphics Language Transmission Format)图形语言传输格式。是三维场景和模型的标准文件格式。
glTF 核心是 JSON 文件,描述了 3D 场景的整个内容。它由场景结构本身的描述组成,内容其由定义场景图的节点的层次提供。
场景中出现的 3D 对象是使用连接到节点的 meshes(网格)定义的。Materials(材料)定义对象的外观。Animations(动画)描述 3D 对象如何随着时间的推移转换 3D 对象,并且 Skins(蒙皮)定义了对物体的几何形状的方式基于骨架姿势变形。Cameras(相机)描述了渲染器的视图配置。
除此以外,它还包括了带有二进制数据和图像文件的链接。

Json文件(.gltf)包含完整的场景描述。
二进制文件(.bin)存储几何及动画等数据内容。
纹理文件(.jpg, .png)存储纹理图片内容。

ITF的格式有三种表达
>gTF分离格式(.gltf+.bin+纹理)
>gITF嵌入格式 (.gltf)
>gITF二进制格式 (.glb)

.gltf 文件,本质是 json 文件,记录对bin文件中模型顶点基本数据的索引、材质索引等信息。
.bin 文件,以二进制流的方式存储顶点坐标、顶点法线坐标和贴图纹理坐标、贴图信息等模型基本数据信息。
.glb 文件是二进制流文件,通常来说会更小一点,若不关心模型内的具体数据可直接选择此类型。
模型加载顺序
模型加载顺序为,先加载gltf文件,然后解析依次读取scenes、nodes、meshes、accessors、bufferViews、buffers、materials、textures、images。其中每个mesh包括一个bufferViews和一个materials。每一层的递进都有数组下标来确定。

glft的压缩优化
可以采用KHR_mesh_quantization或EXT_meshopt_compression进行网格压缩
然后再使用gltf-pipeline进行模块区分并对纹理图片压缩
制作GLTF模型数据
可以通过blender(开源免费)制作模型,然后导出成GLTF格式的文件。
blender地址:https://www.blender.org
参考文章:
https://www.jianshu.com/p/e134a2599cb7
https://segmentfault.com/a/1190000040506397?u_atoken=b06abf46-d8df-47db-ba59-5a4c4363d0cd&u_asession=01F4qvsxqP6kMcoXAmYhcyQfCq5d5Ikg-x9SDd4p1-hpFFk9PCkFV03zUutLz3Sb9nX0KNBwm7Lovlpxjd_P_q4JsKWYrT3W_NKPr8w6oU7K89Mr-I3EbGC83-VqEj1tUZ2l7GVvsUm1O1dQ3kAgydYmBkFo3NEHBv0PZUm6pbxQU&u_asig=05ESJ0rAXmqHXPIepLzgwTZm2R1rU3ORtWRA6FcUrU0s_I1hNzwAGwAsPBsvx9PmF0hyyMNORqXv-BWKvlHc96sgW6fi4uZXYtwk16F-RERqdkTDO3mpaauxgkssYAyDm9zeVqVFl-m6d7Ay5G3RJsKYgSU3tkx4PWFBDHg7_F3JP9JS7q8ZD7Xtz2Ly-b0kmuyAKRFSVJkkdwVUnyHAIJzQcWaqiEnhz-_OrjzkcBUNsXIInsFpDA-9pQwAzg9ndlaSuCIIsUrXvoQJBX3FajR-3h9VXwMyh6PgyDIVSG1W-rSwjCtyTewaa1beVeAOLa2qaXJ7OgOBoJ-UpI701OkNACp6I45I5Z4pVXM0r257y4Pxc3izT6PHNXAf5yIqDomWspDxyAEEo4kbsryBKb9Q&u_aref=aw4TIgfR3yygqwN%2B4HFRj6Q%2B%2FuE%3D

认识3D模型-GLTF文件的更多相关文章

  1. Unity导入3D模型的过程与方法

    一.介绍 资源是游戏开发中的原材料,也就是组成游戏的模块. Unity只是一个游戏开发引擎,而并不是一个资源开发软件.这就意味着在游戏中需要的资源通常是由一些设计者使用其他软件开发出来的,然后设计者会 ...

  2. 在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图

    在Jerry写这篇文章时,通过Google才知道,SAP其实是有自己的3D模型视图显示解决方案的. 故事要从Right Hemisphere说起,这是一家专业的企业级2D/3D模型浏览及转换的软件供应 ...

  3. cesium导入3D模型(obj转gltf)

    cesium中支持载入3D模型,不过只支持gltf格式.gltf是khronos组织(起草OpenGL标准的那家)定义的一种交换格式,用于互联网或移动设备上展现3d内容,充分支持opengl,webg ...

  4. Cesium学习笔记(九):导入3D模型(obj转gltf)

    在用cesium的过程中难免需要导入别人做好的3D模型,这时候就需要将这些模型转成gltf格式了 当然,官方也给了我们一个网页版的转换器,但是毕竟是网页版的,效率极其低下,文件还不能太大,所以我们就需 ...

  5. 3D性能优化 | 说一说glTF文件压缩

    引言 最近做T级互动,需要使用到3D模型.相信大家和我一样,在开始着手的时候,一定会有这么些问题: 1.如何选择3D模型的导出格式 2.如何对模型文件进行优化 3.在大流量的项目中兼容性怎么样 让我们 ...

  6. 3D模型预处理(格式转换:obj转换为gltf)

    在cesium中导入模型需要的是gltf或glb格式的文件,cesium官方提供了obj转gltf文件的工具,一个obj2gltf的库,地址为https://github.com/Analytical ...

  7. QT QML 3D模型查看器

    原文链接:http://amin-ahmadi.com/2018/01/28/viewing-3d-models-using-qt/ 本文使用QT Quick中的Scene3D QML类型来查看3D模 ...

  8. ThreeJS 3d模型简介

    本文主要是对Threejs中加载模型的支持种类进行简单的知识科普. 3ds (.3ds) 3ds是3ds max通用储存文件格式.使用的范围更宽,可被更多的软件识别使用. amf (.amf) AMF ...

  9. 教你如何利用threejs对3D模型皮肤进行DIY

    一步一步教你如何利用threejs加载gltf模型来实现DIY换肤功能. 模型准备 模型制作 模型可以通过网上下载,也可以自己通过c4d.maya.blender等模型制作软件得到.这里就不叙述有关模 ...

  10. 3D模型在线查看工具

    3D场景工具推荐:NSDT场景编辑器. glTF Viewer 2.0是一个可以在线查看GLTF格式3D模型的,可以对模型进行显示设置.灯光设置来查看模型效果,除此之外还可以对模型进行性能分析和模型验 ...

随机推荐

  1. Codeforces Global Round 12(个人题解)

    1450A. Avoid Trygub 挺简单的题,题意是避免字符串中有子串"Trygub" 只要给字符串排序就可以了,这样一定不会出现 void solve() { string ...

  2. Android 多语言动态更新方案探索

    本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/jG8rAjQ8QAOmViiQ33SuEg作者:陈龙 最近做的项目需要支持几十种语言,很多小 ...

  3. 洛谷 P9916 「RiOI-03」Just a Q. (Easy ver.) 题解

    前言 Div.2 Rank \(13\) 获奖了,题目也好评. 解法 题目链接:\(\color{Purple}\texttt{P9916「RiOI-03」Just a Q. (Easy ver.)} ...

  4. webflux 的使用总结

    本文为博主原创,未经允许不得转载: 1. Servlet 3.0 简介 2. WebFlux 简介 及 特点  3. 基于函数式的 WebFlux 开发 4. webFlux 全局异常 5. webF ...

  5. 【rt-thread】Kconfig文件添加子Kconfig文件时是以顶级Kconfig所在目录为当前路径的

    示例如下 顶级Kconfig文件所在目录 子级Kconfig文件所在目录 子级Kconfig文件添加次子级Kconfig文件,以顶级目录为当前路径依次写出次子级Kconfig文件所在目录

  6. CSS - 工具类 tool.css

    /* flex */ .flex{     display: flex; } .f1{     flex:1 } .flex-center{     align-items: center;      ...

  7. 《OnJava》——11内部类

    内部类 利用内部类,可以将逻辑上存在关联的类组织在一起,而且可以控制一个类在另一个类中的可见性. 内部类和组合不同,内部类是一种代码隐藏机制:将代码放在其他类的内部. 11.1 创建内部类 创建内部类 ...

  8. Qt5.9 UI设计(三)——添加UI、类及资源文件

    前言 设计一个软件,最简单的方式就是把控件直接往UI上放,然后再把功能实现了.这样可以实现基本的功能,但是界面不能缩放,如果拖动软件改变界面的大小,界面上的控件就会乱成一团,或者是界面的控件压根就不会 ...

  9. [转帖]linux中批量多行缩进与添加空格

    用vim打开修改python脚本的时候,将代码整体向后移动4个空格操作如下: ESC之后,ctrl+v进入多行行首选中模式 使用上下键进行上下移动,选中多行行首 shift+i,进入插入模式 连续敲击 ...

  10. [转帖]TiDB调优小结

    https://www.jianshu.com/p/d5ee4dca66d8 TiDB概览 先来一段官网的描述     TiDB server:无状态SQL解析层,支持二级索引,在线ddl,兼容MyS ...