2016-07-26 6 views
2

フラグメントシェーダでの遅いトランジションエフェクトの実装について助けが必要です。例えば、私はマウスによって制御されるDOF効果を持っています。 x、yの位置の変更は、変数の深さの変化を引き付けます。GLSLでのスムーズな切り替え

depth = linearize(texture(dofTexture,vec2 mouse).x) 

瞬時に変化するマウスの奥行きの変化をどのように遅くするのですか?別の言葉では、どのようにフラグメントシェーダに状態間の移行を円滑にする?外装ユニフォームを使用する必要がありますか?

答えて

1

「キーフレーム」であると判断できる範囲で線形補間を使用できます。最後のキーフレーム(0から1まで)とその関連テクスチャ(時間とテクスチャは追加のユニフォームになります)から過去の時間が必要になります。

次に、あなたのフラグメントの色がmix(keyframe_color, actual_color, elapsed_time)(線形補間がちょうどc = (t - 1) * a + t * bある)

ようなものになるだろう
関連する問題