首页 > 其他分享 >Real-Time Water Waves With Wave Particles - cem yuksel - 2010

Real-Time Water Waves With Wave Particles - cem yuksel - 2010

时间:2023-05-21 23:45:38浏览次数:42  
标签:Real Water yuksel Generation water Wave Particles 模拟

摘要:

This dissertation describes the wave particles technique for simulating water surface waves and two way fluid-object interactions for real-time applications, such as video games.

本文描述了用于模拟水面波的波粒子技术和用于视频游戏等实时应用的双向流体-物体相互作用。

Water exists in various different forms in our environment and it is important to develop necessary technologies to be able to incorporate all these forms in real-time virtual environments. Handling the behavior of large bodies of water, such as an ocean, lake, or pool, has been computationally expensive with traditional techniques even for offline graphics applications, because of the high resolution requirements of these simulations.

水在我们的环境中以各种不同的形式存在,开发必要的技术以将所有这些形式融入实时虚拟环境是很重要的。处理大型水体(如海洋、湖泊或游泳池)的行为,即使对于离线图形应用程序,传统技术的计算成本也很高,因为这些模拟的分辨率要求很高。

A significant portion of water behavior for large bodies of water is the surface wave phenomenon. This dissertation discusses how water surface waves can be simulated efficiently and effectively at real-time frame rates using a simple particle system that we call \wave particles." This approach offers a simple, fast, and unconditionally stable solution to wave simulation. Unlike traditional techniques that try to simulate the water body (or its surface) as a whole with numerical techniques, wave particles merely track the deviations of the surface due to waves forming an analytical solution. This allows simulation of seemingly infinite water surfaces, like an open ocean.

对于大型水体来说,水的行为有很大一部分是表面波现象。本文讨论了如何使用我们称之为波浪粒子的简单粒子系统以实时帧速率高效地模拟水面波。“这种方法为波浪模拟提供了一种简单、快速、无条件稳定的解决方案。与试图用数值技术模拟水体(或其表面)作为一个整体的传统技术不同,波浪粒子只跟踪由于波浪形成分析解而导致的表面偏差。这允许模拟看似无限的水面,比如开阔的海洋。

Both the theory and implementation of wave particles are discussed in great detail. Two-way interactions of floating objects with water is explained, including generation of waves due to object interaction and proper simulation of the effect of water on the object motion. Timing studies show that the method is scalable, allowing simulation of wave interaction with several hundreds of objects at real-time rates.

详细讨论了波粒子的理论和实现。解释了漂浮物体与水的双向相互作用,包括物体相互作用产生的波浪,以及水对物体运动影响的适当模拟。时序研究表明,该方法是可扩展的,可以实时模拟波浪与数百个物体的相互作用。

Contents(目录)

I INTRODUCTION(简介) : : : : : : : : : : : : : : : : : : : : : : : : : : : 1
1.1. Motivation of Wave Particles(波动粒子的动机) . . . . . . . . . . . . . . . . . . 6
1.2. Summary of Wave Particles(波动粒子的总结) . . . . . . . . . . . . . . . . . . . 8
1.3. Overview(概述) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
II RELATED WORK ON WATER SIMULATION(水模拟的相关工作) : : : : : : : : : : 12
2.1. Explicit Surface Modeling(显式曲面建模) . . . . . . . . . . . . . . . . . . . . 12
2.2. Height Field Simulations(高度场模拟) . . . . . . . . . . . . . . . . . . . . 13
2.3. Lagrangian Fluid Simulations(拉格朗日流体模拟) . . . . . . . . . . . . . . . . . . 14
2.4. Eulerian Fluid Simulations(欧拉流体模拟) . . . . . . . . . . . . . . . . . . . 15
2.5. Real-time Fluid Simulations(实时流体模拟) . . . . . . . . . . . . . . . . . . . 18
III WATER SIMULATION WITH WAVE PARTICLES(波动粒子水模拟) : : : : : : : : 21
3.1. Visual Analysis of Large Bodies of Water(大型水体的可视化分析) . . . . . . . . . . . 21
3.2. The Wave Equation(波动方程) . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.1. 1D Wave Equation(一维波动方程) . . . . . . . . . . . . . . . . . . . . 24
3.2.2. 2D Wave Equation(二维波动方程) . . . . . . . . . . . . . . . . . . . . 25
3.3. Representing Waves with Particles(以粒子的方式表示波) . . . . . . . . . . . . . . . 26
3.4. Wave Particles in 2D . . . . . . . . . . . . . . . . . . . . . . . 27
3.5. Wave Particles in 3D . . . . . . . . . . . . . . . . . . . . . . . 29
3.5.1. Linear Wavefronts . . . . . . . . . . . . . . . . . . . . 30
3.5.2. Expanding and Contracting Wavefronts . . . . . . . . 31
3.6. Diffraction and a Valid Solution to the Wave Equation . . . . 35
3.7. Radial Definition of Wave Particles . . . . . . . . . . . . . . . 37
3.8. Subdivision . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.9. Boundary Behavior . . . . . . . . . . . . . . . . . . . . . . . 44
3.10. The Circular Motion of Water Waves . . . . . . . . . . . . . . 47
3.11. Longitudinal Deviation . . . . . . . . . . . . . . . . . . . . . 50
IV WATER-OBJECT INTERACTION : : : : : : : : : : : : : : : : : 53
4.1. Object to Water Coupling . . . . . . . . . . . . . . . . . . . . 55
4.1.1. Physical Wave Generation . . . . . . . . . . . . . . . . 56
4.1.2. Effect of Objects on Existing Waves . . . . . . . . . . 58
4.1.3. Energy Preservation vs. Volume Preservation . . . . . 60
4.1.4. Heuristics for Wave Generation . . . . . . . . . . . . . 60
4.1.4.1. Wave Placement Heuristics . . . . . . . . . . 61
4.1.4.2. Wave Direction Heuristics . . . . . . . . . . . 65
4.1.4.3. Wave Size Heuristics . . . . . . . . . . . . . 69
4.1.5. Wave Particle Generation . . . . . . . . . . . . . . . . 71
4.1.6. Limitations . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2. Fluid to Object Coupling . . . . . . . . . . . . . . . . . . . . 78
4.2.1. Buoyancy Force . . . . . . . . . . . . . . . . . . . . . 79
4.2.2. Drag and Lift Forces . . . . . . . . . . . . . . . . . . . 80
V IMPLEMENTATION OF WAVE PARTICLES : : : : : : : : : : : 86
5.1. Implementing the Wave Particle Simulation . . . . . . . . . . 86
5.1.1. Wave Particle Iteration . . . . . . . . . . . . . . . . . 87
5.1.1.1. Computing Wave Particle Positions . . . . . 88
5.1.1.2. Subdivisions and Reflections . . . . . . . . . 90
5.1.2. Water to Object Coupling . . . . . . . . . . . . . . . . 95
5.1.2.1. Computing the Buoyancy Forces . . . . . . . 96
5.1.2.2. Computing the Drag and Lift Forces . . . . . 99
5.1.3. Rigid Body Simulation . . . . . . . . . . . . . . . . . 101
5.1.4. Wave Particle Generation . . . . . . . . . . . . . . . . 102
5.1.4.1. The Silhouette Pyramid Method . . . . . . . 104
5.1.4.2. Generating Wave Particles . . . . . . . . . . 110
5.1.4.3. Handling Wave Generation Bias . . . . . . . 111
5.1.5. Height Field Generation . . . . . . . . . . . . . . . . . 112
5.1.5.1. Rendering Wave Particles as Points . . . . . 113
5.1.5.2. Filtering Wave Particle Points . . . . . . . . 114
5.1.5.3. Separable Filter Approximation . . . . . . . 116
5.1.5.4. Additional Data in the Height Field . . . . . 117
5.1.5.5. Projected Height Field . . . . . . . . . . . . 118
5.2. Water Rendering . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.2.1. Reflections . . . . . . . . . . . . . . . . . . . . . . . . 121
5.2.2. Refractions . . . . . . . . . . . . . . . . . . . . . . . . 125
5.2.3. Caustics . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.2.3.1. Fast Real-time Caustics from Height Fields . 128
5.2.3.2. A Two-Pass Algorithm for Fast Caustics . . 131
5.3. The Overall Water Simulation and Rendering System . . . . 135
VI RESULTS : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 139
6.1. Qualitative Analysis . . . . . . . . . . . . . . . . . . . . . . . 139
6.1.1. Analyzing the Wave Shape . . . . . . . . . . . . . . . 139
6.1.2. Analyzing Water to Object Coupling . . . . . . . . . . 141
6.1.3. Analyzing Wave Generation . . . . . . . . . . . . . . . 144
6.2. Performance Analysis . . . . . . . . . . . . . . . . . . . . . . 146
VII DISCUSSION : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154
7.1. Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
7.1.1. Computation Speed . . . . . . . . . . . . . . . . . . . 155
7.1.2. Unconditional Stability . . . . . . . . . . . . . . . . . 156
7.1.3. Scalability . . . . . . . . . . . . . . . . . . . . . . . . 158
7.1.4. User Interaction . . . . . . . . . . . . . . . . . . . . . 159
7.1.5. Parallelization . . . . . . . . . . . . . . . . . . . . . . 160
7.1.6. No Precomputation . . . . . . . . . . . . . . . . . . . 161
7.1.7. Art-Directability . . . . . . . . . . . . . . . . . . . . . 162
7.2. Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.2.1. Wave Simulation Only . . . . . . . . . . . . . . . . . . 163
7.2.2. Breaking Waves . . . . . . . . . . . . . . . . . . . . . 164
7.2.3. Diffraction . . . . . . . . . . . . . . . . . . . . . . . . 165
7.2.4. Dispersion . . . . . . . . . . . . . . . . . . . . . . . . 169
7.2.5. Varying Depth and Wave Refraction . . . . . . . . . . 171
7.2.6. Physical Wave Generation . . . . . . . . . . . . . . . . 173
7.2.7. Physical Forces on Objects . . . . . . . . . . . . . . . 175
7.3. Future Extensions . . . . . . . . . . . . . . . . . . . . . . . . 177
7.3.1. Splashes, Bubbles, and Foam . . . . . . . . . . . . . . 177
7.3.1.1. Splashes . . . . . . . . . . . . . . . . . . . . 178
7.3.1.2. Bubbles . . . . . . . . . . . . . . . . . . . . . 181
7.3.1.3. Foam . . . . . . . . . . . . . . . . . . . . . . 182
7.3.2. Level of Detail Approaches . . . . . . . . . . . . . . . 183
7.3.3. Wave Choreography . . . . . . . . . . . . . . . . . . . 185
7.3.4. Integration with a 3D Fluid Solver . . . . . . . . . . . 185
VIII CONCLUSION : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 188
REFERENCES : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 190
APPENDIX A : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 198
APPENDIX B : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 202
APPENDIX C : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 204
VITA : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 210

标签:Real,Water,yuksel,Generation,water,Wave,Particles,模拟
From: https://www.cnblogs.com/2008nmj/p/17419509.html

相关文章

  • Wave Particles(波动粒子) - Cem Yuksel
    参考:http://www.cemyuksel.com/research/waveparticles/Thisiscapturedfromourreal-timesimulation,showingthreeboatsintheopenocean.Thedynamicsurfacewavesgeneratedduetoboatmotionaresimulatedusingwaveparticles.Inaddition,boatmotion......
  • Unreal Engine 大象无形学习笔记(第二部分:虚幻引擎浅析)
     Q1.虚幻引擎的Main函数在哪?LaunchWindows.cpp中找到WinMain。Q2.虚幻引擎为什么要引入模块机制?编辑器模式、发布模式要单独配置非常麻烦。工具:UnrealBuildTool包含大模块:Runtime、Development、Editor、Plugin每个模块包含:Public、Private文件夹,.build.cs文件作用......
  • Unreal Engine 大象无形学习笔记 (第一部分:虚幻C++编程)
    Q1.什么时候继承自UObject类,什么时候声明纯C++类?UObject自带功能:1.垃圾收集:继承自UObject并被标记为UProperty的变量,会被引擎自动进行生命周期管理。2.Referenceupdating引用自动更新3.反射4.序列化:纯C++类也可以手动实现5.Automaticupdatingofdefaultproperty......
  • realsense d435i获取imu数据
      #!/usr/bin/pythonfrom__future__importprint_functionimportnumpyasnpimportsysimportjsonimportctypesimportosimportbinasciiimportstructimportpyrealsense2asrsimportctypesimporttimeimportenumimportthreading#L515READ_TABL......
  • realsense d435i获取相机姿态数据
    获取RealSenseD435i相机的姿态数据:安装RealSenseSDK2.0:您可以从官方网站(https://www.realsense.com/)下载并操使用RealSenseSDK,也可以现有帐RealSenseSDK.html连接相机:将RealSenseD435i相机连接到计算机,并确保相机的USB接口已正确连接。打开RealSenseViewer:启动......
  • JQuery 层级选择器(next(),preAll(),siblings(),parent())
    JQuery层级选择器(next(),preAll(),siblings(),parent()) $('#d1div') //取所有子元素,不管是几层。$('#d1>div') //取直接子元素,一层$('#d1+div') //之后紧邻的一个同级元素$('#d1~div') //之后的所有同级元素$('#d1').next() //后面的一个同级元素$('#d1&......
  • elasticsearch7.13.4(7.X版本)使用RealtimeSignalProcessor进行删除时,索引_doc文档不会
    环境django==3.8.18elasticsearch==7.13.4drf-haystack==1.8.11django-haystack==3.2.1原因django-haystack如果没有指定HAYSTACK_IDENTIFIER_METHOD,默认使用<app.label>.<object_name>.<pk>作为id进行删除,而大部分生成文档时都是默认使用纯数字作为id。解决方法将删除id......
  • real love! 篮球&音乐&相声
    我觉得我配得上真正热爱,回想起来,看球也10年了,无时无刻,甚至想无时无刻看球,看新闻,这十年间很多场景新闻都在木,有时候再看集锦时总有,这场我看过直播,我知道当时是怎么回事。前两个看了一个心理学,上瘾心理学,或者兴趣心理。就是一点点重复奖励,比如投球,投一个,进了,投第二个,进了,第三个,没进......
  • 06 Real-Time Ray-Tracing
    1.Tempora1SPP包含如下四条光线。但是一个像素只用1spp会噪声很严重。因此RTRT的主要目的是降噪,即滤波。1.1时间复用TemporaG-Buffer几何缓冲区:记录屏幕空间的信息;在光栅化的时候顺便得到。BackProjection首先,拿到当前帧像素的世界坐标,可以从G-buffer中拿到,否......
  • 05 Real-Time Physically-Based Materials
    1.MicrofacetBRDF1.1菲涅尔项菲涅尔项:反射光线强度与入射角的关系。对于绝缘体而言,观察方向越是平行于平面,反射越强,图像越清晰;因为镜面反射可逆,所以反之亦然。对于金属而言,规律相似,但是变化没有绝缘体那么明显。菲涅尔项的值与角度以及两个介质的折射率有关,可以采用简......