Здесь я столкнулся с проблемой, так как мне нужно объединить две геометрии (или сетки) в одну. Используя более ранние версии three.js, была хорошая функция:
THREE.GeometryUtils.merge(pendulum, ball);
Однако он больше не находится в новой версии.
Я попытался объединить pendulum
и ball
со следующим кодом:
ball
- это сетка.
var ballGeo = new THREE.SphereGeometry(24,35,35);
var ballMat = new THREE.MeshPhongMaterial({color: 0xF7FE2E});
var ball = new THREE.Mesh(ballGeo, ballMat);
ball.position.set(0,0,0);
var pendulum = new THREE.CylinderGeometry(1, 1, 20, 16);
ball.updateMatrix();
pendulum.merge(ball.geometry, ball.matrix);
scene.add(pendulum);
В конце концов, я получил следующую ошибку:
THREE.Object3D.add: object not an instance of THREE.Object3D. THREE.CylinderGeometry {uuid: "688B0EB1-70F7-4C51-86DB-5B1B90A8A24C", name: "", type: "CylinderGeometry", vertices: Array[1332], colors: Array[0]…}THREE.error @ three_r71.js:35THREE.Object3D.add @ three_r71.js:7770(anonymous function) @ pendulum.js:20