文档章节

RealTime Synthesis and Rendering of Ocean Water

彭博
 彭博
发布于 2012/03/09 14:08
字数 427
阅读 61
收藏 0

http://ati.amd.com/developer/Mitchell-Real-Time_Synthesis_and_Rendering_of_Ocean_Water(ATITR_Apr05).pdf

feature上没有实质性的进步,只是做了叠加offline generated的normal map的东西,造成可以有水波被鸭子影响的效果。

主要在实现上,放到gpu上,以及将geometry与normal分离的优化。

 

 


GPU computing FFT

 

理论背景仍旧是FFT,公式主要还是FFT, amplitude和spectrum。

 

由于FFT的计算在cpu上就是grid上一个个点算的,点之间没有dependency,天生并行。所以gpu上算再适合不过了。

 

 

  • 浪线h(k),根据philips spectrum算出,cpu上算一次就可以了,和时间无关
  • w---频率,也是和时间无关,cpu上算出就好
  • 浪线h(k,t)基于浪线h和w,加上时间,这部分gpu上算。
  • 结果就是fft的heigt field的了

performance:

当时是radeon x800,12 pixel shader, 392Mhz,计算64×64+256×256耗时6ms。

对比现在的主流gts250显卡,793Mhz,128 cuda processor,这的确是非常ok的一个消耗了。

 

normal map:

有了hight map之后,normal cross一下就好了。

 

 


 

synthesis waves

也是这个文章点题的一部分。

就是弄一个高resolution(256*256)的grid生成normal以显示细节。

低resolution(64*64)的作为vertex shader displacement map两者结合,效果很ok,效率也好。

至于低resolution map的生成,一种是直接算出一个,也可以高resolution的来downsample出来,文中是使用直接算一个的。

 

至于为什么vertex shader displacement map要用低resolution的而不是直接sample 高resolution的,应该是考虑到texture cache performance的问题。

 

 


 

composing other wave forms

 

用一些预先做好的height map or normal map合成就好。

 


 


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

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

上一篇: HDR的好处
彭博

彭博

粉丝 397
博文 1071
码字总数 6801
作品 2
深圳
程序员
私信 提问
Visifire and WPF Charts v3.0 beta 2

修正的bug: Chart was not getting updated properly while updating it using setDataUri() method. In 3D Area chart, if AnimatedUpdate property was set to True and YValue property o......

红薯
2009/12/14
648
0
solr与ES 比较 Realtime Search: Solr vs Elasticsearch

What is Elasticsearch? Elasticsearch is REST based, distributed search engine powered by the excellent Lucene library. The built in JSON + HTTP API provides an elegant platform ......

kiwisoft
2015/11/23
1K
0
论文简记 | Deep Voxel文章解读《Deep Voxels: Learning Persistent 3D Feature Embeddings》

一 写在前面 未经允许,不得转载,谢谢~~~ 开始尝试一下论文简记,简单记录论文的精华,对于真的非常需要细读的文章后续再扩充,立一个每周可以输出两篇简记的flag (赶论文除外嘻嘻)(๑>ڡ...

与阳光共进早餐
05/09
0
0
Kdenlive 16.08.0 发布,视频编辑软件

Kdenlive 16.08.0 发布了,主要更新如下: 3 Point Editing Insert or overwrite a timeline region with a clip region. Delete or lift timeline regions. Also, the long-missing insert......

局长
2016/08/20
948
0
唐梓文/Cube-Engine

###What's This?### Cube Engine is my own hobby porject, It's a small Graphic Engine written in c++ and powered by OpenGL (ES 2.0 or higher), I develop it so that I can improve m......

唐梓文
2014/12/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

查看线上日志常用命令

cat 命令(文本输出命令) 通常查找出错误日志 cat error.log | grep 'nick' , 这时候我们要输出当前这个日志的前后几行: 显示file文件里匹配nick那行以及上下5行 cat error.log | grep -C ...

xiaolyuh
30分钟前
5
0
六、Java设计模式之工厂方法

工厂方法定义: 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行 类型:创建型 工厂方法-使用场景: 创建对象需要大量重复的代码 ...

东风破2019
36分钟前
5
0
win服务器管理遇到的一系列问题记录

有些小伙伴在使用iis7远程桌面管理工具的时候总是会遇到一系列的问题,下面就是为大家介绍一下服务器日常管理过程中出现的问题及我的解决办法和心得。希望能帮到大家。   拒绝服务器重新启...

1717197346
43分钟前
6
0
flutter 剪切板 复制粘贴

复制粘贴功能 import 'package:flutter/services.dart'; Clipboard.setData(ClipboardData(text:_text));Clipboard.getData;...

zdglf
46分钟前
4
0
如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?

面试题 如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题? 面试官心理分析 这个是肯定的,用 MQ 有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是前面说的重复消费...

米兜
46分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部