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而变得更好。

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

  1. 学习:WordXML格式初步分析

    Office2003以上,Word可以以XML文本格式存储,这样就可以使用外部程序创建Word文件,而不需要使用Word的对象.也能够自由的打开分析Word文件,或者发布到自己的Web页面,或者其他更 ...

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

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

  3. 【Ceisum】Max转GLTF

    参考资料:https://blog.csdn.net/u011394175/article/details/78919281 1.在3DsMax中加入COLLADA插件:COLLADA-MAX-PC_ ...

  4. Three.js导入gltf模型和动画

    核心代码 复杂的3D模型一般都是用第三方建模工具生成,然后加载到three中 three官方推荐使用gltf格式的文件,代表编辑器是blender 本文生成了自定义生成了一个blender模型,并且应 ...

  5. cesium模型加载-加载fbx格式模型

    整体思路: fbx格式→dae格式→gltf格式→cesium加载gltf格式模型 具体方法: 1. fbx格式→dae格式 工具:3dsMax, 3dsMax插件:OpenCOLLADA, 下载地址 ...

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

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

  7. webgl图库研究(包括BabylonJS、Threejs、LayaboxJS、SceneJS、ThingJS等框架的特性、适用范围、支持格式、优缺点、相关网址)

    3D图库框架范围与示例 摘要: 为实现企业80%以上的生产数据进行智能转化,在烟草.造纸.能源.电力.机床.化肥等行业,赢得领袖企业青睐,助力企业构建AI赋能中心,实现智能化转型升级.“远舢文龙数据处 ...

  8. Xbim.GLTF源码解析(二):IFC和GLTF的对应关系

    原创作者:flowell,转载请标明出处:https://www.cnblogs.com/flowell/p/10839179.html IFC IFC是建筑信息模型(BIM)数据开放的国际标准,在建 ...

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

    原创作者:flowell,转载请标明出处:https://www.cnblogs.com/flowell/p/10838972.html 简介 Xbim.GLTF是将IFC文件转换成GLTF文件的一个 ...

随机推荐

  1. 暑假集训 || 概率DP

    Codeforces 148D 考虑状态转移..https://www.cnblogs.com/kuangbin/archive/2012/10/04/2711184.html题意:原来袋子里有w只白 ...

  2. OpenCV2:第三章 读取图像

    一.简介 将图像文件读入内存,可以用cv::imread()函数 二.读取图像 Mat imread(const string& filename,int flags=1); Mat: 如果读 ...

  3. spring boot jar的生成

    1)准备demo 2)打开idea项目结构 3)添加 4)按顺序 6)bulid 7)完成  查看out文件

  4. linux 查看分区UUID的两种方法

    1. sudo blkid /dev/loop0: TYPE="squashfs"/dev/loop1: TYPE="squashfs"/dev/loop2: ...

  5. zabbix user-defined item

    1.user-defind item at:/etc/zabbix/zabbix_agent.conf format: UserParameter=<key>,<command> ...

  6. Linux环境下挂载SD卡的教程

    1.插入SD卡 如果系统能够识别SD卡,则会打印一些信息: 2.查看系统给SD卡分配的设备名 命令如下: fdisk -l 命令 说明:通常是根据SD卡的存储容量来确定的. 比如下面的信息: 3.挂载 ...

  7. 第十三章:MFC库与Windows程序开发概述

    主要内容: 1.Windows程序的基本结构 2.MFC库简介 3.使用Visual C++开发Windows程序 具体内容略

  8. 关于在views对models创建的表的简单操作

    models.User.objects.create(c1='a',c2='b') obj=models.User(c1='a',c2='b') obj.save() 增加 models.User.o ...

  9. Java自动生成asmx的webservice代码

    第一种方式:针对CXF自动生成的代码对响应类大小写区别问题,可以使用此方法. 工具为Eclipse. 新建Web Service Client. 输入地址点击finish即可自动生成. 调用方式: p ...

  10. 7-16 Sort with Swap(0, i)(25 分)

    7-16 Sort with Swap(0, i)(25 分) Given any permutation of the numbers {0, 1, 2,..., N−1}, it is easy ...