如何在框架中加载.glb模型?

时间:2018-09-17 10:32:30

标签: three.js aframe gltf

我正在尝试使用.glb组件在a帧中加载gltf-model个模型,但是出现以下错误;

components:gltf-model:warn Unexpected token g in JSON at position 0

基于文档here和讨论here,我相信我做得正确。请在下面查看我的代码。

  <a-scene>
      <a-assets>

        <a-asset-item 
          id="glbtestmodel"
          src="https://cdn.glitch.com/90a30469-f038-4054-be9c-fd1ec94a810d%2Fkitchentest.glb?1537178470645">
        </a-asset-item>

      </a-assets>

      <a-entity 
          id="glbtest"
          gltf-model="#glbtestmodel"
          position="0 1 -2">
      </a-entity>

    </a-scene>

使用框架8.2

https://aframe.io/releases/0.8.2/aframe.min.js

您会看到该here的故障。

我使用Vectary导出模型,并且从那里导出的gltf模型始终使用与预期相同的技术。

作为从vectary导出.glb的替代方法,我尝试将模型导出为gltf,然后使用建议的工具,例如thisthis进行转换。结果是一样的。

我以任何方式导出的每个模型,都使用this gltf-viewer tool进行检查,并且没有错误。我已经打开文件,它们以应有的2.0格式。

为响应该错误,我还尝试打开.glb文件并对其进行修改,以除去初始字符,以使其与gltf文件的开头匹配,但是只会产生不同的错误。

这是一个已知问题吗?还是我做错了什么?

可以通过上面的代码示例使用所讨论的模型,但为了方便起见,请使用here is a direct link

如果您需要我提供更多信息以帮助建议,请告诉我。

1 个答案:

答案 0 :(得分:1)

使用https://cdn.glitch.com/90a30469-f038-4054-be9c-fd1ec94a810d%2Fkitchentest.glb代替https://cdn.glitch.com/90a30469-f038-4054-be9c-fd1ec94a810d%2Fkitchentest.glb?1537178470645。加载程序使用文件扩展名来确定文件是JSON(gltf)还是二进制(glb)。该数字会混淆解析器并通过JSON路径,这就是为什么您收到components:gltf-model:warn Unexpected token g in JSON at position 0消息

的原因