博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]GLTF-3D图形界的JPEG
阅读量:7280 次
发布时间:2019-06-30

本文共 1684 字,大约阅读时间需要 5 分钟。

GLTF简介

1.glTF(GL TransmissionFormat),即图形语言交换格式,它是一种3D内容的格式标准,由Khronos Group管理(Khronos Group还管理着OpenGL系列、OpenCL等重要的行业标准);

2.glTF的设计是面向实时渲染应用的,尽量提供可以直接传输给图形API的数据形式,不再需要二次转换;

3.glTF对OpenGL ES、WebGL非常友好;

4.glTF的目标是:3D领域的JPEG;

5.作为一个标准,自2015年10月发布(glTF 1.0)以来,已经得到了业界广泛的认可,你可以相信它的水平;

6.glTF目前最新版本为2.0已于2017年6月正式发布。

GLTF具体的数据存储格式可以去官方网站上看:https://www.khronos.org/gltf/,大概就是相对于XML的JSON存储方式。

 

文章关注的是GLTF给我们带来的便利——节约存储空间,减少带宽压力。

那么如何获得GLTF格式文件?

目前已经有了很多的转换工具:

 

其中Input代表输入模型的格式,输出为gltf格式。由于之前使用过Dae格式的文件(https://www.khronos.org/collada/),因此文章选取COLLADA2GLTF工具转换文件:

 

千万别纠结于工具源代码的编译,因为KhronosGroup已经给出了Release版本。这里说一些使用方法:

1.解压zip文件,在根目录新建dae文件夹——用于存放原始的dae文件

2.在根目录新建gltf文件夹——用于存放转换后的gltf文件

3.在根目录按住Ctrl+Shift+Alt+鼠标右键,打开PowerShell窗口

4.在命令行中输入:./collada2gltf-bin.exe input.dae output.gltf –i dae/input.dae –o gltf/output.gltf

其中input为dae文件的名称,output为输出gltf文件的名称。

5.Enter开始转换。

PS C:\Users\Ruby\Desktop\COLLADA2GLTF-v2.1.2-windows-Release-x64>./COLLADA2GLTF-bin.exe elf.dae elf.gltf -i dae/elf/elf.

dae -o gltf/elf.gltf

Convertingdae\elf\elf.dae -> gltf\elf.gltf

Time: 320 ms

原始dae文件包含4个jpg贴图一共2.46M,转换后为一个单独的gltf文件约1.38M(含贴图)。其实我很好奇那些贴图文件去哪儿了,于是打开了gltf文件查看,发现在image数组下已经把这些贴图文件用base 64编码,变成一堆机器码直接插在gltf文件中。

完成模型转换以后,利用ThreeJS的LoadGLTF API导入网页中浏览效果如下: 

如何在GLTF格式中捕获动画?

上述过程展示了从Collada到gltf的转换以及让gltf模型展示在网页上。下面将继续研究如何获取gltf模型的动画("Talk is cheap,show me the code"——哈哈哈) 

效果如图所示:

至此,gltf从模型到动画都run了一遍。

 

总结

GLTF格式号称3D图形界的JPEG,能够实现快速的模型数据交换。在2017年中旬更新的2.0版本克服了一些低版本的功能缺陷,使得自身功能得到发展;同时,gltf解析及转换Tool的快速发展,为GLTF的进一步推广做出了很多的贡献。文中也应证了,作为GLTF格式的用户,能够利用现有的工具对模型处理,减少模型的数据量,在WebGL的应用中在成倍地节省带宽的同时能够获取同质量的模型以及动画。

 

原文:https://cloud.tencent.com/developer/news/204942

 

转载于:https://www.cnblogs.com/opencascade/p/gltf.html

你可能感兴趣的文章
php访问mysql 封装
查看>>
C#开发微信门户及应用(20)-微信企业号的菜单管理
查看>>
Git介绍
查看>>
activiti入门
查看>>
Java——Ajax+Tomcat完成异步请求
查看>>
乱·语
查看>>
回头再说 001
查看>>
Winform开发框架中的内容及文档管理模块功能介绍
查看>>
【强化学习炼金术】李飞飞高徒带你一文读懂RL来龙去脉
查看>>
[Erlang 0098] net_kernel与节点互连,断开,监控
查看>>
stm32 加入 USE_STDPERIPH_DRIVER、STM32F10X_HD的原因
查看>>
利用GDAL进行工具开源化改造
查看>>
第一个ASP.NET
查看>>
2.2. mysqldump - a database backup program
查看>>
01-老马jQuery教程-jQuery入口函数及选择器
查看>>
分割工具——按字段属性
查看>>
c++ 11 移动语义、std::move 左值、右值、将亡值、纯右值、右值引用
查看>>
第 2 章 Spring Boot
查看>>
搭建Java环境JDK,和运行环境JRE
查看>>
Thinking in Java 4 : 一切都是对象
查看>>