生活
gltf 、gltf文件
2023-04-05 02:02  浏览:58

gltf模型详解

模型加载顺序为,先加载gltf文件,然后解析依次读取scenes、nodes、meshes、accessors、bufferViews、buffers、materials、textures、images。其中每个mesh包括一个bufferViews和一个materials。每一层的递进都有数组下标来确定。

一般模型只有一个也是默认场景,如果是多个,则根据对应的scene字段确定哪一个是默认场景,参考数据结构部分的数据,每一个scene都包含一个nodes字段,指定了scene的根结点。本例中nodes对应的值为0,代表根节点为nodes字段下对应的***个元素。

nodes用来组装模型层级,***个节点是父节点,children字段指定它所包含的子节点。

nodes节点分为俩种,一种是有children字段的,最终会渲染成group,一种是有mesh字段的最终渲染为mesh,mesh字段的值为meshes数组的小标。

网,由多个面和材质组成,通过primitives字段指定。

访问器是链接bufferView和mesh之间的桥梁,主要作用是对bufferView中数据进行进一步描述

总的流程如下图

模型的内存占用主要包括四个部分,分别是内存、gpu、图片缓存、cpu,其中主要决定性能的是gpu和图片缓存

对于gpu占用主要有一个问题,如何计算一个模型的gpu占用,有没有公式可以算出来?针对这个问题就需要搞明白那些因素决定gpu占用。

为了方便计算,我们用面替换点,一个最多对应3个点因此可得

仔细观察数据表,大致可以得出绘制一个面的所占有的内存在0.8kb-3.1kb之间,我们取***值并向上取整,可以大致按每个面3.1k的内存去估算

最终可得出:

(T代表单个材质,faces代表模型总面数)

图片缓存有很多文章说明,基本公式是

图片缓存其实是纹理缓存,对于场景切换,需要注意注销纹理,释放图片缓存。

有了上面的内存占用,性能优化的点就比较清晰了

如果不追求过高的效果,可以直接减小图片尺寸,如果对与效果要求很高,可以采用压缩纹理技术

Vue中three.js导入gltf模型文件时报错

在vue项目中导入gltf/glb模型文件的时候出错了。

1、gltf模型文件被加密了

2、draco压缩了

而我加载的gltf文件不是加密的,所以***个原因pass掉,那么就是draco压缩了。解决的方法是,在vue项目中,我们需要将draco文件夹复制一份到public目录下,不然在加载gltf/glb资源的时候就会报以上的错。

如何打开GLTF文件

这种情况恐怕是操作失误,将文件的后缀名给删除了,机器不知道该用什么程序来打开这个文件。

以前打开过这个文件或是这类的文件吗?是用的什么程序打开的?可以先打开应用程序,再试着用来打开这个文件。如果试出来了,能打开了。再照下面操作:

随便打开一个文件夹,工具-文件夹选项-查看,确认“隐藏已知文件的扩展名”选项未被勾选

,根据应用程序支持的文件类型,给这个文件添加相应的后缀名,

3D文档中性通用格式有哪些

3D文档中性通用格式有fbx、gltf、ifc、iges、igs

fbx:FBX文件,又称欧特克FBX交换文件格式,是在电影界及视频游戏开发最常用的一种流行的专有的文件格式。它支持有关几何形状和外观存储信息,而且还可以支持变种和骨骼动画。

gltf:GLTF文件代表一个3D保存在glTF(三维)模型(GL传输格式)。此外,该GLTF文件存储描述符网格和动画的数据。

ifc:以IFC为文件扩展名的是3D图形,CAD-CAM-CAE文件与该IFC(工业基础类)格式,其是一种开放文件格式创建类型。 BIM程序(建筑信息建模程序)使用IFC文件甲酸,因为它包括类似的材料,空间元素,和形状的建筑物的模型。

iges:IGES代表国际图形交换标准,国际标准的3D线框模型。 IGES文件保存在文本格式,因此它可以在不同的程序之间很容易被转移。

igs:IGS是基于用于CAD系统之间交换信息的初始图形交换规范(IGES)的文件的图形文件格式。该文件与2D和3D图形,并保存为文本格式。

关于gltf和gltf文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发表评论
0评