glTF格式初步了解



  • glTF格式初步了解

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

    glTF的官网介绍在这里。它介绍了glTF的一些特性、发起者以及应用情景。官网中,介绍了glTF是一种可以减少3D格式中与渲染无关的冗余数据并且在更加适合OpenGL簇加载的一种3D文件格式。glTF的提出是源自于3D工业和媒体发展的过程中,对3D格式统一化的急迫需求。官网的一张图片可以简单地说明这一点:
    0_1452475728449_image.png
    也就是说,glTF立志成为音频界的mp3、视频界的H.264,图片界的jpeg。
    在官网的截图上我们看到,在没有glTF的时候,大家都要花很长的的时间来处理模型的载入。很多的游戏引擎或者工控渲染引擎,都使用的是插件的方式来载入各种格式的模型。可是,各种格式的模型都包含了很多无关的信息。比如说.blend格式包含了场景、灯光、摄像机信息,也包含了blender的元信息,这样在载入的时候会浪费很多的载入时间。这需要一次模型的再加工工序(这道工序是否需要,有待观察)
    0_1452475756946_image.png
    当有glTF之后,可以将模型再加工成为glTF,这样渲染的程序只需要支持glTF格式就可以很顺利地处理各种情况了。
    0_1452475824291_image.png
    给大家简单介绍了一下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而变得更好。


Log in to reply
 

走马观花

最近的回复

  • 请问一下如果原Qt桌面软件支持拖拽外部文件进去(比如把在用资源管理器里的一张图片拖拽到软件界面上就会显示这张图片),转成Webassembly之后这种拖拽操作还是否有效?劳烦大佬帮我试试看,可以的话我就学QML了

    read more
  • H
    Toou 2D 拿来即用,为简单而生。

    简称T2D,是一款采用自身模块规范编写的轻量级UI框架,遵循Qt书写与组织形式门槛极低无需深入学习简单易用可拿来即用,丰富的控件模块适合界面的快速开发,让程序人员拥有更多的精力来实现业务逻辑与算法。

    统一交互规范,丰富的Ui控件几十种常用控件放弃了Qt Controls 及 Controls 2 来提高性能。

    完善的主题系统,业务逻辑与界面主题设计分离,可通过简单修改变量自定义主题皮肤。灵活的多主题皮肤绑定机制、在不需要重启App即实现一键换肤

    ini皮肤配置规则与每一个控件融合。可在应用内配置也可在应用外动态扩展配置。

    框架自动化安装支持动态库、静态库多模式编译。使用方便更安全更自由。

    提供丰富Demo、全面的帮助文档,Api查阅快速方便。项目必备开源框架!

    已经集成最新版 Font Awesome 4.7

    开源地址:https://github.com/ShowFL/Toou-2D

    read more
  • 刚刚毕业,工作用QT开发,以后有问题多多请教各位前辈😬 抱拳了。

    read more

关注我们

微博
QQ群