一、什么是glTF
glTF是一种3D内容的格式标准;
glTF的设计是面向实时渲染应用的,尽量提供可以直接传输给图形API的数据形式,不再需要二次转换;
通俗来讲,我们可以理解他为3D领域的JPEG;
glTF使用一组通用的参数来定义基于物理渲染(PBR)的材质; 更多关于glTF的介绍还可以查看https://www.khronos.org/gltf/
glTF™ (GL Transmission Format) is a royalty-free specification for the efficient transmission and loading of 3D scenes and models by engines and applications. glTF minimizes the size of 3D assets, and the runtime processing needed to unpack and use them. glTF defines an extensible, publishing format that streamlines authoring workflows and interactive services by enabling the interoperable use of 3D content across the industry.
glTF™(GL Transmission Format)是一个免版税的规范,用于通过引擎和应用程序高效传输和加载3D场景和模型。glTF最小化了3D资产的大小,以及解包和使用它们所需的运行时处理。glTF定义了一种可扩展的发布格式,通过支持在整个行业内对3D内容的互操作使用,该格式简化了创作工作流和交互式服务。
二、获得glTF格式的模型
1、 3D max
1.1安装插件Max2Babylon 下载地址:
1.2下载插件后,将其放在合适的位置并解压
1.3默认情况下,Windows会阻止来自web的所有.dll文件,因此我们必须取消阻止它们。选择.zip文件,右键单击选择”属性”,选择”解除锁定”,然后单击”应用”
1.4在电脑上解压插件文件,并打开与你需要安装的3Dmax版本对应的目录。关掉你电脑上正在运行的3Dmax软件(如果该软件正在的话),并将目录下的所有.dll文件复制到3Dmax的安装目录下(max的安装目录/bin/assemblies中)。下次启动3Dmax时,插件将会自动启动,并显示一个新选项卡。
1.5 glTF文件导出
选择菜单栏”Babylon”-“Babylon File Exporter…”
Output format :导出格式,点击选择gltf文件格式
Model name:导出文件存档位置,自行制定一个文件夹
Textures folder:材质贴图文件存档位置,请与gltf文件指定为同一文件夹位置
Options类下说明
Export Materials:导出材质(勾选)
Export Textutrs:导出贴图(勾选)
Export Animations:导出动画(视情况勾选)
Export hidden objects:导出隐藏物体(建议不要勾选)
Export only selected:仅导出选择物体(勾选,并且导出时在软件中选中要导出的模型部分)
补充:
2.glTF动画分段设置
2.1 右键单击场景,选择”Babylon”-“Babylon Animation Groups”
2.2 单击”Create”新增动画分段,输入开始和结束的帧数,然后点击”Add Viewport Selection”并点击”Confirm”确认分段;
2.3设置好分段后,导出的gltf文件便分成4段。
三、使用Blender软件导出glTF模型
Blender软件的下载地址https://ftp.nluug.nl/pub/graphics/blender/release/Blender2.92/
支持可导入的文件格式
Collada(默认)(.dae)、Alembic(.abc)、Motion Capture(.bvh)、Scalable Vector Graphics(.svg)、Stanford(.ply)、Stl(.stl)、FBX(.fbx)、glTF2.0(.glb/.gltf)、Wavefront(.obj)、X3D Extensible 3D(.x3d/.wrl)
支持可导出的文件格式
Collada(默认)(.dae)、Alembic(.abc)、通用场景描述(.usd,.usdc,.usda)、Stanford(.ply)、Stl(.stl)、FBX(.fbx)、glTF2.0(.glb/.gltf)、Wavefront(.obj)、X3D Extensible 3D(.x3d)
点击菜单栏上的”文件”-“导出”-“glTF2.0(.glb/.gltf)”
导出设置中有三种导出格式
glTF二进制(.glb)这个二进制格式存储glTF的组件(JSON,.bin 以及图片) . 同时也避免了用glTF格式文件变大的问题. 通过压缩, GLB能更快地加载, 提供完整的三维场景, 且是能在未来的开发中扩展的。
glTF嵌入式(.gltf)类似于fbx文件,将贴图文件和模型顶点文件保存成一个整体
glTF分离(.gltf+.bin+纹理)类似于obj+mtl格式的文件,贴图文件与模型顶点文件分开保存
blender里面的压缩使用的Google的draco压缩方式,加载时需要进行单独的解压缩配置