glTF通过提供高效、可扩展、可互操作的格式来传输和加载三维内容,填补了3D建模工具与现代图形应用程序之间的空白,它已成为了 Web 上的3D 对象标准(Web导出的通用标准),可以说glTF是3D 模型的JPEG格式,几乎每个3D Web框架都支持glTF。随着glTF的不断发展,glTF形成了自己庞大的生态系统,同时受到了各行业的大力支持。
glTF小模型只是 Primitive 或Entity的其中一种类型数据,代码加载方式是一致的,这里单独拿出来讲解下他的.gltf数据特性。
glTF的核心是一个JSON文件,另外还支持外部数据。具体而言,一个glTF模型可包括以下三部分内容:
-
JSON格式的文件(.gltf),其中包含完整的场景描述,并通过场景结点引用网格进行定义 。包括:节点层次结构、材质(定义了3D对象的外观)、相机(定义了渲染程序的视锥体设置 )、mesh(网格)、动画(定义了3D对象的变换操作,比如选择、平移操作)、蒙皮(定义了3D对象如何进行骨骼变换)等;
-
.bin包含几何和动画数据以及其他基于缓冲区的数据的二进制文件;
-
图像文件(.jpg,.png)的纹理。
场景对象以数组的形式存储在JSON文件中,可以使用数组中各个对象的索引来访问它们:
“meshes” : [ { … } { … } … ],
这些索引还用于定义对象之间的关系。上面的示例定义了多个网格对象,并且一个节点可以使用网格索引引用上面定义的其中一个网格对象:
“nodes”: [ { “mesh”: 0, … }, { “mesh”: 5, … }, … }
下图概述了glTF的JSON部分的顶级元素:
下面我对这些元素进行简要说明:
-
scene: glTF格式的场景结构描述条目。它通过引用node来定义场景图;
-
node: 场景图层次中的一个节点。它可以包含一个变换(比如旋转或平移),并且可以引用其他(子)节点 。此外,它可以引用网格和相机,以及描述网格变换的蒙皮;
-
camera: 定义了用于渲染场景的视锥体配置;
-
mesh: 描述了出现在场景中几何对象实际的几何数据。它是指accessor用于访问实际几何数据material的对象,并且是指在渲染对象时定义其外观的 ;
-
skin: 定义了用于蒙皮的参数,参数的值通过一个accessor对象获得。
-
animation: 描述了一些结点如何随时间进行变换(比如旋转或平移);
-
accessor: 一个访问任意数据的抽象数据源。被mesh、skin和animation元素使用来提供几何数据、蒙皮参数和基于时间的动画值。它通过引用一个bufferView对象,来引用实际的二进制数据;
-
material: 包含了定义3D对象外观的参数。它通常引用了用于3D对象渲染的texture对象;
-
texture: 定义了一个sampler对象和一个image对象。sampler对象定义了image对象在3D对象上的张贴方式。
数据处理:单体小模型转为glTF格式
供了两种方式加载glTF模型,分别是通过 Entity API 和 Primitive API 两个 API 实现的,使用方式差不多,仅类名不同。
核心代码如下:
// entity方式 const graphic = new mars3d.graphic.ModelEntity({ position: [116.35104, 30.86225, 374.4], style: { url: ‘http://data.mars3d.cn/gltf/mars/fengche.gltf’, heading: 270, scale: 30, minimumPixelSize: 100, }, }) graphicLayer.addGraphic(graphic) // primitive方式 const primitive = new mars3d.graphic.ModelPrimitive({ position: [116.35104, 30.86225, 374.4], style: { url: ‘http://data.mars3d.cn/gltf/mars/fengche.gltf’, colorBlendMode: Cesium.ColorBlendMode.MIX, heading: 270, scale: 30, minimumPixelSize: 100, }, }) graphicLayer.addGraphic(primitive)
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性
GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » glTF/glb小模型glTF数据结构
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性
GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » glTF/glb小模型glTF数据结构
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载要提取码
- 分享过期和重复下载怎么办
- 模型和平台不兼容怎么办

