Three.js:制服价值不更新

时间:2017-08-25 08:20:43

标签: javascript three.js shader tween.js

我在点击按钮时使用Tween.js为着色器的制服值设置动画。这就是我所拥有的:

Shader.uniforms.threshold.needsUpdate = true;

function fadeIn() {
  new TWEEN.Tween( Shader.uniforms.threshold )
  .to( { value : 0.6 }, 100 )
  .start();
}

function fadeOut() {
  new TWEEN.Tween( Shader.uniforms.threshold )
  .to( { value : 2 }, 100 )
  .start();
}

document.getElementById("FadeIn").onclick = function() {
   fadeIn();
}

document.getElementById("FadeOut").onclick = function() {
   fadeOut();
}

以上不起作用。当我尝试刷新页面时,值确实会更改,但按钮单击不会执行任何操作。有谁知道我的实施中的错误?可以像这样使用Tween.js还是有更好的方法?感谢。

1 个答案:

答案 0 :(得分:0)

好的,这就是我如何运作的。它似乎改变了" Shader"的价值。本身就是原因。当我更改单个对象的制服值时,上述工作。所以我没有Shader.uniforms.threshold而是这样做了:

myObject.material.uniforms.threshold,有效。