Sto creando un cubo e fare domanda 6 trame diverse per ognuno di esso è volti. Ogni texture è un file .png e contiene parti trasparenti. Sto anche applicando un colore al cubo - Voglio vedere quel colore attraverso la trasparenza png.Three.js png texture - alfa rende come nero anziché trasparente
Problema: La trasparenza rende come colore bianco, quindi non posso vedere il colore di base del cubo (che rende ok se mi tolgo la tessitura png)
Come posso far funzionare la trasparenza PNG? Ho provato a giocare con alcune impostazioni del materiale ma nessuna la rende trasparente.
codice per la creazione del cubo e materiali:
var geometry = new THREE.CubeGeometry(150, 200, 150, 2, 2, 2);
var materials = [];
// create textures array for all cube sides
for (var i = 1; i < 7; i++) {
var img = new Image();
img.src = 'img/s' + i + '.png';
var tex = new THREE.Texture(img);
img.tex = tex;
img.onload = function() {
this.tex.needsUpdate = true;
};
var mat = new THREE.MeshBasicMaterial({color: 0x00ff00, map: tex, transparent: true, overdraw: true });
materials.push(mat);
}
cube = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
cube.position.y = 150;
scene.add(cube);
EDIT:
immagine qui sotto mostra il problema - con la soluzione senthanal la texture sinistra ora rende ok - si tratta di una png immagine senza trasparenza - Ho impostato la trasparenza nel codice con
materialArray.push(new THREE.MeshBasicMaterial({ map: THREE.ImageUtils.loadTexture('img/s2.png'), transparent: true, opacity: 0.9, color: 0xFF0000 }));
La texture corretta è anche un'immagine png - solo che ha un'area trasparente (tutto ciò che rende il bianco dovrebbe essere rosso puro poiché è trasparente e dovrebbe prendere il colore dal cubo?). Come posso rendere trasparente quella parte bianca?
duplicati di http://stackoverflow.com/questions/12368200/displaying-background-colour-through-transparent -png-on-material (se vuoi che il colore di sfondo sia opaco) – WestLangley
@WestLangley - sì - non so come mi sia persa quella domanda visto che ho letto le risposte su three.js per tutto il giorno. Risolve il mio problema - chiudendo come duplicato. – easwee