5

BlenderとThree.jsで作成されたモデルを使用しようとしています。モデルは非常に基本的で、2つの立方体が重なり合っています。1つの立方体は赤で、もう1つの立方体は緑です。

次のようにオブジェクトにマテリアルを手動で割り当てると、Three.jsのBlenderエクスポータープラグインを使用してモデルをエクスポートしました。

loader.load("model.js", function ( geometry, material ) {

    material = new THREE.MeshBasicMaterial( { color: 0xFF0000 } );

    mesh = new THREE.Mesh( geometry, material);

    scene.add(mesh);

    animate();

});

https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/index.htmlに示されているように問題はありません

ただし、行を削除すると、次のようになります。

material = new THREE.MeshBasicMaterial( { color: 0xFF0000 } );

モデルの素材が使用されます。これはThree.jsのエラーを生成します:

TypeError:プログラムが未定義です[このエラーで中断]

p_uniforms = program.uniforms、

これは、 https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/index2.htmlで確認できます。

誰かがこの問題を引き起こす可能性のある考えを持っていますか?Blenderファイルはhttps://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/model.blendからダウンロードできます。

4

1 に答える 1

9

簡単。材料は配列です。次のことを行う必要があります。

loader.load( "model.js", function ( geometry, materials ) {

    mesh = new THREE.Mesh( geometry, materials );

    scene.add( mesh );

    animate();

} );

three.js r.88

于 2013-02-06T15:21:58.780 に答える