glTF学习笔记(1)——glTF Tutorials/Introduction

https://github.com/KhronosGroup/glTF-Tutorials/blob/master/gltfTutorial/gltfTutorial_001_Introduction.md

Introduction to glTF using WebGL

3D content pipelines

3D图形文件格式有很多种,不同的格式可适用于不同的目的和应用场景。

为了渲染这些(这里没有这些哈哈哈)3D内容,运行时,应用程序必须能够读取不同的输入文件格式。场景结构必须是可以解析的,并且要将3D几何数据转换成图形API(graphics API)所需的格式。要将3D数据传输到显卡内存(graphics card memory),然后就可以调用一系列的图形API,实现渲染。因此,每个运行的应用必须为各种其知识的文件格式创建导入器(importers)、加载器(loaders)或转换器(converters)。

Image 1: The 3D content pipeline today

简而言之,就是现在有很多种3D的数据格式,用起来很不方便blablablabla,所以就要引入“猛男标准”——glTF,拯救世界(不是)。

glTF: A transmission format for 3D scenes

glTF的目标就是定义一种可以展现3D内容的标准,可以适用于运行程序(runtime applications)。现有的数据格式都不适用于这种使用场景:有的没有场景信息,只有几何数据;有的在设计之初就是为了程序编写应用(authoring application)间交换数据,它们的主要目标是保留尽可能多的三维场景数据,结果呢它们的文件就变得非常的大,非常的复杂,而且难以解析。而且,那些几何数据往往要先被重新预处理,然后客户应用才能进行渲染。(还是在说现有的一些文件格式的弊端,凸显了glTF的伟大光辉)

没有一种已有的文件格式是为了在网页间高效传输、高效渲染3D场景而设计的。然而,glTF不是又一个的“那种数据”(glTF和其他的妖艳贱货是不一样滴,它更优秀,更高效)。它定义了三维场景的传输格式:

  • The scene structure is described with JSON, which is very compact and can easily be parsed.
  • The 3D data of the objects are stored in a form that can be directly used by the common graphics APIs, so there is no overhead for decoding or pre-processing the 3D data.
  • 用JSON描述情景结构,既紧凑,又便于解析。
  • 对象的3D数据用一种可以直接被常见的图形API使用的格式存储,也就不存在解码或预处理3D数据的开销。

不同的内容创造工具现在很多都可以提供glTF格式的3D内容了。越来越多的客户应用支持使用和渲染glTF。glTF有助于连通内容创造和渲染。(原来的就是用一个工具生成了三维数据,以一种特殊的数据格式表示,需要渲染时可能需要进行较为繁琐的解析或预处理操作,不是很方便,效率也不高,但是如果有了glTF,在生产数据时就生成glTF格式的数据,渲染时也用glTF数据,这样就很高效啦~所以说glTF架起了数据生成和渲染间的桥梁。)glTF的伟大作用详见图2。

Image 2: The 3D content pipeline with glTF

越来越多的内容创造工具支持直接提供glTF。或者,通过使用开源的转换工具,可将其他的文件格式转换成glTF。

开源的转换工具详见这里:https://github.com/KhronosGroup/glTF#converters

比如,几乎所有的编程程序都支持将场景输出为COLLADA 格式,COLLADA2GLTF工具就可以用于将场景和模型转换成glTF格式。使用obj2gltf可以将OBJ文件转换成glTF……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值