Tôi đang cố gắng tạo ra một ống và khả năng tương tác với ống đó như kéo chuột để thay đổi điểm đầu/điểm cuối của ống. Để tôi sửa đổi các giá trị vị trí đỉnh trực tiếp và Tôi muốn cập nhật đối tượng trong cảnhThree.js Cập nhật lưới đối tượng TubeGeometry
Tuy nhiên, tôi đã gặp vấn đề với đối tượng ống tôi đang sử dụng: khi tôi cập nhật điểm đường dẫn đối tượng lưới không cập nhật trên màn hình, vì vậy có vẻ như Tôi không thể sửa đổi nó sau khi nó được tạo ra.
tạo đối tượng 3d của tôi là gần như thế này:
var curve = new THREE.SplineCurve3([new THREE.Vector3(x, y, z), new THREE.Vector3(x2, y2, z2)]);
var geometry = new THREE.TubeGeometry(curve, segments, 2, radiusSegments, closed);
geometry.dynamic = true;
var tubeMesh = THREE.SceneUtils.createMultiMaterialObject(geometry, [new THREE.MeshBasicMaterial({color: 0xffffff, opacity: 1, transparent: true})]);
scene.add(tubeMesh);
Và khi tôi muốn cập nhật điểm. Tôi đang làm như sau:
tubeMesh.children[0].geometry.path.points[0] = new THREE.Vector3(x4, y4, z4));
tubeMesh.children[0].geometry.path.points[1] = new THREE.Vector3(x3, y3, z3));
tubeMesh.children[0].geometry.verticesNeedUpdate = true;
Tuy nhiên, khi tôi thay đổi đối tượng dường như không cập nhật trên màn hình. Có thể làm điều này với một ống?
Tôi đã đọc bài viết đó trước và trong mã của tôi ở trên cũng bao gồm mã bạn đã đề cập. Dường như verticeNeedUpdate chỉ được áp dụng khi thuộc tính đỉnh được thay đổi. Trong khi ở đây tôi đang thay đổi thuộc tính đường dẫn của địa lý. Các bạn ở đây có cùng một vấn đề như tôi https://github.com/mrdoob/three.js/issues/1965 – user1533481
Làm thế nào để tạo một jsfiddle đơn giản? – WestLangley
Tôi đã tạo một tài khoản tại đây: http://jsfiddle.net/drsagitn/dC5KA/2/ .Các điểm được cập nhật trên sự kiện di chuột. Cảm ơn. – user1533481