GLTF Loader,GLTE格式的WebGL加载引擎

PHPABC Html5 10,716 次浏览 , 没有评论

COLLADA2GLTF

果使用比较标准的COLLADA的话文件肯定太大,不适合网络传输,比如下面图二中的Mini cooper模型用collada高达141mb,而且基于XML的格式解析起来又会比较慢。

collada的working group的又提出了一个比较适合WebGL的文件传输格式,glTF,在这次SIGGRAPH的COLLADA BOF上也有讲, 简单来说这货就是COLLADA的精简JSON版,按作者的话来说这个标准更加贴合WebGL和OpenGL ES2.0的绘制命令(Map Well to the GL APIs),而且基于JSON后更加Web Friendly。

尽管还只是一个非常草案的标准,但是因为已经提供了一个collada转成gltf的converter,所以已经是可以拿来用了,尽管以后标准的改动可能会非常大,但是有个标准总是好的。

下面图一是用glTF做模型格式的工作流,首先从传统的DCCTools例如blender,3dsmax导出COLLADA的文件,然后用converter转成glTF的格式,转换后会有下面三种文件

*.json 描述整个场景的json文件,可以直接在编辑器中编辑。

*.bin 存储所有顶点的二进制文件,在js中可以直接用BufferView创建,非常快(这点也是标准中强调的一点),而且因为是用二进制存储,所以glTF会比纯文本的COLLADA小很多。

*.jpg, ***.png** 所有浏览器能够解析的纹理文件。

下面图二的Mini cooper就是使用转换后的glTF,binary+json总共56M,只有COLLADA的1/3。

图三是自己在blender里撸的一个测试场景,包括透明物体,材质,纹理,摄像机,灯光等等,还有个PCF的软阴影。

最后Minicooper的demo地址 http://pissang.github.io/qtek/minicooper/

6d3f08cbtw1e7vl8zwl6rj20zk0k6ad9

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Go