Може ли някой да ми помогне по този въпрос за three.js версия 62, когато използвам THREE.GeometryUtils.merge(obje, mesh); метод ..
Uncaught TypeError: Не може да се прочете свойството 'map' на недефинирана версия Three.js 62
Отговори (1)
Получих същата грешка, когато се опитах да използвам MeshFaceMaterial с обединената мрежа. В моя случай трябваше да променя materialIndex на всяко лице на куба, който обединих.
Предположих, че CubeGeometry по подразбиране използва materialIndex=0 за всички лица. Не става! Всяка страна на куба има свой собствен индекс.
Разгледайте тази цигулка: http://jsfiddle.net/ThPPA/4/
var materials = [
new THREE.MeshBasicMaterial({
color: 0x00ff00
}),
new THREE.MeshBasicMaterial({
color: 0xffff00
}),];
var dummy = new THREE.Geometry();
var geometry = new THREE.CubeGeometry(1, 1, 1);
for(var i = 0; i < geometry.faces.length; i++) {
geometry.faces[i].materialIndex = 0;
}
var cube1 = new THREE.Mesh(geometry);
cube1.position.x -= 1;
THREE.GeometryUtils.merge(dummy, cube1, 0);
var cube2 = new THREE.Mesh(geometry);
cube1.position.x += 1;
THREE.GeometryUtils.merge(dummy, cube2, 1);
var material = new THREE.MeshFaceMaterial(materials);
var mesh = new THREE.Mesh(dummy, material);
scene.add(mesh);
person
l3dx
schedule
19.01.2014