2017-08-25 6 views
0

Tween.jsを使用して、ボタンをクリックしたときにシェーダーのユニフォーム値がアニメーション化されています。ここに私が持っているものがあります:Three.js:Uniformsの値が更新されない

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をこのように使用できますか?それとも良い方法がありますか?ありがとう。

+0

[tween.jsページ](https://github.com/tweenjs/tween.js/)で 'onUpdate'を見てください。 – 2pha

+0

はい、値は正しく表示されていますが、実際にレンダリングされていませんか?なぜなのかご存知ですか? –

+0

あなたのコードの多くを見ることなく伝えるのは難しいですよ。 – 2pha

答えて

0

ここで私はどのように働いているのですか。それは "Shader"自体の価値を変えることが原因だと思われる。上記は個々のオブジェクトのユニフォーム値を変更するときに機能します。だからShader.uniforms.thresholdの代わりに、私はこれをした:

myObject.material.uniforms.threshold、これは動作します。

関連する問題