javascript - texture - three js rotation
Three.js-Cambiar material en Runtime (1)
Tengo algunos archivos .js exportados desde Blender y los cargo con THREE.JSONLoader();
mi devolución de llamada:
var callback = function( geometry ) { createMesh(geometry);
mi carga:
loader.load( "Models/sculp.js", callback );
mi método de creación:
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++;
}
Ahora quiero cambiar mi material en tiempo de ejecución usando mi teclado (cambia de color y opacidad).
¿Cómo puedo hacer eso?
Al crear un nuevo material para cada malla, asumo que solo desea cambiar el color de una malla y no de todas en la matriz inArr
, y probablemente necesite algún tipo de selección para eso. Pero cambiar el color del material solo es bastante fácil:
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
es la malla que quieres cambiar. Los códigos clave se pueden encontrar aquí: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes