Tworzę sześcian i stosuję 6 różnych tekstur na każdej z jego twarzy. Każda tekstura jest plikiem .png i zawiera przezroczyste części. Stosuję również kolor do sześcianu - chcę zobaczyć tę przezroczystość koloru korytka png.Three.js png texture - renderowanie alfa jako białe zamiast przezroczystego
Problem: Przejrzystość renderuje jako białego koloru, więc nie mogę zobaczyć kolor bazowy sześcianu (który renderuje ok jeśli usunąć tekstury PNG)
Jak mogę uczynić PNG pracy przezroczystości? Próbowałem grać z niektórymi ustawieniami materiału, ale żaden nie uczynił go przezroczystym.
Kod do tworzenia kostkę i materiały:
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:
Obrazek poniżej przedstawia problem - roztworem senthanal lewej tekstury teraz czyni ok - to png obraz bez przezroczystości - ustawiam przezroczystość w kodzie za pomocą
materialArray.push(new THREE.MeshBasicMaterial({ map: THREE.ImageUtils.loadTexture('img/s2.png'), transparent: true, opacity: 0.9, color: 0xFF0000 }));
Prawa tekstura jest również obrazem png - tylko że ma przezroczysty obszar (wszystko, co powoduje, że biały powinien być czysty czerwony, ponieważ jest przezroczysty i powinien zabrać kolor z kostki?). Jak mogę uczynić tę białą część przezroczystą?
Duplikat http://stackoverflow.com/questions/12368200/displaying-background-colour-through-transparent -png-on-material (jeśli chcesz, aby kolor tła był nieprzezroczysty) – WestLangley
@WestLangley - tak - nie wiem jak przegapiłem to pytanie, ponieważ czytałem odpowiedzi na temat three.js przez cały dzień. Rozwiązuje mój problem - zamykanie jako duplikat. – easwee