FFT与游戏开发

Posted hamwj1991

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFT与游戏开发相关的知识,希望对你有一定的参考价值。

FFT与游戏开发(二)

首先补充下傅里叶变换的原理——把函数分解到一系列正交基上,这些正交基复合下面的条件:
[ egin{cases} int_{-infty}^{+infty} f_k(x) f_j(x) mathrm d x eq 0 & k=j \\int_{-infty}^{+infty} f_k(x) f_j(x) mathrm d x = 0 & k eq j end{cases} ]
其实这就是一种基的变换,图形学中也有一些变换,如坐标系的变换,球面函数变换到SH,SG等等。

一、从一维DFT到二维DFT

和一维DFT一样,二维DFT所做的事情是把二维空间上的信号分解上二维空间上不同方向的三角函数信号之和。下图解释了这一点。
技术图片

注意到转换后的结果是旋转对称的,一维DFT的结果也可以看出来是对称的。

  1. 一维DFT的输入
    技术图片
  2. 一维DFT的输出
    技术图片

二、二维DFT的可分离特性

原始公式:
[ F(k, l) = frac{1}{MN} sum_{m=0}^{M-1} sum_{n=0}^{N-1} f(m, n) e^{-j2pi left( frac{k}{M}m + frac{l}{N}n ight)} ]
注意到,这个计算是可分离的,就是可以把二维DFT的计算分成内外两层1维DFT的计算:
[ F(k, l) = frac{1}{M} sum_{m=0}^{M-1} left[ frac{1}{N} sum_{n=0}^{N-1} f(m, n) e^{-j2pi frac{ln}{N}} ight] e^{-j2pifrac{km}{M}} ]
具体做法是,对每行/列元素进行一次DFT之后,对结果的每一列/行再进行一次DFT。

以上是关于FFT与游戏开发的主要内容,如果未能解决你的问题,请参考以下文章

我不太了解 FFT 和采样率

游戏开发是啥?

链·游戏——中国区块链技术与游戏开发者大会日程正式公布!

游戏开发专业介绍?

游戏开发都会学啥?

pygame游戏开发|中国计算机设计大赛游戏开发与设计之冰雪英雄会(附源码)