摘要:
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