Donc, je veux faire un simple éditeur de terrain. Donc, sur mouseDown, je veux que le visage sélectionné monte. L'intersection fonctionne très bien, et je tente de modifier la géométrie comme ceci:Three.js - Modifier la géométrie du plan
var intersects2 = ray.intersectObjects([plane]);
if (intersects2.length > 0) {
var face = intersects2[0].face;
var obj1 = intersects2[0].object;
var geo = obj1.geometry;
geo.vertices[face.a].z += 50;
geo.vertices[100].z += 50;
geo.vertices[0].z += 50;
geo.computeVertexNormals();
geo.computeFaceNormals();
geo.__dirtyVertices = true;
geo.__dirtyNormals = true;
console.log(face.a);
}
Le journal de la console affiche l'index du sommet correct, mais rien sur le plan se déplace. Des idées pourquoi?
Le plan est créé comme ceci:
var planegeo = new THREE.PlaneGeometry(500, 500, 10, 10);
planegeo.dynamic = true;
plane = new THREE.Mesh(planegeo, new THREE.MeshPhongMaterial({ color: 0x99ff66 }));
plane.receiveShadow = true;
scene.add(plane);