2012-09-10 46 views
5

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?

Trả lời

5

Bạn chỉ được cung cấp đoạn mã, nhưng có thể bạn cần

geometry.verticesNeedUpdate = true; 

geometry.dynamic = true; 

Bạn có thể tìm thêm chi tiết và ví dụ trong Three.js wiki về làm thế nào để cập nhật mọi thứ với WebGLRenderer .

https://github.com/mrdoob/three.js/wiki/Updates

+0

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

+0

Làm thế nào để tạo một jsfiddle đơn giản? – WestLangley

+0

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

Các vấn đề liên quan