基于分形的三维海面研究及生成

基于分形的三维海面研究及生成

ID:24069192

大小:52.00 KB

页数:4页

时间:2018-11-12

基于分形的三维海面研究及生成_第1页
基于分形的三维海面研究及生成_第2页
基于分形的三维海面研究及生成_第3页
基于分形的三维海面研究及生成_第4页
资源描述:

《基于分形的三维海面研究及生成》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于分形的三维海面研究及生成[]本文根据海浪的自然形态特征,基于分形理论的分形布朗运动FBM(FractalBro=0,然后对初始正方形的4个角点分别赋予随机高度值hA、hB、hC、hD,并将生成的坐标保存到坐标数组中。  (4)令当前迭代次数m=m+1,计算当次迭代所生成的所有点的坐标值,并保存到坐标数组中。  (5)重复第4步,直到当m=n-1时为最后一次迭代过程,结束迭代。  (6)使用纹理映射方法将海浪源纹理映射到生成的曲面上,生成海浪分形图形。  3运动海浪的生成的原理及算法  海浪的运动特征很复杂,主要表现为形状不规则,具有复杂性和随

2、机性。海浪的运动特征,可以概括为近似周期性的规则波形的叠加,即海浪的运动形态可以看作是由一系列具有不同频率、波数、波高和传播方向的规则波叠加而成,类似于简单三维进行波,根据海浪的这种运动特征可以使用多个正弦或余弦波叠加来近似地表示海浪的运动形态。  3.1海浪运动的几何模型  基于分形方法生成的海面是静态的,为了实现海浪运动的效果,需将构成海面点的高度值设为随时间和空间变化的函数,而海浪的运动形态可以看作是由一系列具有不同频率、波数、波高和传播方向的规则波叠加而成,类似于简单三维进行波,它的单一波形分量形式为:  yi(x,z,t)=Aisin(

3、kix-ωit+φ)cos(kiz-ωit+φi)(1)  也就是说,在t时刻的波面可以看成是具有不同波高和不同频率的n个波的总和。下面介绍各个参数的确定方法。  3.2海浪运动模拟算法  为了模拟海面的运动效果,须将分形海浪生成点的波高设为与时间相关的函数,使其随着时间变化产生运动效果,具体实现算法如下:  在八级海浪的情况下,经过第七次迭代其效果如图3所示。  3.4提高海浪运动模拟效果的OpenGL方法  3.4.1纹理映射技术  纹理映射是将一个纹理图像映射到三维物体表面来模拟景物表面细节的方法,是真实感图形生成的有效途径。实时模拟海浪波

4、动效果时,如果对所有质点都使用FBM方法生成进行模拟,那么当前的PC机性能无法同时保证模拟出的海浪效果的真实性和实时性。为此使用了具有四方连续性的海浪图像作为纹理源贴到生成的每个正方形上。如图4所示,这样不仅可以有效地提高模拟效果的真实感,还能大大减少计算量,提高模拟的实时效果。  这里采用的方法是使用OpenGL中的gl_Teximage2D()和glEnable(GL_TEXTURE_2D)函数来实现纹理映射。  3.4.2源纹理拉伸技术  在使用纹理映射时,由于源纹理图像的大小是固定的,但是使用随机中点位移算法的菱形方形细分法生成的分形海面

5、时由多次迭代生成且大小不一的正方形构成,这些正方形大小与源纹理图像大小不一定相同。这里使用了OpenGL中的glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN/MAG_FILTER,GL_LINEAR)函数解决了这个问题,如图5所示,当源纹理图像大于映射的正方形时使用MIN参数,反之则使用MAG参数。  3.4.3双缓冲技术  双缓冲区的窗口执行绘图命令实际上是在画面以外建立一个场景,然后很快地交换到窗口视图中。OpenGL中使用双缓冲技术,使用函数glutSicPress,1993.  [5]吴斌,段海波,

6、薛凤武.OpenGL编程权威指南.中国电力出版社,2001,8.  [6]孙博文.分型算法与程序设计——VisualC++实现[M].北京:科学出版社,2004.  [7]BAENSLEYMF.FractalFunctionsandInterpolation[J].ConstructiveApproximation,1986,(2):203-329.  [8]王子凡,林宗坚.基于图像表面积的分形布朗运动分数维算法研究[J].武汉大学学报,2005,30(2):161-165  [9]王琰,曾兰玲.基于分形的三维竹子算法[J].中国图像图形学报,2

7、007,12(1):177-182.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。