Vectorについて、内部的な実装はさておき挙動だけ理解する記事です。Vectorとは、あるオブジェクトが前フレームからどれだけ移動したかをベクトルで表したものです。これはモーションブラーやアンチエイリアシング(TemporalAA)といったポストエフェクトなどに利用されます。Unityではこれをスクリーンスペースのテクスチャとして簡単に取得できます。RがU方向、GがV方向への移動量を示します。フォーマットはRGHalfであり、速度が大きければ1以上の値も入るし、UV逆方向に進んでいる場合には負の値も入ってきます。Vectorの挙動を簡単に見ていきます。Vectorを有効化してみます。有効化するには、Camera.depthTextureModeを以下のように変更します。Vectorがテクスチャにレンダリングされます。再生してFrameDebuggerを見るとRender.MotionVectorsという処理が追加されていることがわかります。Vectorのテクスチャを取得する次に前節で作ったテクスチャをポストエフェクトのシェーダ内で取得してみます。Vectorのテクスチャは_CameraMotionVectorsTextureというグローバル変数に入ってきます。Vectorの値が大きすぎて見づらいので調整します。0.1;結果は次のようになります。U方向に進んでいるときほどRが大きく、V方向に進んでいるときほどGが大きくなっていることが確認できます。Vector用のレンダリングパスが追加されるため、処理負荷は大きくなります。Vectorの書き込みを制御できます。MotionVectorGenerationModeまた、浮動小数点テクスチャを使っているため、この点でも処理負荷は大きくなるといえます。Vectorに対応しているか調べる対応しているか調べるには次のようにします。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。Blur(渦巻ブラー)のポストエフェクトを実装する月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。