文档章节

FFTWater Revisited

彭博
 彭博
发布于 2012/03/09 14:09
字数 583
阅读 34
收藏 0

对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技术,给一个参数或者分布输入,就会产出很奇怪的效果。

而且因果关系又不是那么直观,所以说这一块是一个可以挖掘很多东西的地方,变化个分布就是一个效果。


原文链接: http://blog.csdn.net/ccanan/article/details/5813958

本文转载自:http://blog.csdn.net/ccanan/article/details/5813958

彭博

彭博

粉丝 397
博文 1071
码字总数 6801
作品 2
深圳
程序员
私信 提问
pycrc 0.8 发布,Python 循环冗余校验计算

pycrc 是一个 Python 开发的 CRC (循环冗余校验) 计算器以及源码生成器。 pycrc 0.8 改进记录: Adds the experimental bitwise-expression generator target. Allows you to specify the...

oschina
2013/01/06
923
0
30 款超棒的 Firefox 主题

这里精选 30 个 Firefox 主题,你喜欢哪一款呢? 1) NASA Night Launch 下载 NASA Night Launch Firefox Theme 2) LavaFox V1 下载 LavaFox Firefox Theme 3) FT DeepDark 下载 FT DeepDark ......

红薯
2012/02/10
21.7K
25
ProcessMaker 2.0 发布,业务流程管理

ProcessMaker是一个工作流程和业务流程管理软件,可 让中小型组织自动化文件密集,批准的程序在各个系统,包括财务,人力资源和业务。ProcessMaker OSS 一个完全基于网络的,基于AJAX的应用,...

红薯
2011/03/01
681
1
10 个有意思的 PHP 教程

今天我为大家挑选了 10 个关于 PHP 的教程,设计到 pChart、投票、图片过滤、facebook 连接器等等,希望对你有用。 1. pChart Revisited with Google Analytics 在这篇文章中你将学习如何使用...

红薯
2012/04/19
4.8K
5
文本编辑器 Atom 1.28.0 正式发布,基于 Electron 2.0

Atom 1.28.0 正式版本已发布,更新内容如下: Electron has been upgraded to version 2.0. Atom now automatically honors your operating system's color profile. You can use the new Co......

王练
2018/06/22
2.8K
8

没有更多内容

加载失败,请刷新页面

加载更多

Replugin借助“UI进程”来快速释放Dex

public static boolean preload(PluginInfo pi) { if (pi == null) { return false; } // 借助“UI进程”来快速释放Dex(见PluginFastInstallProviderProxy的说明) return PluginFastInsta......

Gemini-Lin
今天
4
0
Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
今天
4
0
CSS--属性

一、溢出 当内容多,元素区域小的时候,就会产生溢出效果,默认是纵向溢出 横向溢出:在内容和容器之间再套一层容器,并且内部容器要比外部容器宽 属性:overflow/overflow-x/overflow-y 取值...

wytao1995
今天
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
7
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部