2

Won の WebGL Loader ( http://code.google.com/p/webgl-loader/ )を使用して UTF8 形式に変換された Three.JS で 3D モデルを表示しようとしています。WebGL Loader から出力されたメタデータを Three.JS が期待するものに変換する方法がわかりません。また、Google 検索を行ってソースを読んでも、何の洞察も得られませんでした。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, ],
      },
    ],
  }
};

Three.JS の要件:

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

2 に答える 2

1

webgl-loader のフロント ページが推奨するように、r50 を使用していますか? その後の出力はthree.jsローダーに対応していないと思います。

于 2012-07-29T15:19:04.927 に答える
0

リストした出力は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)
于 2015-02-28T01:00:25.983 に答える