2014-07-02 32 views
17

Üç.js r67 kullanıyorum ve köşe noktaları güncelleştirilmiyor gibi görünüyor. geometry.dynamic = true, geometry.verticesNeedUpdate = true'u ayarlıyorum. Daire hareket ediyor, ancak hat statik ...üç js köprüsü güncelleştirmiyor

Birisi bana yardımcı olabilir? Eğer geometri köşeleri değiştirmek isterseniz

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(); 

cevap

29

, sen geometry.verticesNeedUpdate = true; ayarlamanız gerekir. render sonra

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

, geometry.verticesNeedUpdatefalse sıfırlanır, yani true için geometri köşe değiştirilir her zaman sıfırlamak gerekir.

DÜZENLEME:

geometry.attributes.position.needsUpdate = true; 

Three.js r.74

: Eğer BufferGeometry kullanıyorsanız, bunun yerine bu modeli kullanın
İlgili konular