2013-02-06 7 views
5

Sto provando a utilizzare un modello creato con Blender con Three.js Il modello è molto semplice, due cubi uno sopra l'altro. Un cubo è rosso e l'altro è verde.Materiali nel modello di Blender esportato per Three.js non funzionante

Ho esportato il modello utilizzando il plug Blender esportatore di Three.js Quando assegno manualmente un materiale all'oggetto come:

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

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

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

    scene.add(mesh); 

    animate(); 

}); 

v'è alcun problema come mostrato in https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/index.html

Tuttavia quando Rimuovere la riga:

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

viene utilizzato il materiale del modello. Il che produce un errore di Three.js:

TypeError: program is undefined [Break On This Error]

p_uniforms = program.uniforms,

Si può vedere questo per voi stessi a https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/index2.html

Qualcuno ha un'idea che cosa potrebbe causare questo problema? Puoi scaricare il file Blender al numero https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/model.blend

risposta

9

Facile. I materiali sono una matrice. È necessario effettuare le seguenti operazioni:

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

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

    scene.add(mesh); 

    animate(); 

}); 

Three.js r.88

+1

Grazie, nel mio esempio dei cubi è diventato nero. Prima dovevo aggiungere luci alla scena :) –