three texture raycaster dynamic three.js geometry vertices

dynamic - texture - tres js vertices no se actualizan



three js rotation (1)

Si desea cambiar los vértices de su geometría, necesita establecer geometry.verticesNeedUpdate = true; .

function update() { circle.position.x += 0.01; line.geometry.vertices[ 0 ].x = circle.position.x; line.geometry.verticesNeedUpdate = true; };

Después de renderizar, geometry.verticesNeedUpdate se restablece en false , por lo que debe restablecerlo a true cada vez que se cambien los vértices de geometría.

EDITAR: Si está utilizando BufferGeometry , use este patrón en su lugar:

geometry.attributes.position.needsUpdate = true;

tres.js r.74

Estoy usando three.js r67, y los vértices no parecen estar actualizados. Configuré geometry.dynamic = true , geometry.verticesNeedUpdate = true . El círculo se está moviendo, pero la línea es estática ...

Alguien podría ayudarme?

var scene = new THREE.Scene(); var renderer = new THREE.WebGLRenderer(); var g = new THREE.CircleGeometry( 4, 16 ); var m = new THREE.MeshBasicMaterial({color: 0x114949}); var circle = new THREE.Mesh( g, m ); circle.position.x = 2; circle.position.y = 2; circle.position.z = -1; scene.add( circle ); var material = new THREE.LineBasicMaterial({color: 0xDF4949, linewidth: 5}); var geometry = new THREE.Geometry(); geometry.vertices.push(new THREE.Vector3(0, 0, 0)); geometry.vertices.push(new THREE.Vector3(1, 1, 0)); geometry.verticesNeedUpdate = true; geometry.dynamic = true; var line = new THREE.Line(geometry, material); scene.add(line); var update = function() { circle.position.x += 0.01; line.geometry.vertices[0].x = circle.position.x; }; var render = function() { renderer.render(scene, camera); }; var loop = function() { update(); render(); requestAnimationFrame(loop, renderer.canvas); }; loop();