glTF格式初步了解

glTF格式初步了解

最近看到Qt 3D的进展,偶然了解到了一种新的格式:glTF格式。这种格式据说比现有的3D格式更加符合OpenGL应用的需要,这引起了我的好奇,于是我在Qt 3D的外部链接中找到了有关glTF的相关链接。

上海萌梦信息科技有限公司(微博:http://weibo.com/qtdream)原创文章,首发地址:http://qtdream.com/topic/140。欢迎同行前来探讨。

glTF的官网介绍在这里。它介绍了glTF的一些特性、发起者以及应用情景。官网中,介绍了glTF是一种可以减少3D格式中与渲染无关的冗余数据并且在更加适合OpenGL簇加载的一种3D文件格式。glTF的提出是源自于3D工业和媒体发展的过程中,对3D格式统一化的急迫需求。官网的一张图片可以简单地说明这一点:

也就是说,glTF立志成为音频界的mp3、视频界的H.264,图片界的jpeg。

在官网的截图上我们看到,在没有glTF的时候,大家都要花很长的的时间来处理模型的载入。很多的游戏引擎或者工控渲染引擎,都使用的是插件的方式来载入各种格式的模型。可是,各种格式的模型都包含了很多无关的信息。比如说.blend格式包含了场景、灯光、摄像机信息,也包含了blender的元信息,这样在载入的时候会浪费很多的载入时间。这需要一次模型的再加工工序(这道工序是否需要,有待观察)

当有glTF之后,可以将模型再加工成为glTF,这样渲染的程序只需要支持glTF格式就可以很顺利地处理各种情况了。

给大家简单介绍了一下glTF这个格式,下面我说一下我对glTF这个新的3D格式的看法。

1、为什么要有glTF这个格式的提出呢?

首先,一切新的事物的发明都是为了为了解决以前不方便的情况。就glTF格式而言,虽然以前有很多3D格式,但是各种3D模型渲染程序都要处理很多种的格式。对于那些对载入格式不是那么重要的软件(不是那些类似“格式工厂”那样的软件),可以显著减少代码量,所以也有人说,最大的受益者是那些对程序大小敏感的3D Web渲染引擎,只需要很少的代码就可以顺利地载入各种模型了。此外,glTF是对近二十年来各种3D格式的总结,使用最优的数据结构,来保证最大的兼容性以及可伸缩性。这就好比是本世纪初xml的提出。glTF使用json格式进行描述,也可以编译成二进制的内容:bglTF。glTF可以包括场景、摄像机、动画等,也可以包括网格、材质、纹理,甚至包括了渲染技术(technique)、着色器以及着色器程序。同时由于json格式的特点,它支持预留一般以及特定供应商的扩展。

2、为什么要提出一个新的格式而不是发展现有的格式比如说collada?

我认为这个是对3D通用格式的解释权的一种争夺战。大家已经知道OpenGL已经成为事实上的工业渲染标准,作为现有OpenGL的维护组织,khronos也迫切希望在3D格式上进行一次统一,让glTF成为类似jpeg、mp3等常见的格式,khronos也有威望,可以让行业的大厂们协同一起来参与新标准的制定。对于collada这样基于xml格式的竞争对手,glTF的提出给大家提供了一个新的思路以及解决方案。就好像json当初没有提出的时候,大家都会倾向使用xml来描述通用的可交换的数据格式,可是随着json的发展,xml不再是一枝独秀,逐渐形成了两强的局面,大家也有了更多的选择。上图我们可以看到,我们可以利用现有的格式转换工具很轻松地将collada格式转换为glTF格式,而glTF对于OpenGL的兼容性,我想会因khronos而变得更好。

时间: 2024-08-12 11:54:44

glTF格式初步了解的相关文章

学习:WordXML格式初步分析

Office2003以上,Word可以以XML文本格式存储,这样就可以使用外部程序创建Word文件,而不需要使用Word的对象.也能够自由的打开分析Word文件,或者发布到自己的Web页面,或者其他更多应用. 一个典型的WordXML结构可以是如下的样子: <?xml version="1.0"?><w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml&quo

微软 WordXML格式初步分析

一.前言 Office2003以上,Word可以以XML文本格式存储,这样就可以使用外部程序创建Word文件,而不需要使用Word的对象.也能够自由的打开分析Word文件,或者发布到自己的Web页面,或者其他更多应用. 1.一个典型的WordXML结构 1)可以是如下的样子: <?xml version="1.0"?><w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/

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

在用cesium的过程中难免需要导入别人做好的3D模型,这时候就需要将这些模型转成gltf格式了 当然,官方也给了我们一个网页版的转换器,但是毕竟是网页版的,效率极其低下,文件还不能太大,所以我们就需要一个格式转换器了 现在只支持obj和dae转gltf,我感觉obj比较方便,所以我用的是obj2gltf,这也是官方推荐的一个,用起来很简单,而且效果和效率都不错. 下面说一下过程 首先在cesium目录下安装obj2gltf(如果没有nodejs的就装一个吧,反正又简单官方还推荐) npm in

Three.js导入gltf模型和动画

核心代码 复杂的3D模型一般都是用第三方建模工具生成,然后加载到three中 three官方推荐使用gltf格式的文件,代表编辑器是blender 本文生成了自定义生成了一个blender模型,并且应用了动画效果,核心代码如下 var mixers = []; var clock = new THREE.Clock(); (function(){ var loader = new THREE.GLTFLoader(); loader.load( './static/models/2.gltf',

【Ceisum】Max转GLTF

参考资料:https://blog.csdn.net/u011394175/article/details/78919281 1.在3DsMax中加入COLLADA插件:COLLADA-MAX-PC_Max2017_v1.6.63 2.使用3DsMax加载模型文件,将物体设置到原点 3.导出OpenCOLLADA格式的DAE文件 4.下载COLLADA2GLTF-v2.1.4-windows-Release-x64 5.使用COLLADA2GLTF将DAE转换为GLTF格式,   在Window

Xbim.GLTF源码解析(一):简介

简介 Xbim.GLTF是将IFC文件转换成GLTF文件的一个组件.IFC是建筑行业的存储规范,而GLTF则是计算机领域的存储规范,GLTF中只包含与三维图形相关的图元数据.而IFC中不仅包含建筑模型的三维视图,还会包含各种各样的属性信息,类型信息等等非几何的数据.将IFC文件转换成GLTF文件,除了剔除非几何信息之外,还要注意初始IFC文件中几何模型的数据完整性. 以下是进行几何数据提取后,装载成GLTF的文件和原IFC文件的大小对比,可以看到,该方案可以将模型文件压缩至50%左右. 模型大小

cesium加载3D—gltf模型

var z= new Array('./src/1.gltf', './src/2.gltf','./src/3.gltf' ); var model,modelin,modelroot; var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(经度, 纬度,1)); //gltf数据加载位置——中点 //加载gltf格式数据到cesium,z为模型名称,modelMatr

Cordys BOP 4.3平台使用小经验—数据库连接管理、导出流程模型为XPDL

目 录 数据库连接管理工具 关于MySQL数据库 数据库使用中需注意的事项 导出Business Process Model为XPDL格式 导出XPDL格式 XDPL格式初步分析 流程模型简单案例 活动环节描述 Message Mapping描述 数据库连接管理工具 使用Manage Database Configurations组件管理数据库连接,如下图所示. 可以使用这里的功能,增删数据库连接. 关于MySQL数据库 注意: MySQL识别大小写,这里的数据库名称,在配置数据库连接时,按区分

Cesium 概述 (二) 空间数据可视化

                                                              空间数据可视化 Cesium提供Entity API来绘制空间数据,例如点.标记.标签.线.3D模型.形状.立体形状(volume). Entity API简介 Cesium提供两类API: (1)面向图形开发人员的底层API,通常称为"Primitive API".该API暴露最小限度的抽象,使用图形学术语,具有很大的灵活性,需要具有图形学编程的知识 (2)高级