Distance Field Flow Map

  • forum


簡易メモ

  • UE4 の下の 2 つのノードを使います.
    • DistanceFieldGradient
      • ディスタンスフィールドの勾配
    • DistanceToNearestSurface
      • ディスタンスフィールドに一番近い箇所
  • 下図はフローマップに DistanceFieldGradient (ディスタンスフィールドの勾配)を重ねたもので, この段階でフローマップっぽくなっています


  • 但し, 向きが急に変化することがあるので一番近い表面の「ディスタンスフィールドの勾配」をブレンドします. それが下図です.
  • Smoothness パラメータで調整します. Smoothness が小さい値になるほど, より向きが不正確になります.


  • 今回は川の流れなので, アーティストさんが川のメッシュを配置し, そのメッシュのタンジェント方向にします.
  • 下図の右側の紫色のものが川のメッシュで, 緑色の Y 軸がタンジェントの方向でフローの向きになります.


  • あとは上の「(A)アーティストさんが指定した川のメッシュによる向き」と, 「(B)ディスタンスフィールドの勾配の向き」の平均をとって, 最終の向きとします.
  • もし上の 2 つが同じ方向でしたらアーティストさんが指定した川のメッシュによる向きになりますし, 2 つが逆方向の場合は横に逃げる流れになってオブジェクトを避けることになります.
  • 下図はこの (A)と(B)の向きが同じかどうか? (dot)をデバッグ表示したものです.
  • 白い領域は向きが近いもので, 黒い領域は向きが逆のものを示しています.