Ich versuche, eine Röhre und die Fähigkeit zu schaffen, mit dieser Röhre interagieren wie Maus ziehen, um den Startpunkt/Endpunkt der Röhre zu ändern .Für, dass ich direkt Vertices Position Werte ändern und Ich möchte Objekt in der Szene aktualisierenThree.js Aktualisierung Mesh von TubeGeometry Objekt
Allerdings habe ich ein Problem mit dem Rohr Objekt, das ich benutze: Wenn ich die Pfadpunkte aktualisieren das Netzobjekt nicht auf dem Bildschirm aktualisiert, so scheint es Ich kann es nicht ändern, nachdem es erstellt wurde.
Mein 3D Objekterstellung ist in etwa wie folgt aus:
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);
Und wenn ich die Punkte aktualisieren möchten. Ich mache es so:
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;
Wenn ich jedoch Änderungen mache, scheint das Objekt nicht auf dem Bildschirm zu aktualisieren. Kann man das mit einer Tube machen?
habe ich diesen Artikel zu lesen, bevor und in meinem Code, den Sie oben erwähnt auch den Code enthalten. Es scheint, dass VerticeNeedUpdate nur angewendet wurde, wenn die Vertices-Eigenschaft geändert wurde. Während hier ändere ich die Pfadeigenschaft des Geo. Die Jungs hier haben das gleiche Problem wie ich https://github.com/mrdoob/three.js/issues/1965 – user1533481
Wie wäre es mit der Schaffung einer einfachen jsfiddle? – WestLangley
Ich habe eine hier erstellt: http://jsfiddle.net/drsagitn/dC5KA/2/. Die Punkte werden auf mouseup Ereignis aktualisiert. Vielen Dank. – user1533481