gltf转obj_glTF格式详解(概述)

本文翻译自:https://github.com/KhronosGroup/glTF-Tutorials/blob/master/gltfTutorial/gltfTutorial_001_Introduction.md

由于本人才疏学浅,翻译难免有误,望各位不吝惜指正。


越来越多的应用程序和服务使用3D内容。网上商城为产品提供3D预览。博物馆通过3D扫描技术将收藏品扫描,允许人们在线参观。城市规划使用3D技术来可视化规划结果。教育工作者通过创建可交互的3D动画,提升教学质量。

f5d8ec0a0048c62311ae568be36653ed.png
图1a:多个使用3D内容的应用程序截图

应用程序对3D内容的需求日渐增加。很多时候,我们需要在互联网上传输这些3D内容,然后高效地渲染它们。但是,目前来说,3D内容的创建和渲染之间还存在一个不小的鸿沟。

3D内容管线

3D内容的来源非常复杂,它们往往还具有不同的文件格式,下面的链接给出了多个不同的应用程序支持的超过70种不同的3D数据文件格式。

https://en.wikipedia.org/wiki/List_of_file_formats#3D_graphics​en.wikipedia.org

通常,原生的3D数据由3D扫描器扫描得到。这些扫描器通常将扫描得到的3D数据以OBJ,PLY或STL格式存储,不包含任何场景结构信息以及3D数据如何被渲染的信息。

更为复杂的3D场景数据通常是使用一些创作软件得到的。这些创作软件允许对场景进行编辑,比如对光源、相机和动画进行编辑。创作软件通常以自己的方式来存储这些可以编辑的3D场景数据。比如Blender将它的场景数据存储为.blend文件,LightWave3D将它的场景数据存储为.lws文件,3ds Max将它的场景数据存储为.max文件,Maya将它的场景数据存储为.ma文件。

为了渲染来源不同的3D内容,应用程序需要能够读取这些个数不同的3D数据文件。为了进行渲染,场景数据和3D几何数据需要转换为图形API可以接受的形式,从而可以被传输到显卡上进行渲染。通常,如下图所示,应用程序为此需要编写导入程序、加载程序。

4cf4b99d2ef1806a12ff7b03dbab82b5.png
图1b:3D内容创建管线

glTF:一个3D场景数据格式

glTF格式的目标是为3D内容的数据格式提供统一的标准,方便应用程序读取进行渲染。目前来说已经存在的3D数据格式不是没有包含场景数据,就是包含一些只能用于特定创作软件的数据,许多时候,需要对几何数据进行预处理才能直接用于渲染。

目前而言,现存的3D数据格式不能够方便地在互联网上进行传输,以及直接高效地进行渲染。glTF的目标是作为一个中转格式,而不是另一个新的3D数据格式:

  • 使用JSON来描述场景结构,可以方便地被应用程序分析处理。
  • 3D数据以一种可以被大多数图形API直接使用的方式进行存储,不需要应用程序进行解码或预处理操作。

现在已经有一些3D内容创作软件可以将3D场景以glTF格式进行存储。一些应用程序也可以直接进行glTF场景数据的渲染。图1a给出了部分支持glTF数据格式的应用程序。如图1c,glTF可以作为3D内容创作软件和渲染应用程序之间的桥梁。

a39bcf2b60a2d2458b97cc88a632890a.png
图1c:使用glTF作为3D内容管线的一部分

越来越多的3D内容创作软件开始支持glTF数据格式。对于其它格式的已有的3D数据可以通过下面的工具进行转换。

KhronosGroup/glTF​github.com
b24bb7e68a29a7e1cc6c202f646aa689.png

几乎所有的3D内容创作软件都支持导出场景到COLLADA格式,所以,我们可以使用COLLADA2GLTF工具来将场景数据转换为glTF格式。.OBJ文件可以使用obj2gltf进行转换。对于其它数据格式,可以通过深度定制完成到glTF格式的转换。


fangcun:glTF格式详解(目录)​zhuanlan.zhihu.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值