标签:文件 1.0 accessors bufferView 0.5 glTF 直观 GLTF
前言
GLTF 把几何数据都存到了 bin 文件里面,数据量是变少了,但是可读性也变差了。有什么办法,可以查看里面的具体数据呢?有时候从某软件把数据导出成 GLTF 格式,发现少了一些几何图形或者是纹理不对,如何找到具体问题呢?
解决方案
用官方的 GLTF-Viewer 来查看:https://github.com/KhronosGroup/glTF-Sample-Viewer
下面用简单的贴图立方体做例子,看看它的数据是如何从 gltf 文件中读取的。
找到它对应的文件位置:
https://github.com/KhronosGroup/glTF-Sample-Models/blob/master/2.0/BoxTextured/glTF/BoxTextured.gltf
截取 meshes
和 accessors
:
"meshes": [
{
"primitives": [
{
"attributes": {
"NORMAL": 1,
"POSITION": 2,
"TEXCOORD_0": 3
},
"indices": 0,
"mode": 4,
"material": 0
}
],
"name": "Mesh"
}
],
"accessors": [
{
"bufferView": 0,
"byteOffset": 0,
"componentType": 5123,
"count": 36,
"max": [
23
],
"min": [
0
],
"type": "SCALAR"
},
{
"bufferView": 1,
"byteOffset": 0,
"componentType": 5126,
"count": 24,
"max": [
1.0,
1.0,
1.0
],
"min": [
-1.0,
-1.0,
-1.0
],
"type": "VEC3"
},
{
"bufferView": 1,
"byteOffset": 288,
"componentType": 5126,
"count": 24,
"max": [
0.5,
0.5,
0.5
],
"min": [
-0.5,
-0.5,
-0.5
],
"type": "VEC3"
},
{
"bufferView": 2,
"byteOffset": 0,
"componentType": 5126,
"count": 24,
"max": [
6.0,
1.0
],
"min": [
0.0,
0.0
],
"type": "VEC2"
}
],
对于一个立方体,它的表示包括:
- 索引
indices
- 法向量
NORMAL
- 位置
POSITION
- 纹理坐标
TEXCOORD_0
这些步骤都在:https://github.khronos.org/source/Renderer/webgl.js
用浏览器打开:https://github.khronos.org/glTF-Sample-Viewer-Release/
按 F12 进入调试模式。
获取索引号:
对应上文中的 accessors
第0号元素。
获取法向量:
对应上文中的 accessors
第1号元素。
获取位置:
对应上文中的 accessors
第2号元素。
或者纹理坐标:
对应上文中的 accessors
第3号元素。
从中可以看出获取法向量、位置和纹理坐标用的是同一种方法,从文件中也可以看出他们都是 primitives
的 attributes
。
结论
GLTF 作为一种开放格式,提供的 viewer 是一个很棒的工具。要好好利用起来解决日常工作中遇到的问题。
标签:文件,1.0,accessors,bufferView,0.5,glTF,直观,GLTF 来源: https://blog.csdn.net/weixin_44153630/article/details/115428211
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。