Three.JS UTF8加载器

Three.JS UTF8加载器,three.js,Three.js,我试图在Three.JS中显示一个3D模型,该模型已使用Won的WebGL Loader()转换为UTF8格式。我不知道如何将WebGL Loader输出的元数据转换为Three.JS所期望的元数据,而谷歌搜索和通读源代码并没有带来任何洞察。WebGLLoader的输出和Three.JS的输入要求如下所示 WebGL加载程序输出: MODELS['abc_normals.obj'] = { materials: { }, decodeParams: { decodeOffse

我试图在Three.JS中显示一个3D模型,该模型已使用Won的WebGL Loader()转换为UTF8格式。我不知道如何将WebGL Loader输出的元数据转换为Three.JS所期望的元数据,而谷歌搜索和通读源代码并没有带来任何洞察。WebGLLoader的输出和Three.JS的输入要求如下所示

WebGL加载程序输出:

MODELS['abc_normals.obj'] = {
  materials: {
  },
  decodeParams: {
    decodeOffsets: [-8192,-88,-2278,0,0,-511,-511,-511],
    decodeScales: [0.012115,0.012115,0.012115,0.000978,0.000978,0.001957,0.001957,0.001957],
  },
  urls: {
    'abc_normals.utf8': [
      { material: '',
        attribRange: [0, 8288],
        indexRange: [66304, 14914],
        bboxes: 111046,
        names: ['default', ],
        lengths: [44742, ],
      },
    ],
  }
};
3.JS要求:

{ scale: 0.815141, offsetX: -0.371823, offsetY: -0.011920, offsetZ: -0.416061 }

您是否像webgl loader的首页所推荐的那样使用r50?我认为之后的输出与three.js加载程序不兼容。

您列出的输出是javascript数据结构,但three.js需要JSON。要使此json有效,需要如下所示:

{
  "materials": {
  },
  "decodeParams": {
    "decodeOffsets": [-8192,-88,-2278,0,0,-511,-511,-511],
    "decodeScales": [0.012115,0.012115,0.012115,0.000978,0.000978,0.001957,0.001957,0.001957],
  },
  "urls": {
    "abc_normals.utf8": [
      { "material": "",
    "attribRange": [0, 8288],
    "indexRange": [66304, 14914],
    "bboxes": 111046,
    "names": ["default", ],
    "lengths": [44742, ],
      },
    ],
  }
};
自动转换可以通过加载JS然后将模型保存为JSON来实现。您可以在Chrome或Firef中尝试此功能

MODELS={}
(insert your .js here)
JSON.stringify(MODELS)

我尝试了那个版本,得到了如下输出,但它的形式与Three.js所期望的不太一样-偏移量:[77.663857,0.552530,27.608030,-0.000000,-0.000000,-0.000000,-1.000000,1.000000,1.000000,1.000000,1.000000,1.000000,1.000000],比例:[.835129182.835129,1.000000,2.000000,2.000000],位:[,14,14,10,10,10]我还想补充一点,当您下载threejs时,有一个转换器目录,其中有一个webgl loader版本,可以正常工作。