对象缩放问题/ scene.remove();

时间:2019-01-02 22:53:08

标签: three.js scale scaling scene

我目前正在尝试在Three.js中制作动画,由于某种原因,我无法在更新功能中缩放对象,但是我不存在透明度,位置等问题。我不确定我是在使用错误的命令还是其他命令,

我已经尝试了多种方法,例如比例尺,材料比例尺,几何尺寸尺等。我只是感到困惑,我可能只是想遗漏一些明显的东西,但是在搜索了不同的解决方案并使用了scale.set(scalex,scaley,0.000000000001)之后,只是将变量放在if状态中以循环并更新scalex和scaley,但是仍然没有更新。

var bpm = 124;
var ring;
var ringgeometry = new THREE.BoxGeometry( 1080/10, 1080/10 , 0 );
var ringmaterial = new THREE.MeshBasicMaterial({
 map: new THREE.TextureLoader().load("RING.png"),
 blending: THREE.screenBlending,
 transparent: true, opacity: 1
});  
var clock = new THREE.Clock;

function update() {

 if(clock.elapsedTime < 377){ ticker = clock.elapsedTime * (songBPM / 60);
 bpm = Math.round(ticker), console.log(bpm), console.log(sect) };
 clock.getDelta();

 if(bpm >= 34 && bpm <= 40){
  ring = new THREE.Mesh( ringgeometry, ringmaterial);
  if(bpm == 34){ scene.add(ring) };
  /////////////////////////////////
  if(bpm >= 34 && bpm <= 40){ ringgeometry.scale.x += 0.1, ringgeometry.scale.y += 0.1 }
  ring.position.set(0, 0, 0);
  ////////////////////////////////
  if(bpm >= (32 + 1) && bpm <= (32 + 10)){ ringmaterial.opacity -= 0.01 };
 }
 if(bpm == 40 && bpm <= 42){ scene.remove(ring) };
}

renderer.setAnimationLoop(() => {
 update();
 composer.render(scene, camera);
});

function render(){ composer.render() };

此代码仅以默认比例将环放入场景中,而不会将其从合成中删除,降低不透明度或缩放比例。

我也一直在寻找尴尬的解决方案来从场景中删除内容,因为scene.remove()似乎没有一半时间在工作,并且最终滞后了我的场景,除非我稍后手动将不透明度设置为0

先谢谢您,如果这是一个明显的解决方案,则对不起。

1 个答案:

答案 0 :(得分:0)

threejs.org/docs/index.html#api/en/core/Geometry.scale是解决方案。

-bash: /usr/local/bin/virtualenv: /usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/Resour: bad interpreter: No such file or directory

囚犯的答案849