我认为这很容易解决,但我没有得到解决方案。 即时通讯使用ringbuffergeometry并想要动态更新thetaLength参数。这是我的代码:
var progressGeometry = new THREE.RingBufferGeometry( 230, 240, 40, 6, 1.6, 0.4 );
var ringMaterial = new THREE.MeshBasicMaterial( { color: 0x000000, side: THREE.DoubleSide } );
progress = new THREE.Mesh( progressGeometry, ringMaterial );
答案 0 :(得分:0)
需要动态重建整个几何体
我们的目标:
var progressGeo = new THREE.RingBufferGeometry(1, 2, 32, null, 0, Math.PI);
var progressMat = new THREE.MeshBasicMaterial({color: 0x0000ff});
var progress = new THREE.Mesh(progressGeo, progressMat);
scene.add(progress);
并且,例如,在动画循环中,我们将重新构建其几何体:
function render(){
requestAnimationFrame(render);
progress.geometry.dispose(); // dispose our old geometry
progressGeo = new THREE.RingBufferGeometry(1, 2, 32, null, 0, Math.PI + Math.sin(Date.now() * 0.001) * Math.PI); // build a new geometry
progress.geometry = progressGeo; // apply the new one
renderer.render(scene, camera);
}
jsfiddle示例r86