ABSTRACT

In this chapter and the next we will turn to special cases of water simulation that allow much faster and simpler algorithms. In both cases, we will use the simplifying assumption that the water surface can be represented as a height field y = h(x, z): the water region is all of the points where y < h(x, z), excluding solids. The most important solid is of course the bottom, which we also represent as a height field y = b(x, z), giving a water region defined by https://www.w3.org/1998/Math/MathML"> b ( x ,   z ) < y < h ( x ,   z )   , https://s3-euw1-ap-pe-df-pch-content-public-p.s3.eu-west-1.amazonaws.com/9781315266008/9ef028a4-40db-4499-bfd1-64ec0ed7470c/content/ueqn12_1_B.tif" xmlns:xlink="https://www.w3.org/1999/xlink"/> and thus the water depth is d(x, z) = h(x, z) − b(x, z). We will actually use depth d as a primary simulation variable, reconstructing the height h = b+d as needed. This geometric simplification rules out many interesting effects such as convincing splashes, breaking waves, droplets or sprays, but still allows many interesting wave motions. 1 For the purposes of the book, we'll also restrict the bottom to be stationary—b(x, z) remains constant— though allowing it to move is a fairly easy generalization if you follow the modeling steps in this chapter.