ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

GLTF: 如何直观地看到文件中的数据内容

2021-04-04 15:31:37  阅读:280  来源: 互联网

标签:文件 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
截取 meshesaccessors

    "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"
        }
    ],

对于一个立方体,它的表示包括:

  1. 索引 indices
  2. 法向量 NORMAL
  3. 位置 POSITION
  4. 纹理坐标 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号元素。

从中可以看出获取法向量、位置和纹理坐标用的是同一种方法,从文件中也可以看出他们都是 primitivesattributes

结论

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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有