Three.js – Change Material on Runtime

J'ai des fichiers .js exportés de Blender et les charger avec THREE.JSONLoader();

Mon rappel:

 var callback = function( geometry ) { createMesh(geometry); 

Mon chargement:

 loader.load( "Models/sculp.js", callback ); 

Ma méthode de création:

 function createMesh(geometry){ inArr[id] = new THREE.Mesh( geometry, new THREE.MeshLambertMaterial( { color: 0xbbbbbb} ) ); inArr[id].scale.set( 100, 100, 100 ); scene.add( inArr[id] ); id++; } 

Maintenant, je souhaite modifier mon matériel en cours d'exécution en utilisant mon clavier (change de couleur et d'opacité).

Comment puis je faire ça?

Lorsque vous créez un nouveau matériau pour chaque maillage, je suppose que vous souhaitez seulement modifier la couleur d'un maillage et non pas tout dans le tableau inArr , et vous avez probablement besoin d'une sorte de sélection pour cela. Mais changer la couleur du matériau seul est assez facile:

 var onKeyDown = function(event) { if (event.keyCode == 67) { // when 'c' is pressed object.material.color.setHex(0xff0000); // there is also setHSV and setRGB } }; document.addEventListener('keydown', onKeyDown, false); 

object est le maillage que vous souhaitez modifier. Les codes clés peuvent être trouvés ici: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes