Tre js ver67 qualcosa di codice attuale come questo -Tre js fusione Geometrie e Mesh
var materials = [];
var totalGeom = new THREE.Geometry();
var cubeMat;
for (var i = 0; i < dataSetArray.length; i++) {
var ptColor = dataSetArray[i].color;
var value = dataSetArray[i].value;
var position = latLongToVector3(dataSetArray[i].y, dataSetArray[i].x, 600, 1);
var cubeGeom = new THREE.BoxGeometry(5, 5, 1 + value/20);
cubeMat = new THREE.MeshLambertMaterial({
color: new THREE.Color(ptColor),
opacity: 0.6
});
materials.push(cubeMat);
// cubeGeom.updateMatrix();
var cubeMesh = new THREE.Mesh(cubeGeom, cubeMat);
cubeMesh.position = position;
cubeMesh.lookAt(scene.position);
// totalGeom.merge(cubeMesh.geometry, cubeMesh.geometry.matrix);
//THREE.GeometryUtils.setMaterialIndex(cubeMesh.geometry, i);
THREE.GeometryUtils.merge(totalGeom, cubeMesh);
}
var total = new THREE.Mesh(totalGeom, new THREE.MeshFaceMaterial(materials));
scene.add(total);
Tuttavia ottengo il messaggio
DISAPPROVATO: .merge di GeometryUtils() è stato spostato a geometria. Utilizzare invece geometry.merge (geometry2, matrix, materialIndexOffset).
in chrome dev tools.
Quando provo qualcosa come: totalGeom.merge (cubeMesh.geometry, cubeMesh.geometry.matrix); anziché THREE.GeometryUtils.merge (totalGeom, cubeMesh); Ottengo eccezioni.
Come eseguire l'operazione di fusione sopra riportata? Per favore aiuto.
Prova 'cubeMesh.updateMatrix(); totalGeom.merge (cubeMesh.geometry, cubeMesh.matrix); 'Ma prima di farlo, usa' cubeMesh.position.copy (position) 'invece di' cubeMesh.position = position; ' – WestLangley
Ha funzionato! Grazie per il suggerimento cubeMesh.position.copy (position). – Abhishek
Ottiene sempre 'Uncaught TypeError: Impossibile leggere la proprietà 'visible' di undefined'. Hai qualche idea del perché? – Manticore