Uncaught TypeError: Не може да се прочете свойството 'map' на недефинирана версия Three.js 62

Може ли някой да ми помогне по този въпрос за three.js версия 62, когато използвам THREE.GeometryUtils.merge(obje, mesh); метод ..


person Ajay Shah    schedule 20.11.2013    source източник


Отговори (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