FFTWater Revisited
来源:互联网 发布:弹幕点歌什么软件 编辑:程序博客网 时间:2024/05/16 10:53
对fft的水有了些新的理解。
傅立叶变换是讲时域空间域的东西变换到频域,反傅立叶变换则反之。
dft是计算机这种没法处理连续信号,必须将连续信号离散化的产物。
水的波动(自然波动,也叫ambientwave)也属于有周期性信号,起码是有规律可循的。
可以通过傅立叶变换来变换到频域来分析,或者在频域中作出一组参数,然后反傅立叶变换到时域&频域,得出水的波动方式。
tessendorf的fft的水就是这个路线。
其中逆离散傅立叶(idft)变换的参数是
其中比较关键的地方,有两个,一个是h0(k),一个是频率的计算w(k)。
frequency---w(k)
其中w(k)是和每个k相关的,每个k是wave vector component,不同的k对应不同的波长,这个计算方式文中没有给,简而言之是和k相关的参数,保证有不同就会让水看起来波动的更自然。我之前用了同一个波长,结果就是同一个频率,算出来的波就看起来很单一。
至于怎么算,insomniac的一个做法是
kx = HalfFFTWidth-abs(kx);
ky=HalfFFTWidth-abs(ky);
wave_number_sqr=kx*kx+ky*ky;
zhangjun同学做法是直接
wave_num_sqr=kx*kx+ky*ky;
效果都很不错。
然后是h0(k),这是对每个wave vector component的上scaler的一个描述。
可以很直白的都给同一个值,比如1.0f.
那么水出来就是自己上下波动的一个情况。
或者像文中说的用phillipse spectrum,加上风的影响,那么就会造成spectrum的分布变得不均匀,就会造成有风吹得效果。
我之前在做的时候,在每个wave vector component 上加一个偏移,也会改变spectrum分布(也是有个偏移),结果出来的水就是流动的感觉。
在进一步说,水几乎可以说是一种procedural技术,给一个参数或者分布输入,就会产出很奇怪的效果。
而且因果关系又不是那么直观,所以说这一块是一个可以挖掘很多东西的地方,变化个分布就是一个效果。
- FFTWater Revisited
- Coconuts, Revisited
- C++ Revisited
- Exception Revisited
- POSTing via Java revisited
- fjnu 1688 Coconuts, Revisited
- POD Types Revisited
- Sorting algorithms revisited
- hdu 1346 Coconuts, Revisited
- Eventually Consistent - Revisited
- Setup Manager revisited
- iPhone Screen Capture Revisited
- UVA10537 Toll! Revisited
- hdu 1346 Coconuts, Revisited
- Java finally Revisited
- Two Points Revisited
- 【UVA10537】The Toll! Revisited
- UVa10537 Toll! Revisited
- Android TTS学习——总结
- 无奈。。。
- DB2和 Oracle的并发控制(锁)比较
- 《Windows核心编程》の窗口闪烁函数FlashWindow和FlashWindowEx
- vc学习笔记
- FFTWater Revisited
- wap页面,源码文件处理方案解析
- 无论你是男人,还是女人,做人,想成功,下面就是你必须要做到的
- Maven学习总结
- pku2115C Loooooops
- Abap点滴记录
- 水题也可以由不同的水法~!@#$%PKU OJ1013
- 数据同步算法研究
- 是对 是错 向左 向右