太傻

szlongman@hotmail.com 江山笑 烟雨遥 涛浪淘尽红尘俗事几多骄

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  39 随笔 :: 0 文章 :: 280 评论 :: 0 Trackbacks
       从小就听说国外的科学家能模拟各类自然景物,不过在九十年代初看不到什么这方面的资料。只是在图书馆里借到一本浙大教授潘云鹤写的“计算机与美术”一书,里面有些计算机生成的自然景物图片,记得有夕阳照耀下的海潮,时常看看这些图片望梅止渴。98年学校大礼堂放美国大片Titanic,那时没有女朋友,孤零零、认认真真看了一场。这部电影不仅有荡气回肠的爱情戏,一望无际的蔚蓝色海洋也一直让我神往。99年的SIGGRAPH会上,Jerry Tessendorf做了“Simulating Ocean Water”Course notes,notes中讲述的便是Titanic,Waterworld等影片中绘制海水的技术。
      时间又过了好多年。最近一段时间,一直在读Jerry Tessendorf. “Simulating Ocean Water”.SIGGRAPH 2001 Course notes.以及"Deep-Water Animation and Rendering"。为了理解其中的数学背景,前阶段还看了一通"多维数字信号处理"之类的书。春节来了,根据论文中的技术,在家中写了几天程序,做了一个简化版的实时海水动画,SHADER只用了VS1.0,PS1.4,镭9000的显卡便能跑得不错了。

http://www.net638.com.cn:638/download/oceanwater.rar




posted on 2005-02-15 22:58 太傻 阅读(3945) 评论(40)  编辑 收藏 所属分类: 图形学

评论

#1楼  2005-02-17 10:30 sevecol [未注册用户]
效果很好:-)
  回复  引用    

#2楼  2005-02-17 20:17 chaz [未注册用户]
算法用的是FFTW库吧
it's a cool stuff ;)
  回复  引用    

#3楼 [楼主] 2005-02-17 21:18 太傻      
是用的FFTW库.
  回复  引用  查看    

#4楼  2005-02-17 23:46 bluegene [未注册用户]
我的机子上怎么不能运行你的程序阿?还需要安装其他的什么东西吗?
  回复  引用    

#5楼  2005-02-18 05:41 genie [未注册用户]
很不错,类似效果的程序能在我的机器上跑起来的,就只你这个了。不过,在商业游戏里是不会这么用的,你这个在我的机器里能跑30fps,不实用啊。
我们最近开发的游戏里海水场景在我机器上可以跑400fps左右,包括球型天空和太阳等,海水面积也比你这个广阔的多,相当于在100---1w米高空自由观察的范围,用的是OpenGL。
  回复  引用    

#6楼  2005-02-18 09:15 szwaiwai [未注册用户]
我是业余搞图形学的,也就是晚上有时间做做.
我和游戏公司不同, 我不保留技术,我会写很详细的通俗文章向大家介绍这些技术.
  回复  引用    

#7楼  2005-02-18 09:36 chaz      
帧数不高是由于没有优化吧。 加上frustum culling应该就会好很多。 R9600 112帧 :)
  回复  引用  查看    

#8楼  2005-02-18 15:37 genie [未注册用户]
哦,不知程序画面中的数据如何?3角形数量,贴图size,等等,能show些代码来看看吗?R9600 112帧应该说很低了,要大幅度优化啊。
我们设计目标是R9200左右的pc,太高了不行,所以也不能用太高级的硬件功能。我们的海水远看没的说,太近了就不行,你这个相反,近了看很棒。
  回复  引用    

#9楼  2005-02-18 16:41 szwaiwai [未注册用户]
请问genie,你们是用什么方法来生成波形的.
我是用二维离散傅利叶变换.
除了天空盒,不用其他贴图.
  回复  引用    

#10楼  2005-02-18 18:59 无名氏 [未注册用户]
为什么我在运行该程序的时候,说没有找到d3d9.dll,请帮助。
  回复  引用    

#11楼  2005-02-19 04:55 genie [未注册用户]
我是用其他方法做海水的,着重于表现超大范围和面积的广阔海水,还要兼顾雾化等其他因素,设计核心思想很简单,就是用多重贴图动画,但真正用好了比其他任何方法都更好,无论性能还是效果。
我是不用大量3角形做的,不然大量3角形只能用于较小范围近距离的海水,性能也没办法满足游戏设计需要,因为不能只有场景部分,主要系统资源要留给角色,粒子等等其他东西。
完美的方法是当距离水面很近的时候,由贴图方式转为3角形网格方式融合粒子效果来做,不过这样有点复杂,目前阶段尚没有这个必要。
你在哪儿工作/上学?编程经验几年?
  回复  引用    

#12楼 [楼主] 2005-02-19 13:11 太傻      
表现超大范围和面积的广阔海水,我的方法同样能做到,而且速度也会非常快,近看也非常真实,我已经想好办法了,过段时间再拿出来.

我平时是搞数据库编程的,写写DELPHI,VB,存储过程.
从学编程到现在都十多年了,不过我更倾向于看些SIGGRAPH这类论文,从中找到我所需要的.我觉得编程还是次要的,理论在图形学中更重要.在图形学中,没有理论的指导,实践走不了多远.
  回复  引用  查看    

#13楼  2005-02-19 16:36 genie [未注册用户]
好啊,期待你的成果。
我受实际情况限制,没法象做理论研究那样做东西,要考虑的东西太多,自身的条件也不是很好,只能选择相对适合自己当前情况和条件的路子。
在图形学中,没有理论的指导,实践走不了多远. 所以平时要认真学习和思考。
另:理论如果不能联系到实际,那也不行,很多时候理论是一回事,实践是另一回事。我个人的体会是,如果你只懂程序,photoshop, maya 这些东西的功底不够,那最多只能发挥出50%的能力,有高水平的美工帮忙也可以好一点,但自己一定要会用photoshop,最好能比较精通它,学好它们之后做出来的东西绝对是2种不同的境界。
做这行要学的东西很多啊,我桌边想仔细研究看完的新书已经有1尺多高了,累死了。

  回复  引用    

#14楼  2005-02-28 10:55 flmn [未注册用户]
我按照http://graphics.cs.lth.se/theses/projects/projgrid/的方法做了一个,效果还行,不过效率就不怎么样了
  回复  引用    

#15楼  2005-03-14 10:59 szlongman [未注册用户]
flmn,你好啊.
你有联系方式吗?
  回复  引用    

#16楼  2005-05-03 14:31 qlq [未注册用户]
hey,你好。
能不能把demo(http://www.net638.com.cn:638/download/oceanwater.rar ) mail发给我,直接下载基本不行(也许是我在教育网的原因)。
e-mail address:qlq@sjtu.edu.cn
3ks!
  回复  引用    

#17楼  2005-05-09 16:50 wh [未注册用户]
我下在不了,能发一份给我吗 ?
weihua815@hotmail.com

  回复  引用    

#18楼  2005-07-27 14:18 syd [未注册用户]
我下在不了,能发一份给我吗 ?
sydme@163.com
  回复  引用    

#19楼  2005-08-24 21:41 波波 [未注册用户]
感觉国内的图形学在不断的发展,过上几年肯定有一大批人才出现,现在就是需要一个领路的人来,通过blog来交流的确不错,但是blog还是太个人化,如果有能进一步团体化,进一步让一些真正热爱这个领域,并且愿意做出贡献的人聚集在一起就更好了,欢迎大家加入qq群 1778085
  回复  引用    

#20楼  2005-10-03 15:56 srr [未注册用户]
感觉在学校视野真的太小了,以后要多到这边来聆听学习
  回复  引用    

#21楼  2005-11-01 02:49 yueliu [未注册用户]
genie 你好, 对你用Opengl写的海水场景非常感兴趣,能不能把你的SourceCode发给我一份学习学习? 衷心感谢。
e-mail address:
cnliuyue@googlemail.com
  回复  引用    

你好, 对你用Opengl写的海水场景非常感兴趣,能不能把你的SourceCode发给我一份学习学习?for further study 衷心感谢。
e-mail address:
mike200888@163.com
  回复  引用    

#23楼  2005-11-29 12:27 yitian [未注册用户]
您好, 对你用Opengl写的海水场景非常感兴趣,能不能把你的SourceCode发给我一份学习学习?for further study 衷心感谢。


e-mail address: yangxiao8080@sohu.com

  回复  引用    

#24楼  2005-11-29 12:29 yitian [未注册用户]
hey,你好。
能不能把demo(http://www.net638.com.cn:638/download/oceanwater.rar ) mail发给

e-mail address: yangxiao8080@sohu.com
3ks!

  回复  引用    

你好!
可以告诉我你队浪花处理过没啊!
怎么处理的?网格怎么缝补的,有没有采用LOD技术啊

  回复  引用    

#26楼  2006-03-02 23:55 Orienwong [未注册用户]
你好!
可不可以把(http://www.net638.com.cn:638/download/oceanwater.rar ) 发给我学习一下,你做得太帅了!!!

e-mail address: boya_1106@163.com
谢谢!!!!!!

  回复  引用    

#27楼  2006-03-09 21:58 wanglei [未注册用户]
please tell me how do you realize it through program,especially using opengl,my cellphone number is 13476050623,thank you.I'm preparing my paper,my teacher acquired me simulate a scene of sea,but I don't know how to realize it ,it's too difficult to me.Be quick,thank you again!!
  回复  引用    

#28楼  2006-03-19 21:52 shatter [未注册用户]
你好!
能不能也发一份给我,谢谢!
e-mail: shatter83@126.com
  回复  引用    

#29楼  2006-03-22 12:54 icefly [未注册用户]
太傻:
你好!对你用directX写的海水场景非常感兴趣,能不能把你的SourceCode发给我一份学习学习? 衷心感谢。
e-mail address:
gjl2004_2000@126.com


  回复  引用    

#30楼  2006-03-24 11:11 suu [未注册用户]
您好, 对你用Opengl写的海水场景非常感兴趣,能不能把你的SourceCode发给我一份学习学习
我的邮箱是raozhixu@126.com
  回复  引用    

#31楼  2006-04-03 10:38 softworm [未注册用户]
117fps(1024x692)
  回复  引用    

#32楼  2006-06-16 09:51 小溪流 [未注册用户]
请问可以把源代码发给我吗?上面的链接载不下来。非常感谢!
我的邮箱是xxx9373@yahoo.com.cn
  回复  引用    

你好,我也准备研究海水模拟,不知道可不可以和大侠交流交流
我的qq是28590819
  回复  引用    

#34楼  2006-07-04 13:17 apple雪 [未注册用户]
你做的仿真好帅啊,我才开始学习仿真,不过是机械方面的仿真,遇到许多困难,恳求大侠今后能多多指点,顺便问一下水中的漩涡怎么进行仿真阿?
我的QQ是270629950
  回复  引用    

#35楼  2006-08-10 18:34 cO_olWinD [未注册用户]
我目前也在作一个有海面的场景,海浪使用了FFT和P-M频谱+视点相关LOD,但是作出来后使用网格模式看还不错,但是使用实体模式看的时候,由于海浪表面的颜色都是一样的,所以看不出海水起伏的效果来。我先给每个网格设置了法线,在打上光照,但是由于网格是一块一块的,所以海水看起来也是一块一块的。后来又根据每个顶点的高度值动态赋予顶点不同的Alpha值,但还是看起来一块一块的。
所以请教您的海面是怎么处理出不同的明暗度的?是使用了pixel shader吗?
如果您愿意,可否将这部分的源码发给我一份呢?
谢谢~
My Email:luanjun1984@hotmail.com
  回复  引用    

#36楼  2007-01-16 20:18 guoguo [未注册用户]
Simulating Ocean Water这篇文章我也在看,但看的很吃力,能帮我解释一下其中的公式中的参数吗,比论文中的再详细一点.谢谢
guo129@sina.com
  回复  引用    

#37楼  2007-04-12 16:56 little [未注册用户]
genie
您好, 对你用Opengl写的海水场景非常感兴趣,能不能把你的SourceCode发给我一份学习学习,我在做海战的游戏……想做个不错的动态海面
little_boring@sohu.com
  回复  引用    

太傻:
你好!对你用directX写的海水场景非常感兴趣,能不能把你的SourceCode发给我一份学习学习? 衷心感谢。
e-mail address:
dreamcom00@hotmail.com
  回复  引用    

#39楼  2008-05-16 12:24 liquid [未注册用户]
我也想要。。。
foxnumber@gmail.com
  回复  引用    

#40楼  2008-06-20 13:35 Hoskiss [未注册用户]
可以寄給我一份嗎?純研究學習非常感謝
chaosvagabond@hotmail.com
  回复  引用    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-06-24 22:38 编辑过