はじめに この記事はUnity #3 Advent Calendar 2020の9日目の記事です。 この記事では高速フーリエ変換(FFT)を使った海洋シミュレーション、FFT Oceanについて書いていこうと思います。Unityに限らずいろんなゲームエンジンで再現できるよう理論サイドも俯瞰しつつ、私が実装を通して理解したことをまとめています。 まずはこんな感じの絵を出すところまでを目標にします。 次に発展として、法線ベクトルの算出や、より波を尖らせてそれっぽくすることをやっていこうと思います。 最終的にはこんな絵ができあがります。 FFT Oceanについて 音声信号などの波形はフーリエ変換することで周波数を得ることができます。逆に周波数情報から波形を求めることができます→逆フーリエ変換。 FFT Oceanは海面の高さを周波数から逆フーリエ変換で求めてしまおうというものです。すなわち周波