Итак, я хочу сделать простой редактор ландшафта. Итак, на mouseDown я хочу, чтобы выбранное лицо двигалось вверх. Пересечение работает отлично, и я пытаюсь изменить геометрию следующим образом:
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);
}
Журнал консоли показывает правильный индекс вершины, но на плоскости ничего не движется. Есть идеи, почему?
Самолет создается так:
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 );