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格式进行描述,也可以编译成二进制的内容:bglTFglTF可以包括场景、摄像机、动画等,也可以包括网格、材质、纹理,甚至包括了渲染技术(technique)、着色器以及着色器程序。同时由于json格式的特点,它支持预留一般以及特定供应商的扩展。

 

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

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

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: gltf格式和obj格式都是一种用于3D模型存储和传输的文件格式gltf(即GL Transmission Format)是一种基于JSON的格式,可以包含3D模型的几何信息、材质、动画等。而obj格式是一种简单的文本格式,将3D模型的顶点、面和纹理坐标等信息按照一定的规则进行编码。 要将gltf格式转换为obj格式,需要借助于相应的转换工具或代码库。以下是一个简单的步骤指南: 1. 下载和安装一个支持gltf转obj的工具或代码库,例如Blender、assimp等。这些工具通常支持多种3D模型格式的转换和处理。 2. 打开工具,导入gltf文件。根据工具的使用说明,选择导入gltf文件的选项。 3. 对导入的3D模型进行相应的处理和调整,例如旋转、缩放等。这一步可选,根据需要进行调整。 4. 选择导出为obj文件的选项,并指定导出文件的路径和名称。 5. 确认设置并导出文件。这一步可能需要一些时间,具体取决于模型的复杂性和计算机的性能。 6. 完成后,你将得到一个转换后的obj文件,其中包含gltf模型的几何信息、材质和纹理坐标等。 需要注意的是,由于gltf和obj格式的差异,转换过程中可能会有一些信息的丢失或不兼容的问题。转换后的obj文件可能不包含完整的动画信息,并且可能需要进行一些手动的后期处理来调整模型的材质和纹理。 综上所述,将gltf格式转换为obj格式需要使用相应的工具或代码库,并通过导入、处理和导出等步骤完成转换。 ### 回答2: GLTF(GL Transmission Format)是一种用于在3D场景中交换和加载模型的开放标准格式。而OBJ(Wavefront OBJ)是一种常见的3D模型文件格式。 要将GLTF格式转换成OBJ格式,可以使用一些软件工具或编程库来实现。下面我将介绍一种可能的转换方法。 首先,我们可以使用Python编程语言中的gltf2glb库将GLTF格式转换成GLB(binary glTF格式的文件。GLB是GLTF的二进制形式,更适合转换为其他格式。 然后,我们可以使用Blender这样的3D建模和渲染软件来加载GLB文件,并将其另存为OBJ格式。Blender是一个强大的免费开源软件,支持多种3D文件格式的导入和导出。 具体步骤如下: 1. 在Python中使用gltf2glb库将GLTF格式转换成GLB格式。 2. 打开Blender软件,并导入转换后的GLB文件。 3. 在Blender中进行必要的编辑和调整,以确保模型准备就绪。 4. 选择导出选项,将模型以OBJ格式导出。 需要注意的是,转换过程可能会根据软件版本和使用的工具而略有不同。因此,根据具体情况可能需要进行一些适应性的调整。 通过这种方法,我们可以将GLTF格式转换成OBJ格式。这样做的好处是,OBJ格式在许多3D建模和渲染软件中广泛支持,方便进一步的处理和应用。 ### 回答3: gltf格式和obj格式都是常用的三维模型文件格式gltf是一种开放标准的三维模型文件格式,可以包含模型的几何形状、材质信息以及动画等数据,并支持渲染和交互。而obj格式是一个简单的文本文件格式,主要用于存储三维模型的顶点、面片、纹理坐标等基本信息。 要将gltf格式转换为obj格式,需要借助一些工具或软件。以下是一种常见的转换方法: 1. 首先,需要找到一个支持gltf和obj格式转换的工具。有一些开源的软件如Blender、Assimp等可以完成此任务。 2. 下载并安装选择的软件,并打开它。 3. 在软件中,导入gltf文件。可以通过点击“导入”或“导入模型”等按钮,在弹出的对话框中选择gltf文件并确认导入。 4. 在导入gltf文件后,选中模型并查找导出选项。通常可以在菜单栏的“文件”或“导出”选项中找到。 5. 确认导出选项后,选择导出为obj格式。有时还可以选择其它的导出选项,如纹理坐标、法线等。 6. 设置导出路径和文件名,并确认导出。软件将会将gltf文件转换为obj格式,并保存到指定的路径中。 7. 完成转换后,可以通过查找指定的导出路径,找到生成的obj文件。 需要注意的是,转换结果可能因为软件版本、模型复杂度等因素而有所不同。有时可能需要进行一些调整和优化以满足您的需求。 总结来说,将gltf格式转换为obj格式是一个相对简单的过程,可以通过选择合适的工具或软件,按照上述步骤进行操作即可完成转换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彩阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值