摘要
随着现代计算机技术的飞速发展,船舶设计越来越多的应用计算机的虚拟仿真实验技术。船舶的海上航行,海上补给,靠岸离岸等实验的验证评估,船舶操纵模拟器的应用,这些都对海浪的视景仿真的真实度和效果提出了不同程度的要求。国外的舰载机起降训练系统也和海浪模拟有着很密切的关联。
针对海上航行视景仿真系统的要求,采用二维快速傅立叶变换(FFT)计算海水波动,并利用具有平台独立性的OpenGL图形库对波浪的可视化方法进行描述,选取Pierson-Moskowitz海浪谱和Mitsuyasu方向分布方法建立三维波浪模型,对不同有义波高的波浪进行模拟。
开发了随机波生成及可视化计算机程序系统。通过开发的程序,以Pierson-Moskowitz海浪谱为例,分别模拟了不同风速下的波浪,程序实现了随机波浪的可视化。
此次工作表明,利用C++程序设计语言和OpenGL图形硬件接口进行波浪可视化是完全可行的。本文开发的可视化系统的优点为,由于使用了GLUT,保证了源代码的可移植性。可视化程序在Windows平台上开发和测试。使用C++和OpenGL的优点除了具有平台独立性以外,还比使用CAD软件进行模拟更灵活和高效。同时,使用C++开发的程序运行速度要比MATLAB或CAD软件内置的脚本语言提高了20%左右。
As the computer technology develops rapidly, virtual reality technique is more and more widely applied in ship design area. The requirements of reality and effect of wave simulation are different for the purpose of ship navigation, replenishment, evaluation of experiments such as in shore and off shore etc, and ship manoeuvring simulator. The training system of carrier plane overseas also has significant relevance to the sea wave.
Based on the requirements of ship navigation to the wave, the 2D FFT method is used to calculate sea wave, and OpenGL graphic library which has independent platform is adopted to describe the visual simulation of the wave; the Pierson-Moskowits wave chart and Mitsuyasu direction distribution method are chosen to model 3D wave for the purpose of simulating waves with different significant wave heights.
This article studies the production of artificial random waves. The developed program simulated different cases of significant wave heights, respectively and implemented the visualization of the random waves.
The results indicate that it is feasible to visualize the ship motion in waves using the C++ programming language and OpenGL graphics hardware interface. One of the advantages of the program is portability by using the GLUT. The visualization program was developed on Windows and has been tested on Windows. Besides the fact that the source code is platform-independent, using C++ and OpenGL also has the advantage of being more flexible and more efficient than using CAD software. The program can read the offset from the data file and build the model. To simulate different ships, it's sufficient to store different offsets in the file. Meanwhile, the program developed in C++ executes much faster than the ones written in MATLAB and other CAD built-in scripting languages.
引文
[1] Lasse Staff Jensen, Robert Golids. Deep-Water Animation and Rendering[A], GDCE ,2001.
[2] Biesel, F, "Study of Wave Propagation in Wmer of Gradually Varying Depth," in Gravity Waves, U.S. National Bureau of Standards Circular 521, (1952), pp. 243-253.
[3] Chen J X, Lobo N D V. Toward interactive-rate simulation of fluids with moving obstacles using Navier-Stokes equations [J]. Graphica IModels and Image Processing, 1995, 57(2): 107-116.
[4] Creamer, D.B., Henyey, F.S., Schult, R.L., Wright, J., 1989,"Improved linear representation of ocean surface waves", Journal of Fluid Mechanics, vol. 205, pp. 135-161.
[5] Wright, J., Creamer, D. B., 1994, "Improved linear representation of ocean surface waves. Part 2. Slowly varying bottoms and currents",Journal of Fluid Mechanics, vol. 261, pp. 65-74.
[6] S. Kapur and D. E. Long. Large-scale capacitance calculation. In Proc. 37th Design Automation Conf. .pages 744{749, June 2000.
[7] Stoker, J., Water Waves, Interscience, New York, (1957).
[8] Ge Wei, James T Kirby, Amar Sinha.Generation of waves in Boussinesq models using a source function method[J].Coastal Engineering, 1999,36:271-299.
[9] Jensen L, Deep-Water Animation and Rendering [EB/OL].http://www. gamasutra. com/gdce/Jensen/jensen_01. htm, 2001
[10] Jos Stam. Stable Fluids [A]. In: Proceedings of SIGGRAPH[C], New York: ACM Press, 1999.121-128.
[12] Darwyn R. Peachey. Modeling Waves and Surf [J]. Computer Graphics,1986, 20(4):65-74.
[13] Alain Fournier, William T. Reeves. A Simple Model of Ocean Waves[J].Computer Graphics, 1986, 20(4):75-84.
[14] Fournier, A., and Reeves, W.T. "A Simple Model of Ocean Waves" ,Proceedings of SIGGRAPH ' 86, Volume 20, Number 4, pp. 75-84.
[15] Tessendorf, J. Simulating Ocean Water. SIGGRAPH 2001 Course notes. http://home1.gte.net/tssndrf/index.html.
[16] D. Peachey. Modeling waves and surf. Computer Graphics,20(4):65-74, 1986.
[17] Michael Kass, Gavin Miller. Rapid, Stable Fluid Dynamics for Computer Graphics[J]. Computer Graphics, 1990, 24(4):49-57.
[18] James F. O'Brien, Jessica K. Hodgins. Dynamic Simulation of Splashing Fluids[A]. In: Proceedings of the Computer Animation,1995.198-208.
[19] Jim X. Chen, Niels da Vitoria Lobo, Charles E. Hughes, J. Michael Moshell. Real-Time Fluid Simulation in a Dynamic Virtual Environment[J]. IEEE Computer Graphics and Applications, 1997, 17(3):52-61
[20] Nick Foster, Dimitri Metaxas. Realistic Animation of Liquids[J].Graphical Models and Image Processing, 1996, 58(5):471-483.
[21] William T. Reeves. Particle Systems - A Technique for Modeling a Class of Fuzzy Objects[J]. Computer Graphics, 1983, 17(3):359-376.
[22] Gavin Miller, Andrew Pearce. Globular Dynamics: A Connected Particle System for Animating Viscous Fluids[J]. Computers and Graphics, 1989, 13(3):305-309.
[23] Tsunemi Takahashi, Hiroko Fujii, Atsushi Kunimatsu, Kazuhiro Hiwada,Takahiro Saito,Ken Tanaka,Heihachi Ueki.Realistic Animation of Fluidwith Splash and Foam[J],Computer Graphics Forum,2003,22(3):391-400.
[24]李积德.船舶耐波性[M].北京:国防工业出版社,1981.
[25]文圣常,余宙文.海浪理论与计算原理[M].北京:科学出版社,1984.
[26]聂卫东,康凤举,褚彦军,杨惠珍,基于线性海浪理论的海浪数值模拟[J],系统仿真学报,2005,17(5):1037-1039.
[27]赵希人 刘胜,关于固定波面海浪模型的理论研究.《海洋学报》.Vol.11,No2,[989,226-232]
[28]宋志明,康凤举.视景仿真的关键技术[J].计算机应用2004,24(5):67-68
[29]杨怀平,孙家广.基于海浪谱的波浪模拟[J].系统仿真学报,2002,14(9):1175-1178
[30]李广鑫,丁振国,詹海生,周利华.一种面向虚拟环境的真实感水波面建模算法[J].计算机研究与发展,2004,11(9):1581-1585.
[31]罗笑南等.计算机图形学[M].广州:中山大学出版社,1996
[32]白建军,朱亚平,梁辉,姚东等.OpenGL三维图形设计与制作[M].北京人民邮电出版社,1999.
[33]Mason Woo,Jackie Neider The Official Guide to Learning OpenGL.美国OpenGL体系评审委员会
[34]Jeff Molofee(NeHe)OpenGL Tutorial
[35]江超宇Visual C++6_0高级编程技术,清华大学出版社
[36]孙波,OpenGL编程实例学习教程,北京大学出版社