来自3D世界的JPEG。 什么是glTF?

定义和简要历史


GLTF(GL传输格式)是一种用于存储3D场景和模型的文件格式,它非常易于理解(结构以JSON标准编写),可扩展且易于与现代Web技术交互。 这种格式可以很好地压缩三维场景,并最小化使用WebGL和其他API对应用程序的运行时处理。 Khronos集团现在正积极地将glTF作为3D世界中的JPEG进行推广。


GlTF被认为是一种高效,兼容的资产交付格式,可以压缩3D场景的大小并最小化使用WebGL和其他API的应用程序对运行时的处理。 glTF还为3D内容工具和服务定义了一种通用的发布格式。


首次提及glTF可以追溯到2012年,但是随着glTF 1.0规范的发布,它从2015年10月19日开始使用。 目前,使用的是规范的第二版(glTF 2.0),该版本于2017年3月3日发布。接下来,我们仅讨论glTF 2.0。
这种格式的内部的详细说明可以在我后续的出版物中找到: 第一部分第二部分


glTF的基础及其优势


glTF基于2个文件:用于描述整个3D场景的结构的JSON和用于存储场景中所有数据的二进制文件,包括可以“缝合”到二进制文件或由外部文件存储的纹理贴图。 glTF还有一个二进制版本,称为GLB,其唯一区别是所有内容都存储在扩展名为GLB的1m文件中。
作为glTF的其他优点,您可以突出显示:


  • 3D场景结构中对象的清晰层次
  • 存储场景信息,例如光源和摄像机
  • 支持骨骼动画(关节动画)
  • 更可靠的材质和着色器。

如果将glTF和COLLADA进行比较,它们所支持的功能非常相似,但是请记住glTF主要是一种“传输格式”,其无疑的优势将是与Web技术的良好兼容性。 打个比方,我将使用.PSD(Adobe Photoshop)和.JPG格式。 第一种方法可以很好地编辑源材料,但是对于Internet上的存储和使用,尽管如此,它们还是使用JPG。


如今,3D的来源完全不同,每种来源都有自己的格式。 并非用户需要所有信息,也不是可以在其应用程序中打开所有格式。 必须分析场景结构,将3D几何数据转换为图形API所需的格式。 必须将3D数据传输到视频卡的内存中,然后可以使用对图形API的连续调用来描述渲染过程。 结果,每个可执行应用程序必须为其支持的所有文件格式创建自己的导入器,下载器或转换器,如幻灯片所示。


图片


GLTF格式定义了一种标准,用于以适合在运行时在应用程序中使用的形式表示3D内容。 现有的格式不太适合通过Internet传输:某些格式仅包含有关几何的信息,某些格式绝对包含所有内容,结果体积太大且难以分析,更不用说实时(运行时)运行了。


GLTF旨在解决此问题。 这不是“另一种文件格式”,其中已经有很多文件格式,这是3D场景传输格式的定义!


JSON描述的场景结构可以轻松分析,3D数据以图形API易于读取和直接使用的形式存储,因此无需解码或预处理3D数据。 这样,GLTF可以帮助弥合内容创建和渲染之间的鸿沟。


图片

Source: https://habr.com/ru/post/zh-CN436686/


All Articles