2014-07-02 8 views
17

अद्यतन नहीं है मैं तीन.जेएस आर 67 का उपयोग कर रहा हूं, और शिखर अद्यतन को प्रतीत नहीं होता है। मैंने geometry.dynamic = true, geometry.verticesNeedUpdate = true सेट किया है। मंडल चल रहा है, लेकिन रेखा स्थिर है ....तीन जेएस शिखर अद्यतन

कोई मेरी मदद कर सकता है?

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

उत्तर

29

आप अपने ज्यामिति के कोने बदल चाहते हैं, आप geometry.verticesNeedUpdate = true; सेट करना होगा।

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

प्रतिपादन के बाद, geometry.verticesNeedUpdatefalse पर रीसेट हो जाता है, तो आप true करने के लिए इसे हर बार ज्यामिति कोने बदल रहे हैं रीसेट करना होगा।

संपादित करें:

geometry.attributes.position.needsUpdate = true; 

Three.js r.74

: आप BufferGeometry का उपयोग कर रहे हों, तो इस पैटर्न का उपयोग
संबंधित मुद्दे