Javascript Three.js-编辑平面几何图形
所以,我想做一个简单的地形编辑器。因此,在mouseDown上,我希望选定的面向上移动。 交叉点很好,我尝试修改几何体,如下所示:Javascript Three.js-编辑平面几何图形,javascript,3d,webgl,three.js,terrain,Javascript,3d,Webgl,Three.js,Terrain,所以,我想做一个简单的地形编辑器。因此,在mouseDown上,我希望选定的面向上移动。 交叉点很好,我尝试修改几何体,如下所示: var intersects2 = ray.intersectObjects([plane]); if (intersects2.length > 0) { var face = intersects2[0].face; var obj1 = intersects2[0].obje
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 );
看看你的代码,看起来你在使用R49之前的语法。可能只是您需要将脏标志代码更新为(假设您现在使用的是较新的库!):
geo.verticesNeedUpdate = true;
geo.normalsNeedUpdate = true;