【问题标题】:Three.js: Uniforms value not updatingThree.js:制服值不更新
【发布时间】:2017-09-03 15:21:30
【问题描述】:

我正在使用 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 可以这样使用还是有更好的方法?谢谢。

【问题讨论】:

  • 看看onUpdatetween.js page
  • 是的,这些值显示为正确更改,但实际上并未呈现?你知道为什么吗?
  • 如果不看更多代码就很难分辨
  • 好的,我通过更改单个对象的值而不是着色器本身来实现它。

标签: javascript three.js shader tween.js


【解决方案1】:

好的,这就是我的工作方式。似乎改变“着色器”本身的值是原因。当我更改单个对象的制服值时,上述方法有效。所以我没有使用Shader.uniforms.threshold,而是这样做了:

myObject.material.uniforms.threshold,有效。

【讨论】:

    猜你喜欢
    • 2015-07-07
    • 2016-06-28
    • 2018-05-08
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    • 2015-11-19
    • 2016-07-31
    相关资源
    最近更新 更多