Computer graphics for water modeling and rendering: a survey

Computer graphics for water modeling and rendering: a survey

Future Generation Computer Systems 20 (2004) 1355–1374 Computer graphics for water modeling and rendering: a survey A. Iglesias Department of Applied...

264KB Sizes 0 Downloads 53 Views

Future Generation Computer Systems 20 (2004) 1355–1374

Computer graphics for water modeling and rendering: a survey A. Iglesias Department of Applied Mathematics and Computational Sciences, University of Cantabria, Avda. de los Castros s/n, E-39005 Santander, Spain Available online 2 July 2004

Abstract A key topic in computer graphics is the realistic representation of natural phenomena. Among the natural objects, one of the most interesting (and most difficult to deal with) is water. Its inherent complexity, far beyond that of most artificial objects, represents an irresistible challenge for the computer graphics world. Thus, during the last two decades we have witnessed an increasing number of papers addressing this problem from several points of view. However, the computer graphics community still lacks a survey classifying the vast literature on this topic, which is certainly unorganized and dispersed and hence, difficult to follow. This paper aims to fill this gap by offering a historical survey on the most relevant computer graphics techniques developed during the 1980s and 1990s for realistic modeling, rendering and animation of water. © 2004 Elsevier B.V. All rights reserved. Keywords: Water waves; Water modeling; Water rendering; Water animation; Bump mapping; Particle systems; Height fields; Environment maps; Solid textures; Navier–Stokes equations; Fluid dynamics; Caustics

1. Introduction One of the most challenging problems in computer graphics is the realistic modeling and rendering of water. In comparison with other natural objects and phenomena, water is at the same time simpler and more difficult to simulate. Its simplicity comes from the fact that it is an almost incompressible, relatively homogeneous fluid. If it did not move, a large mass of water such as the ocean could be well represented by a flat surface. Furthermore, since water is basically a transparent fluid, all its complexity would be reduced to E-mail address: [email protected] (A. Iglesias). URL: http://personales.unican.es/iglesias.. 0167-739X/$ – see front matter © 2004 Elsevier B.V. All rights reserved. doi:10.1016/j.future.2004.05.026

rendering, which is by no means trivial due to some complex optical effects such as water transparency and reflectance. But because water is a fluid, it can move in a very complicated way. Therefore, any attempt to capture its dynamical behavior accurately must include time explicitly in the motion equations. Due to these and other reasons we will discuss later on, the modeling and rendering of water has been a traditional problem in computer graphics during the last two decades. However, the computer graphics community still lacks a survey classifying the vast literature on this topic. The aim of this paper is to offer a historical survey of the most relevant computer graphics techniques developed during the 1980s and 1990s for realistic modeling, rendering and animation of water. The

1356

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

term “historical” is employed here to emphasize that the survey has a chronological character. A major advantage of this approach is to allow the readers to gain a clear perspective on how progress in computer graphics has improved the rendering and animation of water over time. Yet, a major shortcoming is that models from different years might be described into different paragraphs or sections, even though they are based on the same principles and/or methods. Note also that the term “realistic” has different meanings in computer graphics depending on the goal being sought. The physical accuracy required for scientific studies is obviously higher than that for computer games. Conversely, high-quality illumination models are not generally expected for scientific visualization applications while they are basic components in computer-generated films. In addition, even our concept of realism has evolved drastically over time in response to the extraordinary advances in both software and hardware. Some recent papers have dealt with the concept and the different levels of realism (physical realism, photo realism and functional realism) within the framework of computer graphics [22] and fluid visualization [1]. However, in this paper we restrict ourselves to those techniques for simulating the behavior of water from the point of view of computer graphics exclusively, ignoring those mostly intended for fluid visualization. The reader will realize how far apart the two approaches are: in computer graphics we are concerned with generating a visually convincing appearance of motion whether or not this motion actually follows the laws of physics. Of course, this computer graphics approach very often yielded unrealistic effects, making it unsuitable for real experiments. But fortunately, it was able to produce very beautiful images and animations, which is actually the scope of this paper. In the words of Fournier and Reeves [30]: We do not expect any “physical” answer from the model. In fact, we do not ask any question except “does it look like the real thing”. The structure of this paper is the following: in Section 2, we analyze the forerunner works of the period 1980–1985. In Section 3, the works carried out during the period 1986–1988 are briefly described. The methods developed during the early nineties and based on either particle systems or approximate equations of fluid dynamics are discussed in Section 4, while their extensions performed during the period 1993–1998 are

the subject of Section 5. Section 6 describes the most recent developments and the most promising current fields of research. Finally, the paper closes with the main conclusions of this work.

2. Earlier works: 1980–1985 The early 1980s marked the starting point of research on the computer modeling and rendering of natural phenomena. However, relatively little time was spent on modeling the appearance and behavior of water. At that time, research into this topic basically concentrated on representing a large mass of water without boundaries, such as the ocean. On the other hand, water was seen as a compact fluid rather than a mixture of individual droplets. The first attempts to render waves in water were based on the bump mapping technique developed by Blinn in 1978 [6]. This method allows realistic roughtextured surfaces to be obtained by perturbing the surface normal. Blinn realized that true rough-textured surfaces have a small random component in the surface normal and hence in the light reflection direction, which can be well reproduced by adding a perturbation function to the surface in the direction of the normal vector. This solution is better than adding texture patterns to smooth surfaces because, in this last case, the resulting surfaces also appear smooth. Of course, different perturbation functions can be used to produce different effects. For instance, Schachter [85] proposed a model for fields of random waves that involved a table look-up of precomputed narrow band noise waveforms (a technique intended for real-time applications, and which was implemented in hardware). Other early references were two sets of Siggraph slides not described elsewhere. The first one is the “Pyramid” slide by Gary Demos et al. in 1981 [80], where the waves in the sunset are obtained by bump mapping the flat surface with cycloidal waveforms. The second one is the “Night Castles” slide, by Ned Green, in the 1982 collection, which used sine waves for the bump mapping technique. These beautiful images lack some important realistic effects, such as the reflection of objects in the water. To overcome these limitations, Witthed’s film “The Compleat Angler” combined bump mapping with ray tracing, a well-established technique to render trans-

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

parencies by taking into account reflection and refraction of light (see [36] for a nice introduction to the field). It should be remarked here that as early as in the 1970s there were some references to procedural models for ray tracing, such as [51,68] (see also [84]). In “The Compleat Angler”, ray tracing was applied to animate realistic reflections from ripples in a small pool, where the ripples were created by applying a single sinusoidal function to perturb the surface normal [105]. Although based on ray tracing too, Max used a different approach to render the wave surfaces for his famous film “Carla’s Island” [60]. His quite simple hydrodynamical model was based on the idea that the wave model is represented by an approximate solution (valid only for waves of small amplitude) in which the wave velocity v is proportional to the square root of the wavelength L and it is given by:   gL g v= = (1) 2π k where k = 2π/L is called the wave number (the spatial analogue of the frequency), and g represents the acceleration of gravity. He also assumed a first linear approximation of the Stokes model (an infinite Fourier series which resembles the trochoidal waves up to the third-order terms) for the wave surface, meaning that the wave trains pass through each other without modification (clearly, a non-realistic situation). In addition, basic assumptions of this model are that fluid density is constant and fluid flow is both uniform and irrotational. Under these assumptions, the model for the wave surface was given by a sum of cosine functions corresponding to individual trains of waves of low amplitude as m  f (x, y, t) = −h + ai cos(ri x + si y − ωi t) (2) i=1

where h is the distance of the mean sea level below the eye at z = 0, m is the number of wave trains, ai represents the amplitude of the wave train specified by a wave vector (ri , si ) such that ri2 + si2 = ki2 with ki being the wave number of the train i and wi is the angular frequency in radians per second. In the model, additional terms from Stokes’ approximation [94] of the wave equation might be added to large-amplitude waves. Unfortunately, the author considered the second-order term should be added to the largest wave only, so these (basically) linear waves exhibited a notable deficiency:

1357

they formed a self-replicant pattern when viewed over any reasonably large area. On the other hand, in shallow water nonlinear convective inertia terms cannot be ignored, meaning that the flow is no longer uniform. Finally, his linear small-amplitude theory was restricted to deep water, but it is in shallow water where waves break and this theory fails to predict this phenomenon. The rendering scheme was a ray tracing model in which ocean waves and islands were rendered by different but related algorithms [59]. His development was based on the Fishman and Schachter algorithm [23] for rendering the raster images of the height field, i.e., single valued functions of two variables. This kind of representation, given by a function y = f (x, z) for static images, allows us to easily combine numerous waves into one surface by superposition (simply adding together the heights of the individual wave components, in a similar way as in Eq. (2)). Max modified the algorithm (one vertical scan line at a time) to reproduce the detail of small ripples near the eye without wasting time near the horizon. The same height field was used for the islands, which were represented as elliptical paraboloids with superimposed cosine terms to give the rolling hills. Finally, as pointed out by the author, this scheme addressed neither the refraction of light within the water nor the problem of rendering ocean scenes with clouds, later analyzed in [32,33,61]. To solve these problems, Perlin applied bump mapping through a set of 20 cycloidal waveforms, each radiating in a circular fashion from a randomly placed center point [78]. Then, the appearance of the ocean surface was improved by combining bump mapping with a rich texture map based on nonlinear functions, the so-called solid texture. This technique, which is independent of the surface geometry or the coordinate system, defines a texture throughout a three-dimensional volume, where the object to be textured is embedded. The textured surface is obtained as the intersection of the object and the three-dimensional texture volume [20]. As remarked by Perlin [78] potential advantages of this approach are that shape and texture now become independent, in the sense that the texture does not need to fit onto the surface and that the database required for this model is extremely small and thus the computational requirements are drastically reduced. The solid texture was applied by Perlin to generate realistic images of clouds, which could then be incorporated into the ocean scenes.

1358

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

Finally, since each wave train moves outward linearly over time, the simple addition of a linear function of time allows these water scenes to be animated. Another approach to water simulation is that of Norton et al. [74]. They used frequency limited (“clamped”) analytical functions to antialias textured surfaces by bandwidth limiting in object space. The basic idea was later applied to reduce the amplitude of waves which are very short relative to the pixel diameter. These schemes only work well when the viewer is some distance away from the water so that the ocean surface appears flat. Although these initial developments were able to produce very beautiful images, they still needed further research in order to be suitable for realistic rendering and animation. This is due to the techniques the previous methods were based on, mostly bump mapping for modeling (such as [40,78,85,105]) and ray tracing for rendering (such as [59,60,105]). Bump mapping is inexpensive, but it is not sufficient to simulate and animate waves in general. Since in this technique the actual surface is flat, bump mapped waves do not exhibit realistic silhouette edges or intersections with other surfaces. In addition, these waves cannot shadow one another or cast shadows on other surfaces. Thus, these methods could not produce realistic scenes containing a seashore; they are forced to restrict themselves to simple images of the ocean surface as one might see it from an aircraft well out to sea. However, when the viewer is near the surface, the three-dimensional nature of the surface becomes more important. A possible solution is the “height field” technique introduced by Fishman and Schachter [23] and later modified by Max [59]. Yet, this scheme is also seriously limited, as its feasible viewing geometry is restricted by its own height field algorithm: the camera must be above the top of the waves (maximum height field value), the viewing direction must lie in a horizontal plane y = constant and the camera must also be upright, thus preventing the camera from being tilted. On the other hand, ray tracing also exhibits some remarkable disadvantages, such as its tendency to aliase arising from point sampling distant waves near the horizon, the difficulty of rendering complex procedural models and the most important one, its immense calculation time requirements, making animation unapproachable. In fact, although many improved raytracing methods have been proposed since then [3], ray tracing is still not adequate for computer animation.

3. Mid period: 1986–1988 During this period, the realism of water simulations was improved in several directions. On one hand, considerable effort was devoted to simulating the interaction between the fluid and a solid. In addition, some ocean waves effects (such as wave refraction and collisions with obstacles) were incorporated into the models. Roughly speaking, wave refraction implies that when the waves approach the shore from deep water, their crests tend to become parallel to the shoreline regardless of their initial orientation. This effect has important consequences in water rendering and animation: the models ignoring wave refraction may produce implausible situations, such as the crests running perpendicular to the beach in [59]. As remarked by several authors, in Max’s film “Carla’s Island” the ocean waves appear to cut right through the islands as if the islands were made of air. In general, the proposed solution for modeling the ocean waves and some of their associated effects was the application of more realistic hydrodynamical models [30,77,101]. It should be remarked, however, that there is no hydrodynamical model able to fully and realistically describe the behavior of any real ocean waves. In addition, a model that might be completely useless to a physicist or an oceanographer might be very good for computer graphics and vice versa. Therefore, these approaches must be understood as simple (and often dramatic) approximations intended for rendering and animation purposes only, with no physical meaning in general. On the other hand, the rendering techniques were substantially improved, mostly by the introduction of particle systems [30,77]. In the water simulation schemes, they were generally applied to model the foam and the spray generated by wave breaking and collisions with obstacles. The particle systems were firstly introduced by Reeves [82] (see also [83]) to describe natural phenomena which cannot be well described by means of polygons or curved surfaces (trees, grass, wind, etc.). Their ability to model complex phenomena lies in the fact that these particles do not have smooth, well-defined surfaces but rather irregular, complex surfaces with variable shapes. In addition, the characteristics and shape of the particles change with time under the action of physical or stochastic models. For example, in [83] stochastic

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

wind functions and wind maps were employed for shading and rendering particle systems representing both gusts of wind and the motion of wind-blown blades of grass. Finally, the particles exhibit a great flexibility: they can be generated at any time, move within the system and die or leave it over time. The general model of wave motion is highly nonlinear, and has no convenient solutions, so many simplified and idealized models have usually been applied instead. For example, Peachey [77] considered that the ocean surface was modeled with a height field, thus eliminating waves whose crests curl forward. From this point of view, Peachey’s model seems to be closely related to Max’s model (see Section 2). However, the height field is given by y = f (x, y, t), where t is the time, which is advanced for each successive frame of an animation. Another difference is that Peachey dealt with wave refraction due to wave velocity changing with depth. His model is based on the the Airy model of sinusoidal waves of small amplitudes. In this linear model, the velocity v and the wavelength L of a wave depend on the depth of the water d as follows:      g gL 2πd  v = tanh(kd) = tanh k 2π L   L = vT

(3)

where k and g are as in Eq. (1) and T is the period (or equivalent, the frequency of the wave is 1/T ). Note that in deep water (for instance, d ≥ L/4), tanh(kd) approaches 1, implying that Eqs. (1) and (3) are similar (in other words, Eq. (1) is only valid for deep water). On the contrary, in shallow water (for instance, d ≤ L/20), tanh(kd) approaches kd, and therefore v approaches √ gd. Another interesting ocean wave effect is the spray from breaking waves and from the collision of waves with partially submerged obstacles. The breaking waves appear when the speed of circular motion of the water in the crest of the wave exceeds the speed of the wave itself. In [77], a particle system for each breaking wave was generated, where the initial position of each particle is at the crest of the wave and its initial velocity is in the same direction as the wave motion. Then, to avoid excessively uniform particle behavior, stochastic perturbations [29] with a Gaussian distribution were added to the velocity of the particles. Finally,

1359

another particle system model was generated to simulate the spray from the collision of waves with partially sumerged obstacles (rocks, piers, etc.). Since the classical ray-tracing scheme does not include the particle system model of spray, the rendering was performed by a combination of different techniques: firstly, a scanline algorithm (which is actually an adaptation of the general Lane–Carpenter subdivision technique for parametric surfaces) for displaying the wave surfaces is applied. Secondly, the particle systems were generated separately as small white spheres shaded the same color and their shade was varied by a very small random component. In addition, a slight darkening of the particles was added to simulate the shadowing of particles by other particles and objects. Finally, both models were integrated by using a novel variation of the A-buffer technique (an anti-aliased alternative to the standard Z-buffer hidden surface technique) for hidden surface removal. This combination is able to determine whether the particles obscure or are obscured by other surfaces in the scene (such as wave surfaces or obstacles). Another scheme for ocean waves simulation including wave refraction and other wave effects was considered by Fournier and Reeves in [30]. Their proposal was based on the Gerstner–Rankine model, proposed in oceanography long ago [35,81]. Roughly speaking, this model establishes that particles of water describe circular or elliptical stationary orbits. Thus, the authors considered that each particle of the free surface describes a circle around its rest position (x0 , y0 , z0 ). Assuming that the plane of the sea at rest is the plane XY and the Z axis is pointing up, the equation of the motion of a particle is given by:

x = x0 + r sin(k x0 − ωt) (4) z = z0 − r cos(k x0 − ωt) which, varying x0 and fixing z0 leads to a trochoid, a generalization of a cycloid. This is the basic model; realistic wave shapes and other needed effects, such as those due to the depth (like wave refraction and surf) and the wind can be easily reproduced by simply varying some parameters of these orbit equations. To control the shape of the ocean the authors introduced several trains of waves, i.e. groups of waves sharing the same basic characteristics (heights, periods and wavelengths) and the same phase origin. Of course,

1360

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

each train of waves has its own set of parameters and optional stochastic elements. They allow the “variability” and “randomness” characteristics of the sea to be introduced via a combination of small variations within a train and large variations between trains. Since these variations were basically applied to the height and the wavelength, which can be made a function of time, animation could be easily incorporated in this way. In addition, the authors derived a rule for the generation of spray and foam from breaking waves: spray is generated when the difference between the particle speed and the surface speed projected in the direction of the normal to the surface exceeds a set threshold (usually related to the curvature); otherwise, foam is generated. When generated, spray is sent in the direction of the normal, whereas the foam is sent sliding along the wave surface. In [30], the ocean surface was modeled as a parametric surface which obviously allows traditional rendering techniques to be applied, including ray tracing [46,99] and adaptive subdivision [16]. The color and shading of the ocean surface were simulated through an environment map, a technique introduced by Blinn and Newell in 1976 [7]. Their basic assumption is that the scene environment is composed of objects and lights distant from the object to be rendered (the wave surface, in this case). Then, each image of the surrounding environment is mapped onto the inside of a gigantic sphere with the rendered object at its center. The color of a point on the wave is determined by tracing a ray from the camera to the object, reflecting it over the surface normal and tracing the reflected ray outward to the sphere, thus giving us the index of the image and hence the color to be reflected. The rendering of the spray and foam was achieved through a particle system based program, in which particles for the spray are assumed to follow the laws of motion, whereas particles for the foam are controlled by the model itself. To render the terrain, a set of unequally spaced, three-dimensional data points were originally considered. Then, an interpolating surface was built by applying a version of Shepard’s method [87]. Similar ideas were applied to specify the depth of the ocean floor. Finally, bump mapping was applied to obtain some additional effects, such as water shimmering and water chop. For animation purposes, the bump map was moved over time just like trains of waves were moved over time.

Almost at the same time, other methods for modeling water surfaces based on generalized stochastic subdivision [55], Fourier synthesis [62], etc., were suggested. These methods worked well for producing still images, but were unsuitable for animation in the general case. The reasons are different, depending on the chosen methods: the generalized stochastic subdivision methods need to determine the values for the autocorrelation or power spectrum function of the desired noise [55]. This is a very difficult task that seldom can be achieved empirically and so we are very often forced to apply a simple trial-and-error method. On the other hand, the methods based in Fourier synthesis do not include realistic models for the evolution of the surface over time, so actual phenomena such as wave refraction and depth effects were totally passed over. For example, in [62], the authors used an empirical wind-driven sea spectrum model to filter white-noise images. The ocean images were generated from these white-noise images by using the forward fast Fourier transform (FFT) and the inverse FFT, thus representing a fully developed sea in nature. The images were then rendered with a ray tracing algorithm to produce realistic ocean scenes. This work focused on synthesizing fully developed seas in deep water rather than seas in shallow water (where effects such as wave refraction and wave breaking exist). Animation in this model was achieved by two different phase manipulation techniques: the first one consists of modifying the dominant frequency components (taking as that those frequencies bounded by two-thirds of the energy of the peak frequency) independently of the surrounding components. Unfortunately, the amount of the shift to be applied to these dominant components is decided by trial and error, making this approach difficult to animate correctly. The second one is based on Eq. (1) so it is valid only for deep water waves, thus limiting the range of application of this method. Rendering was carried out by ray-tracing the ocean wave height field by a similar approach to that of Kajiya [46]. The difference is that, instead of dealing with triangles, rectangular boxes parallel to the X, Y and Z axes are considered, so that the intersections are trivial and fast. These boxes are subdivided for successive refinement and the approximation given by Coquillart and Gangnet in [14] was applied to the resulting quadtree structure.

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

Another earlier reference of note dealing with wave refraction is [101]. In this approach, Snell’s law was applied to control the changes in direction of the ocean waves due to wave refraction. The motion equations are similar to Eq. (3) so the observed behavior is also similar to that in [30,77]. It should be remarked however that, although finally published in 1987, this work was essentially developed before the appearance of these two papers and hence without being aware of their methods. On the other hand, the wave orthogonals (the normals to the wave front) were wave-traced similarly to the rendering algorithm of ray tracing. A ray representing a wave’s front direction of propagation was followed and tested for the nearest intersection with the contour lines of the ocean floor. The angle of refraction was obtained from Snell’s law and the resulting ray was tested for intersection, and so on. This process was then simplified taking into account that, because the topography of the contour surface and the direction of the incoming waves remain constant, wave refraction is independent of the viewer’s viewpoint and hence it can be computed only once. In addition, the authors took advantage of the fact that wave refraction is essentially a two-dimensional effect and thus computationally less expensive than conventional ray-tracing. To improve realism, the ocean surface was treated as a true three-dimensional surface. It was obtained from a set of piecewise linear approximations of the contour lines defined interactively by the user by using a digitizing tablet. Then, a Beta-spline [4] was used to represent the surface, the tension shape parameter β2 (see [5] for a description) being used to add more complexity to the surface: higher values correspond to sharper edges within the surface. This parameter was also changed locally to create smooth troughs and sharper crests. To do that, the tension associated with a control vertex is changed according to the height of that control vertex. On the other hand, instead of using ray tracing, two texture mapping schemes (both including viewer orientation, surface normal orientation and some laws of optics, such as Fresnel’s law of reflection) were employed to render the ocean waves. Both texture maps were created by hand and contained the reflected and the refracted color information, respectively. Then, the final color for a point is calculated as a linear combination of both types of color information. The differences between both schemes are related to the

1361

way of assigning “weights” to this linear combination. These schemes are not as physically accurate as ray tracing but they are computationally quicker. In addition, although many other ocean water effects (such as wave reflection, wave diffraction, wet sand and foam created when the wave hits the shore) are still not considered in these models, they produce very beautiful pictures and only reasonable effort is required for animation.

4. Early nineties: 1989–1992 Although the previous works developed during the 80s provided adequate models for a number of challenging problems (such as waves hitting the beach, to quote just one example), a significant range of physical phenomena still remained unexplored. A major question was the accurate description of fluid dynamics. Great interest was also placed upon several physical phenomena related to water such as: • state of matter changes such as melting and freezing, • complex natural phenomena such as wetting and drying, • mass transport or flow including meandering, • the behavior of individual droplets and their streams, • interaction with static and dynamic buoyant obstacles, etc. On the other hand, a number of interesting rendering effects, such as the simulation of reflected waves, the interaction between light and water, the analysis of caustics, etc. had not yet been considered by the previous computer graphics techniques. Furthermore, water realistic animation was still in its infancy and it had to be greatly improved. To overcome these limitations, several new models to simulate the fluid dynamics were proposed. Roughly, they can be grouped into two different alternatives, namely: (1) fluid dynamics is simulated by the interaction of a large number of particles; (2) fluid dynamics is described by a set of partial differential equations which are to be solved. Both alternatives are analyzed in the following paragraphs.

1362

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

4.1. Interaction of a large number of particles

are considered. Finally, solids are modeled by setting

The first alternative tried to simulate the fluid dynamics by the interaction of a large number of particles [37,63,90,98]. Thus, in [63] and [98], the authors studied the attraction and repulsion forces between particles to simulate various degrees of fluid viscosity and state of matter change such as melting. For example, the approach in [63] presented a particle based model for fluids, powders and gelatinous solids. This model was based on what the authors called globules, a term intended to avoid connotations with words such as particle or blob, and used to designate the elements of the connected particle system. Globules can be applied for the detection of soft collisions between the particles and obstacles, involving forces which vary gradually with distance, thus allowing globules to flow over one another. The forces acting between the globules xi and xp depend on two scaling factors, one for attraction/repulsion, sr , and another one, sd , (drag) to attenuate the inter-globule force based on distance and defined as follows:   D2 1 − if D2 < cr2 (ri + rp )2 cr2 (ri + rp )2 sr = (5)   0 if D2 ≥ cr2 (ri + rp )2

cr = cd = 2r0 .

and sd =

  1 −  

D2 cd2 (ri + rp )2

0

if D2 < cd2 (ri + rp )2 if

D2



cd2 (ri

+ rp

(6)

)2

respectively. The variables ri and rp are the radius for the globules xi and xp respectively, D is the vector of the positional difference of the globules, and the terms cr and cd are introduced to allow different types of material to be modeled. For instance, for powder-like motion their values are: cr = cd = r0

(7)

where r0 is the inter-globule spacing for which the attraction and repulsion terms cancel out so that the damping only occurs when the globules are under compression. In its turn, to simulate liquids the following values: cr = 2r0 ;

cd = r0

(8)

(9)

As a consequence, for powders and fluids the globules interact with a short range repulsive force and drag, while in the solid state the attraction term is also considered, so globules interact with a short range repulsion, a medium range attraction and long range indifference. The calculation of the forces which the globules exert upon one another is of order O(N 2 ). Fortunately, because the globules have a limited range of influence, a voxelization process can be applied thus reducing the calculation of the forces to an order O(N) problem. In this work, an approximate method for efficient rendering of the globules was also introduced. The basic idea is to simulate that the globules are covered with an isosurface which is actually approximated by smooth-shading spheres based solely on the gradient of a potential function. This approximation is performed in order to allow most hidden surface algorithms (which cannot directly render an isosurface) to be applied. Further, the voxelization scheme mentioned in the previous paragraph can also be applied for rendering. In addition, the frame coherence can be eventually used to avoid recalculation of the voxels which do not suffer any change between frames. An adequate combination of these techniques yields reasonable results for the range of 75–300 globules. On the other hand, the temperature values for a given pair of globules can also be used to simulate changes in their interaction behavior, thus allowing the melting of solids and the freezing of liquids. This temperature effect was proposed in [63] and later analyzed by Tonnesen in [98], through a model describing the changes in geometry and movement of elemental volumes as a consequence of thermal energy and external forces. This model simulates both the liquid and solid states by varying the shape of the potential energy curve as a function of temperature. Objects at hot temperatures behave like fluids, with rapidly varying geometry. At cold temperatures they resemble solids, with a stable shape which can be modified, however, under the influence of appropriate external forces. Changes in topology are modelled by using particles to represent elemental volumes with potential energies between pairs of particles. Particles are rendered using an approach similar to that in [63].

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

Finally, another remarkable reference using this particle interaction scheme is due to Sims [90]. In his work, a waterfall was simulated by applying gravity to thousands of non-interacting water droplet particles and bouncing them off obstacles made of planes and spheres. The water droplets were created at the top of the waterfall, flowed over the last edge at the bottom and then recycled back to the top of the waterfall. These particles of different shapes, sizes, colors and transparencies were rendered by using a parallel rendering particle system incorporating some techniques for increasing the image quality, such as anti-aliasing, hidden surfaces and motion-blur. The combination of some ad hoc tricks (such as the combination of white and blue particles to avoid lighting calculations and exaggerated motion blur to give the flow a smoother look) allow realistic pictures of the waterfall to be obtained [89]. However, as pointed out by the author, more efficient collision detection of surfaces to describe procedural motion for more complex objects (such as rigid body dynamic simulations, for instance) still required further research. For example, additional effects such as the deformations produced on a falling droplet as it enters in contact with a surface were analyzed in [69]. 4.2. Partial differential equations for the fluid dynamics The second approach is to directly solve a partial differential equation (PDE) system describing the fluid dynamics [50]. Of course, this alternative is much more reliable and realistic in terms of physical simulation. The main problem is that a truly accurate simulation of fluid dynamics requires the computation of the fluid motion throughout a volume. This implies that the computation time for each iteration is at least proportional to the cube of the resolution, making the computation prohibitively expensive. Fortunately, for rendering and animation purposes, to obtain very accurate results is less important than other factors, such as the speed of the simulation and the stability of the numerical methods involved within. With this idea in mind, Kass and Miller [50] considered a very simplified subset of water flow where: • the water surface can be represented by a height field,

1363

• the vertical component of the velocity of the water particles can be ignored (so motion is uniform through a vertical column) and • the horizontal component of the velocity of the water in a vertical column is approximately constant. With these simplifications, the motion equations of the water were approximated in terms of a grid of points on the height field, obtaining a wave equation in which the wave velocity is proportional to the square root of the depth of the water. Thus, this method can generate wave refraction with depth and even take into account other features, such as wave reflections, net transport of water and situations in which the boundary conditions change through time altering the topology of the water. Due the height-field representation of the water surface, the two-dimensional motion equations were numerically integrated by using a finite-difference technique. This technique converts the PDEs into ODEs, which can be integrated through a first-order implicit method. The algorithm is stable, rapid and very easy to implement giving rise to tridiagonal linear systems. In addition, the computation time is linear in the number of samples of the height field. For the three-dimensional case, one alternatingdirection method was applied, allowing the threedimensional iteration to be divided into two twodimensional sub-iterations, so complexity does not radically increase. Further, the computation for each row and column is independent, so it can be easily parallelized. Another advantage is that the behavior of individual waves is automatically obtained from the differential equations, so no additional data structures are required for this purpose. Additional simplifications were added for rendering, making high-resolution simulations possible. For example, rays of light which are incident on a water surface are refracted by that surface. As a consequence, the illumination of the terrain underneath the water is unevenly distributed. This effect was simulated by the flat bottom approximation: the terrain is assumed to be locally flat, so that the ray can be computed in a simpler way. Another simplification is the flat water approximation. The water was rendered using caustic shading that simulates the refraction of illuminating rays at the water surface. The work also incorporated realistic appearance for water in sand through a wetness map that computes the wetting and drying of sand as the wa-

1364

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

ter passes over it. However, this wetness map had to be filtered to avoid aliasing artifacts in the boundary between wet and dry areas before using it for shading. Another interesting reference using caustics for water rendering is that in [103]. This work, cited here for its applications to realistic water rendering, presented a new method (the so-called backward beam tracing) for computing specular to diffuse transfer of light. This problem appears when light reflecting from, or refracting through, one surface (the specular surface) hits a diffuse surface where, by definition, it is emitted equally in all directions. Early 90s’ traditional global illumination techniques [39], such as those based on ray tracing and radiosity, did not handle it. This fact is not so surprising when using ray tracing, best suited to solving the diffuse and specular to specular mechanisms of light transport. After all, the specular to diffuse transfer is view independent and hence, more suitable for radiosity. But even radiosity techniques generally ignored this problem. Remarkable exceptions were given by the hybrid techniques [88,102], where a combination of ray tracing and radiosity is considered. The hybrid method uses two passes for illumination calculation: a view independent pass, similar to diffuse radiosity, computing the diffuse illumination of a scene, and a view dependent pass, similar to distributed ray tracing, that uses the previous one to provide global illumination information and subsequently the specular components. Unfortunately, these methods only captured the softest of specular and diffuse effects varying slowly over pixels, and they became impractical for capturing the (more interesting) higher frequency effects. The approach in [103] is also a two-pass algorithm, the first pass being a variation of the backward ray tracing [2] called backward beam tracing, then combined with a rendering phase (the second pass) incorporating a test for caustic polygons associated with diffuse polygons. The algorithm is easy to implement, is very efficient and avoids many aliasing effects. The method was applied to simulate the light-water interaction where the water surface acts as the specular surface. Its performance was illustrated through some frames from an animated underwater caustic sequence, showing the familiar sinuous shifting patterns of light on objects underwater as they intersect the caustic. As these patterns are driven directly by the water surface (described by a polygonal mesh of triangles displaced by a height field), animating them is merely a question of animat-

ing the water surface. Therefore, this animation process consists of deciding upon an appropriate time interval and frequency/amplitude rates. On the other hand, if the triangles in the polygonal mesh are small enough, the beams can be represented as polygonal illumination volumes, rendered using a modified version of a light volume rendering technique proposed by Nishita et al. [70]. This method can effectively calculate some interesting optical effects, such as shafts of light, caustics, and color of the water by using a scanline Z-buffer and accumulation buffer. The results show that this technique, designed to avoid the pre-processing tracing from light sources to describe the scattering/absorption effects of water molecules when light passes through waves, is particularly effective to describe the lightwater interaction.

5. 1993–1998 During these years, the two approaches introduced in the previous years (namely, the interaction of a large number of particles and the system of PDEs to describe the fluid dynamics) were extended and improved. For example, the previous models for particle systems were modified to describe the behavior of water droplets evolving on different surfaces. In addition, several interesting effects to improve both rendering and animation were described. 5.1. Animation of water droplet motion The early water models developed for computer graphics and based on particle systems assumed that particles of water moved in circular and elliptical orbits around their initial positions. Such an assumption was intended to render large bodies of water such as the ocean. A very different situation is that of animating the flow of very small amounts of water, in which this particle motion model is no longer able to realistically reproduce the fluid dynamics. Some interesting references to overcome this problem appeared in this period. For instance, in [58] the use of string textures for rendering large waterfalls was proposed. Particle systems usually require a large number of particles, thus leading to unreasonably large amounts of memory usage. This is because the position and velocity are stored explicitly for each particle. On the

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

contrary, implicit methods are used to store parameters in solid texture, by means of addressing small lookup tables. Mallinder suggested a new modelling method which he called string texture, which is basically a development from particle systems and solid texture, using a method of implicitly storing particles. From this point of view, string texture is a technique to save memory for storing information on particles. A strictly geometrical approach to calculate the rolling of a rigid convex object on a smooth biparametric surface is reported by H´egron in [41]. This author assumed that there is a single contact point (determined through a simple iterative algorithm) between the object and the surface which is maintained during the animation. Then, the motion was computed in terms of discrete displacements on the tangent plane at the contact point and projections onto the surface. Since this projection is time-consuming, an alternative prediction-correction scheme (based on projecting the motion onto the tangential plane and then making corrections to ensure that the points are on the surface) was proposed instead. Although the proposal does not take into account the physics of the object and it was not intended specifically for water animation purposes, it has a potential application to the problem of modeling the water droplets on a curved surface. A further objection to such an approach lies in the fact that the water droplets can hardly be considered as rigid bodies. A recent similar approach [43] addressed the same problem by using a differential geometry analysis leading to a system of ordinary differential equations which are integrated by using an adaptive fourth-fifth order Runge–Kutta method. The method is very general and can be applied to any differentiable parametric surface. Unfortunately, the authors restrict themselves to the mathematical formalism of the problem only, and neither the real physical characteristics of the water droplets (such as mass, gravity, etc.) nor the physical interaction with the surface (friction, absorption, etc.) were considered. Other relevant references for rendering the flow of small amounts of water are described in [13,52]. They included a physically based model for simulating icicle growth realistically [52] and the rendering of water currents using particle sytems [13]. Unfortunately, since these authors did not consider the interfacial dynamics, it is difficult to animate the streams of water droplets.

1365

Another interesting alternative was given by Kaneda et al. [47]. These authors proposed a method for animating water droplets and their streams on a glass plate taking into account the dynamics between fluid and solid. In this scheme, the shape and the motion of the water droplets depend on the gravity force, the surface tensions of the glass plate and the water and the interfacial tension between them. To simulate the stream the surface model of the glass plate was discretized so that the water droplets travel from one mesh point to the next according to a set of rules describing their dynamics as a function of their masses, the angle of the plate’s inclination, ϕ, and the affinity for water, fi,j (0 ≤ fi,j, ≤ 1), which is assigned in advance to each lattice point. A droplet placed on a lattice point (i, j) and with mass mi,j runs down if the mass satisfies: mi,j > mc (ϕ)

(10)

where mc (ϕ) is the static critical weight when the inclination angle of the surface is ϕ. Such a droplet moves to one of the three lower lattice points (i − 1, j − 1), (i − 1, j) or (i − 1, j + 1) to simulate the meandering. Because of the nature of the wetting phenomena, some amount of water (which depends on the affinity for water fi,j ) remains behind the route of the stream so the mass of the droplet decreases with time and finally the flow stops. The model also includes equations for: (1) the speed of the running water droplet v as a function of the wetness of the direction (i + k, j + 1) and the angle ϕ: v = v0 + ai+k,j+1 (ϕ)t

(11)

where v0 is the speed when the droplet is put on the glass plate and ai+k,j+1 is the acceleration of water droplets for the angle ϕ, and (2) the speed v and mass m of the new droplet resulting from merging of two original droplets of masses m1 and m2 and velocities v1 and v2 : m = m1 + m2 ;

v=

m1 v1 + m2 v2 m1 + m 2

(12)

The final algorithm returns the positions and masses of all water droplets for every frame of the animation. For simplicity, the water droplets were assumed to have a spherical shape.

1366

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

To render the water droplets and the streams the authors proposed a high-speed rendering method which takes into account the reflection and the refraction of the light. Basically, it is an extension of the environment map by Greene [38] in which objects in the scene are projected onto the planes of a cuboid, whose center is on the glass plate. The method consists of calculating background textures by projecting objects in the scene onto the faces of a cuboid whose center is on the glass plate, then calculating the directions of rays reflected or refracted by water droplets on a glass plate, and finally determining pixel colors by using the background textures and the intersection of the ray and the cuboid. The method finally generates an image with these pixel colors at these intersection points, thus avoiding calculating the intersections between the ray and the objects (undoubtely, the most time-consuming process in ray tracing). This model was firstly applied to animate water droplets meandering on an inclined glass plate [47] and later extended to water droplets on curved surfaces [48]. In this last case, the surface was described by B´ezier patches and then converted to a discrete surface model for which each quadrilateral mesh was approximated by a plane. In [48], the applications of water droplet animation were classified into two categories: those mainly pursuing rendering speed (such as in drive simulators in which interactivity is the goal) and those pursuing photo-reality. According to this classification, two different rendering algorithms were proposed. The first one (for which the stream is modeled as a group of spheres) is essentially an extension of the simple and fast rendering method described in [47] to handle B´ezier patches. The second one is a more sophisticated high-quality rendering method intended for photo-reality and based on metaballs. The metaball technique was first introduced by Blinn in [8] and he called it blobs. Subsequently, this technique was improved by several authors [66,107– 111] who coined the terms metaballs and soft objects. This technique is widely used to represent “soft objects” like liquids [109]. Its popularity comes from the fact that the model is defined by just a few simple constraints providing free-form deformations. In addition, it is used for water modeling because the water droplets merge smoothly together in this model. In [48], the metaball is defined by its center, its density distribution (the authors applied that of [111]) and

a threshold value defining the surface. To overcome the conflict of working with both implicit surfaces (given by the metaball technique) and parametric surfaces (the B´ezier surfaces of the problem), a combination of two rendering methods, namely the one in [71] for B´ezier surfaces and that in [72] for metaballs, is proposed. In this new scheme the density distribution along a ray was converted into a B´ezier function and the intersection between the ray and the metaball is calculated using a B´ezier clipping [71]. These works were subsequently extended to generate realistic animation of water droplets on transparent surfaces such as the windshield of a vehicle [49]. In this case, an environment mapping was applied to indicate the property of transparency in order to speed up the rendering of scenes through transparent objects. This method allows the temporal aliasing caused by obstacles moving against water droplets to be addressed. The performance of the method is illustrated by means of some animations including several thousands of water droplets. Strongly related to the previous approaches are the works by Wcilso et al. [104] and Yu et al. [112,113]. In the first one, the space is decomposed uniformly into a number of cubic cells. When a solid object is dropped into the liquid body, a set of rules modeling the flow between cells are applied and consequently, the liquid surface is perturbed according to these rules. However, the real behavior of the waves is not well established and some additional effects such as splashing cannot be reproduced. In the second work, water droplets are also represented by metaballs and subjected to geometric distorsions to reproduce the effects of gravity. The main criticisms of this model are that the shape irregularities are introduced by a manual perturbation of the control points (which could eventually give rise to dramatic distortions of the droplet) and that the droplets are considered static, thus limiting the simulation of dynamic effects. Other interesting works are offered by Desbrun and Gascuel [15], Murta and Miller [67], Fournier et al. [31] and Dorsey et al. [17–19]. In [15], an extension of the seminal works in [63] and [98] to model viscous fluids using a combination of particle systems and implicit surfaces is proposed. In the previous models, particle systems were applied to model a wide range of behaviors, such as plasticity, collisions, merging and splitting. But the visualization of the liquid

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

surface is difficult because the particles move during the deformations. One feasible solution is to use the set of particles to generate an isosurface and then to display it, as in [98]. Nevertheless, such a surface is only used for rendering purposes and thus collision detection is not accurately performed. The implicit surfaces introduced in [15] provide the designers with a new tool to detect collisions [34] and to deform the surfaces (and hence the particles) accordingly. The same idea was used in [67] to model and render liquids in motion. These authors introduced the concept of families of particles to increase the specification of different inter-particle force profiles within and between family groups. For example, multi-fluid interactions such as those of oil and water or gas bubbles through a mass of liquid can easily be incorporated into the model. The counterpart is that the modeling techniques used to handle the isosurfaces and the particle systems are computationally expensive, so the scheme is not well suited to animation purposes. In [31], the authors simulated the motion and shape of droplets running down surfaces. For example, the shape was determined by some properties such as volume conservation and surface tension, while the motion was simulated by a mass-spring model. Unfortunately, the authors failed to reproduce the shape of droplets produced by the merging of individual droplets. In addition, the number of rendered droplets was restricted in number because of the computational cost. A related approach (in the sense that the structures of the particle systems and the associated surfaces are quite similar) is that in [18]. However, the emphasis is now placed upon the simulation of weathering due to the interaction of the environment with the materials in the world and its effects in appearance. To this end, the flow is modeled as a particle system in which each particle represents a drop of water. Some parameters such as gravity, friction, wind and roughness and some constraints that force the particles to maintain contact with the surface are applied to control the motion of the particles. Then, a set of coupled differential equations describing both the rate of water absorption by the surface and the rate of solubility and sedimentation of deposits on the surface are applied to characterize the chemical interaction between water/surface materials. Rendering was accomplished by using simple methods to approximate the diffuse color of the deposit layer (by

1367

adding the color of each deposit weighted by its concentration from a texture map) and the wet surfaces (by modulating the diffuse reflectivity in terms of the surface saturation). The method yields complex patterns resembling the real washing and staining effects. Other recent approaches to modeling and rendering surface weathering effects can be found in [17] and [19]. 5.2. Improving PDE fluid dynamics methods One of the first attempts to faithfully simulate the behavior of the fluid dynamics was the work of Kass and Miller [50] already analyzed in Section 4.2. This model is limited in the sense that it does not address the full range of three-dimensional motion (including rotational and pressure effects) found in a liquid. In addition, since the velocity of the fluid is known only on the surface and internal pressure is not calculated at all, the model cannot easily incorporate dynamic or buoyant objects. A more realistic model can be obtained by considering the Navier–Stokes (NS) equations, notably the most comprehensive of all fluid models. Basically, these equations describe completely the motion of a fluid at any point within a flow at any instant of time. Because of their ability to capture the turbulent or stable behavior of the fluid with arbitrary viscosity in three dimensions, they are often used to simulate fluid phenomena accurately. The Navier–Stokes equations have been applied to create models of water motion for computer graphics [11,12,24–27,106]. For example, in [11,12], a simplified version of the Navier–Stokes equations in two dimensions was considered. Such a simplification was obtained by removing the vertical dependence and solving the resulting two-dimensional system. In other words, they assumed that the fluid has zero depth, thus treating it as being completely flat during the computation. Although still able to model some kind of interactions between moving objects and the flow, such an assumption considerably restricts the range of phenomena of the model. For example, since the obstacles must be two-dimensional, the model does not deal with submerged objects. In addition, neither convective wave effects nor mass transport can be incorporated into this model. In [106], the author presented a method to solve the two-dimensional numerical simulations of the time-dependent NS equations. The pro-

1368

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

posal includes a compressible version of the equations of motion so that the model effectively incorporates the modeling of compressible effects such as shock waves. Another remarkable feature is the use of images and animations as input devices that allows the animators to control (among others) the initial conditions, source terms and dynamic internal boundaries. For rendering, the author included texture mapping differential equations to pre-calculate particle trajectories on a fixed grid. His Eulerian approach has proved to be particularly useful for rendering since the texture mapping coordinate information is uniformly distributed on the output image space. The equations were integrated by using a classical Runge–Kutta scheme and applied to produce traditionally-animated films at DreamWorks studios, such as “The Prince of Egypt”. Another comprehensive methodology based on the NS equations for animating liquid phenomena was introduced in [24–26] (see also [27]). These authors noticed that real fluid dynamics can only be captured by solving the three-dimensional Navier–Stokes equations. To this end, they considered a two-stage calculation over an environment of static obstacles surrounded by fluid. Firstly, a finite-difference approximation to the NS equations was applied to a low-resolution discretized representation of the scene. This scheme was coupled with an iterative step to refine the velocities and determine the pressure field, which was combined with the Lagrange equations of motion to simulate dynamic buoyant objects. At this stage, the fluid position in two-dimensional was tracked by convecting massless marker particles with local fluid velocity. These marker particles are very useful to highlight many internal fluid motion effects, such as rotation and splashing, as well as for animating violent phenomena such as overturning waves. Additional effects such as vorticity were also taken into account in this step. In the original work, a secondary calculation was performed to accurately determine the liquid surface position through a height field equation. Since this equation describes surfaces as single-valued functions, it can be effectively applied to situations such as puddles, rivers or oceans. For dramatic effects such as crashing waves or splashing, a combination of height field and marker particles was applied. The performance of the method was illustrated through some realistic two- and three-dimensional examples, such as the animation titled Moonlight Cove, a 50 × 15 × 40 mesh used to show the effect of two large

ocean waves crashing into a shallow cove. Scene complexity was increased by including submerged rocks and irregular sea bottom, thus leading to interesting features on the water surface. Unfortunately, the explicit solvers used in [24–26] to solve the NS equations can exhibit unstable behaviors for large time-steps, which seriously limits their speed and interactivity. Stam [92] realized that the key point for a more powerful animation tool for fluid dynamics is to deal with more stable models, which allows us to take larger time steps and hence to obtain faster animations with real-time interaction. The starting point for this task is the method in [25] but, instead of the explicit Eulerian solvers used by Foster and Metaxas, a combination of Lagragian and implicit methods is proposed. The combination of these solvers to handle both the motion of fluids and the propagation by the fluid of any number of substances and solid textures produces nice flow simulations. However, the problem of addressing objects with free boundaries (such as water in many cases) was not actually investigated, making this work more suited for gaseous-like phenomena. On the other hand, the solver was extended in [93] by using the Fourier transform. Although the method assumes that the fluid is continuous across adjacent boundaries, and obviously no such fluids occur in the real world, it provides the designers with a motion texture map which might be useful in computer graphics. The dynamics behavior of splashing fluids was also analyzed in [75]. Essentially, the authors introduced a model that simulates the behavior of a fluid when objects impact or float on its surface. To this purpose, they used a three-part system where each subsystem corresponds to a physical area of the fluid body: the volume, the surface and the spray. The water volume that makes up the main body of the fluid was simulated by a collection of vertical tubes or columns connected by virtual pipes, thus allowing there to be a flow between these columns according to the hydrostatics laws for pressure. In addition, flow conditions must be specified to model boundary conditions, such as barriers (flow set to zero) or fluid sources or sinks (flow set to a positive or negative constant). The surface subsystem allows external objects to interact with the fluid system and consists of mesh of control points whose vertical positions are found by averaging the heights of the surrounding columns. Finally, the spray subsystem is a particle system to model water droplets disconnected from the

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

main body of the fluid. These droplets are influenced by the gravity and their dynamics is quite simple since the particles are noninteracting. To preserve the total volume of the system, the volume of each particle was substracted from the column from which it was created. Although the model cannot deal with submerged objects, the impact problem can be treated in a natural way. The impact of the object on the surface is transferred to the pressure of the affected columns. When thresholding the vertical velocity of the column, spray is generated yielding a particle system until it is reabsorbed by the fluid, encounters a ground plane or strikes some other object. The model is able to describe a wide range of phenomena such as waves, impacts, splashes or floating objects. In contrast, those phenomena related to vertical effects such as turbulence or underwater effects are not adequately described in this model. A remarkable extension of this proposal was described in [65], including an explicit underwater terrain and the removal of the vertical isotropy, thus making the interaction between particles and fluid possible. The model consists of a volume system (containing the information about the main body of fluid) coupled with a particle system. Although some effects such as friction do not follow the actual physical laws and additional parameters with no physical meaning have been introduced to simulate spreading, the model is generally based on the physics of fluids. It is able to simulate accurately many different situations: the propagation of the surface waves, the variation of the propagation of the speed with terrain, the variation of wave patterns with the depth of water, the dynamics of the water droplets, the floating and submerged objects, splashing, etc. Some shortcomings of the model are that a height field for the water surface was considered and that the force from an object striking the surface is strictly applied in the vertical direction, even although the direction of the object is at an angle with the vertical.

6. Recent developments The motion of water is a very complex and varied phenomenon often including many different dynamic effects extremely difficult to analyze. The accurate mathematical description of these effects is still under study and sophisticated techniques are usually

1369

required to completely characterize the physics of fluid dynamics. In addition, the most general computational fluid dynamics models require a lot of computer resources in terms of memory storage and computation time, making them unsuitable for computer graphics animation tools. Consequently, it is not expected to find a general computer graphics model able to capture all the subtle water effects with a reasonable cost for the next few years. Fortunately, some recent papers have reported significant advances in this challenging task. For example, the recent approaches in [28] and [21] deal with the problem of simulating poured liquid and breaking waves by a combination of textures and particles, following up previous ideas of [92]. In particular, they also combine fast partial differential equation solvers for a voxelized flow with marker particles tracking the surface of the fluid. In [28] a novel hybrid combination of inertialess particles (to reproduce splash freely) and an implicit surface (to correct the mass dissipation obtained from the PDE solver, which is actually unacceptable for liquids) is applied to render realistic surfaces. The interested reader is also referred to [76] for more details on this formulation. This method was subsequently improved by Enright et al. in [21] by adding both a new thickened front tracking tecnique to represent the water surface (based on the method proposed in [28] but focusing on modeling the surface rather than the liquid volume as done in [28]) and a new velocity extrapolation method to provide the surface motion with a degree of control so that the surface moves in a smooth, water-like way. Another body of research is provided by those methods that correctly account for all significant light transport paths. For example, the case of two-dimensional wave fields in open ocean is analyzed in [79] and [97]. They include many interesting water effects, such as the analysis of whitecaps (the foamy part of breaking waves) in [79] by adapting an empirical formula for whitecaps described in [64]. Some optical effects in water are analyzed, for example, in [44], while interactive caustics are analyzed in [100] by employing several approximations to describe the computation of refractive caustics as a convolution problem. Sloan et al. [91] render global illumination effects for dynamic lighting in real time. However, the low-frequency sampling used in that work is not suitable to reproduce the complex details observed in water caustics.

1370

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

Another interesting field is the use of different types of textures and height fields. For example, Loviscach [56] uses a height field and convolution to generate time evolution. His approach is useful to simulate Kelvin ship waves and complex ring waves produced by gravity and capillary waves on deep water. Nevertheless, this approach was not adequate for interactive animations and it was recently improved in [57] by using efficient approximations and taking advantages of the three-dimensional and processor features of modern PCs to obtain simulation rates of several frames per second. Convolution via Fourier transform, interpolation of wave field for intermediate steps to speed up the simulation and the intensive use of textures instead of geometry (among other features) are advantageously applied to produce rates of about 6 frames per second. Interactivity and speed are the goals of [86] and [42]. For example, in the paper by Schneider and Westermann [86] water waves are simulated through fractal noise and then rendered in real time with light reflection and ground refraction. A different approach dealing with height fields is that by Jensen and Goli´as [45] who used the Fourier transform of a real-world spectrum. Rendering was performed by a combination of a modification of the backward beam tracing technique (see Section 4.2) and a subdivision of the water volume in layers approximated by blending textured planes to simulate the shafts of light for underwater scenes. A very interesting reference analyzing the fast simulation and rendering of fluid objects is that by Kunimatsu et al. [53]. These authors pointed out that the two critical points in this task are the selection of suitable components/algorithms and acceleration of their speed. For fast simulation, they use a combination of methods such as: • a full Navier–Stokes equation solver with uniform Eulerian mesh to simulate the realistic motions of fluids (even including drastic deformations), • a method based on rigid-body dynamics for motions of solids within the fluid, • a cubic interpolated pseudoparticle/propagation method [96] to deal with the transport problem of volume of fluid, • a high-resolution marching cube method to obtain a low resolution mesh for simulation, which accelerates the simulation speed and

• a Catmull-Clark subdivision surface method to simulate the free surfaces of fluid, while for fast rendering the following methods: • a subdivision scheme for polygon rendering, • a method for fast caustics generation, which needs to generate texture-based caustics and then implement the algorithm using conventional rendering hardware and • a method to render the full polygonal scene by using conventional rendering hardware were applied. All these components as well as the reasons for choosing them are described in [53]. An evaluation of the system by measuring the CPU times for each process for some movie scenes of fluid objects is also reported. This evaluation allows the animators to consider what factors are important to create water scenes in a realistic but still fast way. Finally, a promising field of research is that devoted to deriving realistic models to simulate the appearance of water masses containing several different components. For example, ocean water behavior is drastically different from that of pure water due to the presence of several mineral (dissolved salts) and biological (plankton, organic molecules) components within. Consequently, any model dealing with realistic ocean water must take into account the complex effects associated with these chemical and biological factors. In [9], an algorithm dealing with media with anisotropic and multiple scattering was introduced. Previous works on light transport on water considered rough simplifications (single scattering, homogeneous media, isotropy). Even those models that explicitly include optical effects caused by chemical molecules in water [73,79] often reduce their discussion to simple approximated equations in which the radiance in the medium only depends on the depth, while the radiance effects due to scattering are neglected. A worthwhile exception is the paper of Tadamura et al. [95], but even these authors restrict themselves to single scattering and no consideration is given to illumination of the objects underneath the water surface due to scattering. In [9], Cerezo and Ser´on considered the (more general) case of non-homogeneous medium and anisotropic and multiple scattering. Their starting point was a discretization method by Langu´enou [54] and the use

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

of the discrete ordinates method to solve the radiative transfer equations. The method has been applied to both deep clear ocean water and coastal water, two environments with different optical properties exhibiting different spectra. This work was later extended by the same authors in [10] to use realistic medium parameterizations and to consider different kinds of water characterized by the clorophyll concentration, from pure sea water (strong absorption at red wavelengths and very little scattering) to waters with high phytoplankton concentration (strong absorption at blue wavelengths and heavy scattering). 7. Conclusions In this paper, we offer a historical survey with many of the most classical computer graphics techniques for water modeling and rendering. The different models to realistically simulate water behavior as well as many of its associated effects are briefly described. In addition, the most traditional computer graphics techniques for efficient rendering of water are also reported. The core of the paper is to provide readers with a rapid reference on the topic, so that experienced users might easily identify the best or the most commonly used methods for a particular task and point out their strengths and deficiencies as well as the entries to the original papers. Similarly, the beginners will hopefully get a gentle, organized and quick historical perspective of the field without wasting time and effort in looking for the original references, which are certainly dispersed among many different sources. Finally, we should remark that the paper has been influenced by both the extraordinary magnitude of our goals and the limitations of space. In spite of having included more than 110 entries, some other references have had to be omitted and many explanations have been reduced to the minimum. Due to these reasons, the literature referenced here is not intended to comprise a totally exhaustive survey on the topic. However, we hope that we have included enough comments and references to make the paper useful for our readers. Acknowledgements The author is grateful to the reviewers of this paper for their useful suggestions that have helped to

1371

improve the paper. He also thanks Profs. Tomoyuki Nishita and Kazufumi Kaneda for their helpful discussions during the CAD/Graphics conference in Kunming (China) and for providing him with some new references and Dr. Pere Pau V´azquez for his encouragement to write the paper. Financial support from the University of Cantabria is also acknowledged.

References [1] N. Adabala, S. Manohar, Techniques for realistic visualization of fluids: a survey, Comput. Graph. Forum 21 (1) (2002) 65– 81. [2] J. Arvo, Backward ray tracing. Developments in ray tracing, in: SIGGRAPH’86 Course Notes, 1986. [3] J. Arvo, D. Kirk, A survey of ray tracing acceleration techniques, in: A. Glassner (Ed.), An Introduction to Ray Tracing, Academic Press, London, San Diego, 1989. [4] B.A. Barsky, Computer Graphics and Geometric Modelling Using Beta-splines, Springer-Verlag, Heidelberg, 1987. [5] B.A. Barsky, J.C. Beatty, Local control of bias and tension in beta-splines, in: Proceedings of SIGGRAPH’83, Comput. Graph. 17 (4) (1983) 193–218; B.A. Barsky, J.C. Beatty, Local control of bias and tension in beta-splines, in: Proceedings of SIGGRAPH’83, ACM Trans. Graph. 2 (2) (1983) 109– 134. [6] J.F. Blinn, Simulation of wrinkled surfaces, in: Proceedings of SIGGRAPH’78, Comput. Graph. 12 (3) (1978) 286–292. [7] J.F. Blinn, M.E. Newell, Texture and reflection in computer generated images, Commun. ACM 19 (1976) 542–547. [8] J.F. Blinn, Generalization of algebraic surfaces drawing, ACM Trans. Graph. 2 (3) (1980) 235–256. [9] E. Cerezo, F.J. Ser´on, Synthetic images of underwater scenes: a first approximation, in: Proceedings of the 9th International Conference in Central Europe on Computer Graphics and Visualization WSCG’01, 2001, pp. 395–402. [10] E. Cerezo, F.J. Ser´on, Rendering natural waters: merging computer graphics with physics and biology, in: Proceedings of Computer Graphics international CGI’02, 2002, pp. 481–498. [11] J.X. Chen, N.V. Lobo, Toward interactive-rate simulation of fluids with moving obstacles using Navier–Stokes equations, Graph. Models Image Process. 57 (2) (1995) 107–116. [12] J.X. Chen, N.V. Lobo, C.E. Hughes, J.M. Moshell, Real-time fluid simulation in a dynamic virtual environment, IEEE Comput. Graph. Appl. (May–June) (1997) 52–61. [13] N. Chiba, S. Sanakanishi, K. Yokoyama, I. Ootawara, K. Maruoka, N. Saito, Visual simulation of water currents using a particle-based behavioural model, J. Visual. Comput. Anim. 6 (3) (1995) 155–171. [14] S. Coquillart, M. Gangnet, Shaded display of digital maps, IEEE Comput. Graph. Appl. 4 (7) (1984) 35–42. [15] M. Desbrun, M.P. Gascuel, Animating soft substances with implicit surfaces, in: Proceedings of SIGGRAPH’95, 1995, pp. 287–290.

1372

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

[16] M. Dipp´e, J. Swensen, An adaptive subdivision algorithm and parallel architecture for realistic image synthesis, in: Proceedings of SIGGRAPH’84, Comput. Graph. 18 (3) (1984) 149– 158. [17] J. Dorsey, P. Hanrahan, Modeling and rendering of metallic patinas, in: Proceedings of SIGGRAPH’96, 1996, pp. 387–396. [18] J. Dorsey, H.K. Pedersen, P. Hanrahan, Flow and changes in appearance, in: Proceedings of SIGGRAPH’96, 1996, pp. 411–420. [19] J. Dorsey, A. Edelman, H.W. Jensen, J. Legakis, H.K. Pedersen, Modeling and rendering of weathered stone, in: Proceedings of SIGGRAPH’99, 1999, pp. 225–234. [20] D.S. Ebert, F.K. Musgrave, D. Peachey, K. Perlin, S. Worley, Texturing and Modeling, A Procedural Approach, Academic Press, London, San Diego, 1994. [21] D. Enright, S. Marschner, R. Fedkiw, Animation and rendering of complex water surfaces, in: Proceedings of SIGGRAPH’02, ACM Trans. Graph. 21 (3) (2002) 736–744. [22] J.A. Ferwerda, Three varieties of realism in computer graphics, in: Cornell Workshop on Rendering, Perception and Measurement, 1999. [23] B. Fishman, B. Schachter, Computer display of height fields, Comput. Graph. 5 (1980) 53–60. [24] N. Foster, D. Metaxas, Realistic animation of liquids, in: Proceedings of Graphics Interface’96, Calgary, Canada, (1996), pp. 204–212; N. Foster, D. Metaxas, Realistic animation of liquids, Graph. Models Image Process. 58 (5) (1996) 471–483. [25] N. Foster, D. Metaxas, Modeling the motion of a hot, turbulent gas, in: Proceedings of SIGGRAPH’97, 1997, pp. 181–188. [26] N. Foster, D. Metaxas, Controlling fluid animation, in: Proceedings of Computer Graphics International CGI’97, IEEE Computer Society Press, Menlo Park, CA, 1997, pp. 178–188. [27] N. Foster, D. Metaxas, Modeling water for computer animation, Commun. ACM 43 (7) (2000) 60–67. [28] N. Foster, R. Fedkiw, Practical animation of liquids, in: Proceedings of SIGGRAPH’01, 2001, pp. 23–30. [29] A. Fournier, D. Fussell, L. Carpenter, Computer rendering of stochastic models, Communications of the ACM 25 (6) (1982) 371–384. [30] A. Fournier, W.T. Reeves, A simple model of ocean waves, in: Proceedings of SIGGRAPH’86, Comput. Graph. 20 (4) (1986) 75–84. [31] P. Fournier, A. Habibi, P. Poulin, Simulating the flow of liquid droplets, in: Proceedings of Graphics Interface’98, 1998, pp. 133–142. [32] G.Y. Gardner, Simulation of natural scenes using textured quadric surfaces, in: Proceedings of SIGGRAPH’84, Comput. Graph. 18 (3) (1984) 11–20. [33] G.Y. Gardner, Visual simulation of clouds, in: Proceedings of SIGGRAPH’85, Comput. Graph. 19 (3) (1985) 297–303. [34] M.P. Gascuel, An implicit formulation for precise contact modeling between flexible solids, in: Proceedings of SIGGRAPH’93, 1993, pp. 313–320. [35] F.J. Gerstner, Theorie der wellen, Ann. der Physik 32 (1809) 412–440.

[36] A. Glassner (Ed.), An Introduction to Ray Tracing, Academic Press, London, San Diego, 1989. [37] M.E. Goss, A real-time particle system for display of ship wakes, IEEE Comput. Graph. Appl. 10 (3) (1990) 30–35. [38] N. Greene, Environment mapping and other applications of world projections, IEEE Comput. Graph. Appl. 6 (11) (1986) 21–29. [39] R. Hall, Illumination and Color in Computer Generated Imagery, Series: Monographs in Visual Communication, Springer-Verlag, New York, 1989. [40] S. Haruyama, B.A. Barsky, Using stochastic modeling for texture generation, IEEE Comput. Graph. Appl. 4 (3) (1984) 7–19; S. Haruyama, B.A. Barsky, Using stochastic modeling for texture generation, IEEE Comput. Graph. Appl. 5 (2) (1985) 87 (Errata). [41] G. H´egron, Rolling on a smooth biparametric surface, J. Visual. Comput. Anim. 4 (1993) 25–32. [42] D. Hinsinger, F. Neyret, M.P. Cani, Interactive animation of ocean waves, in: Proceedings of ACM Siggraph Symposium on Computer Animation, 2002, pp. 161–166. [43] A. Iglesias, J. Puig-Pey, A. G´alvez, Generating drop trajectories on parametric surfaces., in: Proceedings of Seventh International Conference on CAD and Graphics, CAD/Graphics’01, 2001, pp. 350–357. [44] K. Iwasaki, Y. Dobashi, T. Nishita, Efficient rendering of optical effects within water using graphics hardware., in: Proceedings of Pacific Graphics’01, 2001, pp. 374–383. [45] J.L. Jensen, R. Goli´as, Deep water animation and rendering, in: Proceedings of the Game Developer’s Conference Europe’01, 2001 (available at: www.gamasutra.com/ gdce/jensen/jensen 01.htm). [46] J.T. Kajiya, New techniques for ray-tracing procedurally defined objects, ACM Trans. Graph. 2 (3) (1983) 161–181. [47] K. Kaneda, T. Kagawa, H. Yamashita, Animation of water droplets on a glass plate, in: Proceedings of Computer Animation’93, 1993, pp. 177–189. [48] K. Kaneda, Y. Zuyama, H. Yamashita, T. Nishita, Animation of water droplets on curved surfaces, in: Proceedings of Pacific Graphics’96, IEEE Computer Society Press, Los Alamitos, CA, 1996, pp. 50–65. [49] K. Kaneda, S. Ikeda, H. Yamashita, Animation of water droplets moving down a surface, J. Visual. Comput. Anim. 10 (1999) 15–26. [50] M. Kass, G. Miller, Rapid, stable fluid dynamics for computer graphics, in: Proceedings of SIGGRAPH’90, Comput. Graph. 24 (4) (1990) 49–57 [51] D.S. Kay, Transparency, Refraction and Ray Tracing for Computer Synthesized Images, Master’s Thesis, Cornell University, Ithaca, NY, 1979. [52] D. Kharitonsky, J. Gonczarowski, A physical based model for icicle growth, Visual Comput. 10 (2) (1993) 88–100. [53] A. Kunimatsu, Y. Watanabe, H. Fujii, T. Saito, K. Hiwada, T. Takahashi, H. Ueki, Fast simulation and rendering techniques for fluid objects, in: Proceedings of EUROGRAPHICS’01, Comput. Graph. Forum 20 (3) (2001) 57–66. [54] E. Langu´enou, K. Bouatoch, M. Chellem, Global illumination in presence of participating media with general properties, in:

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

[55] [56]

[57]

[58] [59]

[60] [61]

[62]

[63]

[64] [65] [66] [67]

[68]

[69] [70]

[71]

[72]

[73]

[74]

Sakas, Shirley, M¨uller (Eds.), Photorealistic Rendering Techniques, Springer-Verlag, Berlin Heidelberg, 1995, pp. 71–86. J. Lewis, Generalized stochastic subdivision, ACM Trans. Graph. 6 (3) (1987) 167–190. J. Loviscach, A convolution-based algorithm for animated water waves, in: EUROGRAPHICS’02 Short Paper Presentations, 2002, pp. 381–389. J. Loviscach, Complex water effects at interactive frame rates, in: Proceedings of the 11th International Conference in Central Europe on Computer Graphics and Visualization WSCG’03, J. WSCG 11 (1) (2003) 298–305. H. Mallinder, The modeling of large waterfalls using string texture, J. Visual. Comput. Anim. 6 (1) (1995) 3–10. N.L. Max, Vectorized procedural models for natural terrain: waves and islands in the sunset, in: Proceedings of SIGGRAPH’81, Comput. Graph. 15 (3) (1981) 317–324. N.L. Max, Carla’s Island, Siggraph Video Rev. (5) (1981). N.L. Max, The simulation of natural phenomena, in: Proceedings of SIGGRAPH’83 (panel), Comput. Graph. 17 (3) (1983) 137–139. G.A. Mastin, P.A. Watterberg, J.F. Mareda, Fourier synthesis of ocean scenes, IEEE Comput. Graph. Appl. 7 (3) (1987) 16–23. G. Miller, A. Pearce, Globular dynamics: a connected particle system for animating viscous fluids, Comput. Graph. 13 (3) (1989) 305–309. E. Monahan, G. MacNiocaill, Oceanic Whitecaps: Their Role in Air Sea Exchange Processes, D. Reidel, 1986. D. Mould, Y.H. Yang, Modeling water for computer graphics, Comput. Graph. 21 (6) (1997) 801–814. S. Murakami, H. Ichihara, On a 3D display method by metaball technique, J. Electron. Commun. 70 (8) (1987) 1607–1615. A. Murta, J. Miller, Modelling and rendering liquids in motion, in: Proceedings of the 7th International Conference in Central Europe on Computer Graphics and Visualization, WSCG’99, 1999, pp. 194–201. M.E. Newell, The Utilization of Procedure Models in Digital Image Synthesis, Ph.D. Thesis, University of Utah, Salt Lake City, UT, 1975. N. Nishikawa, T. Abe, Artificial nature in splash of droplets, Compugraphics’91 1 (1991) 457–466. T. Nishita, Y. Miyawaki, E. Nakamae, A shading model for atmosferic scattering considering luminous intensity distribution of light sources, in: Proceedings of SIGGRAPH’87, Comput. Graph. 21 (4) (1987) 303–310. T. Nishita, T.W. Sederberg, M. Kakimoto, Ray tracing rational trimmed surface patches, in: Proceedings of SIGGRAPH’90, Comput. Graph. 24 (4) (1990), 337–345. T. Nishita, E. Nakamae, A method for displaying metaballs by using B´ezier clipping, in: Proceedings of EUROGRAPHICS’94, Comput. Graph. Forum 13 (3) (1994) 271–280. T. Nishita, T. Shirai, K. Tadamura, E. Nakamae, Display of the Earth taking into account atmospheric scattering, in: Proceedings of SIGGRAPH’93, 1993, pp. 175–182. A. Norton, A.P. Rockwood, P.T. Skolmoski, Clamping: a method for antialiasing textured surfaces by bandwidth

[75]

[76] [77] [78] [79]

[80] [81] [82]

[83]

[84]

[85] [86]

[87]

[88]

[89] [90]

[91]

[92] [93] [94]

1373

limiting in object space, in: Proceedings of SIGGRAPH’82, Comput. Graph. 16 (3) (1982) 1–8. J.F. O’Brien, J.K. Hodgins, Dynamic simulation of splashing fluids, in: Proceedings of Computer Animation’95, 1995, pp. 198–205. S. Osher, R. Fedkiw, The Level Set Method and Dynamic Implicit Surfaces, Springer-Verlag, New York, 2002. D.R. Peachey, Modeling waves and surf, in: Proceedings of SIGGRAPH’86, Comput. Graph. 20 (4) (1986) 65–74. K. Perlin, An image synthesizer, in: Proceedings of SIGGRAPH’85, Comput. Graph. 19 (3) (1985) 287–296. S. Premoze, M. Ashikhmin, Rendering natural waters, in: Proceedings of Pacific Graphics’00, 2000, pp. 23–30; S. Premoze, M. Ashikhmin, Rendering natural waters, Comput. Graph. Forum 20 (4) (2001) 189–199. Pyramid Catalogue: Pyramid, Box 1048, Santa Monica, 1981. W.J.W. Rankine, On the exact form of waves near the surfaces of deep water, Phil. Trans. R. Soc. A 153 (4) (1863) 127–138. W.T. Reeves, Particle systems—a technique for modeling a class of fuzzy objects, in: Proceedings of SIGGRAPH’83, Comput. Graph. 17 (3) (1983) 359–376; W.T. Reeves, Particle systems—a technique for modeling a class of fuzzy objects, ACM Trans. Graph. 2 (2) (1983) 91–108. W.T. Reeves, R. Blau, Approximate and probabilistic algorithms for shading and rendering structured particle systems, in: Proceedings of SIGGRAPH’85, Comput. Graph. 19 (3) (1985) 313–322. S. Rubin, T. Whitted, A 3-dimensional representation for fast rendering of complex scenes, in: Proceedings of SIGGRAPH’80, Comput. Graph. 14 (3) (1980) 110–116. B. Schachter, Long crested wave models, Comput. Graph. Image Process. 12 (1980) 187–201. J. Schneider, R. Westermann, Towards real-time visual simulation of water surfaces, in: Proceedings of Vision, Modeling and Visualization’01, 2001, pp. 211–218. D. Shepard, A two-dimensional interpolation function for irregularly spaced data, in: Proceedings of ACM National Conference, 1964, pp. 517–524. F. Sillion, C. Puech, A general two-pass method integrating specular and diffuse reflection., in: Proceedings of SIGGRAPH’89, Comput. Graph. 23 (3) (1989) 335–344. K. Sims, Particle dreams (Video), Segment 42, Siggraph Video Rev. 38/39 (1988). K. Sims, Particle animation and rendering using data parallel computation, in: Proceedings of SIGGRAPH’90, Comput. Graph. 24 (4) 1990 405–413. P.P. Sloan, J. Kautz, J. Snyder, Precomputed radiance transfer for real-time rendering in dynamic, low-frequency lighting environments, in: Proceedings of SIGGRAPH’02, ACM Trans. Graph. 21 (3) 2002 527–536. J. Stam, Stable fluids, in: Proceedings of SIGGRAPH’99, 1999, pp. 121–128. J. Stam, A simple fluid solver based on FFT, J. Graph. Tools 6 (2) (2001) 43–52. G.G. Stokes, Mathematical and Physical Papers, Cambridge University Press, Cambridge, vol. 1 1980.

1374

A. Iglesias / Future Generation Computer Systems 20 (2004) 1355–1374

[95] K. Tadamura, E. Nakamae, Modeling the colour of water in lighting design, in: V. Earnshaw (Ed.), Computer Graphics: Developments in Virtual Environments, Academic Press, London, San Diego, 1995, pp. 97–114. [96] T. Tanahashi, T. Takafumi, CIP finite element method, News Lett./Asian CFD Soc. 8 (3) (2000) 485–495. [97] J. Tessendorf, Simulating ocean water, in: SIGGRAPH’99 Course Notes, 1999. [98] D. Tonnesen, Modeling liquids and solids using thermal particles, in: Proceedings of Graphics Interface’91, 1991, pp. 255–262. [99] D.L. Toth, On ray tracing parametric surfaces, in: Proceedings of SIGGRAPH’85, Comput. Graph. 19 (3) 1985 171–180. [100] C. Trendall, A.J. Stewart, General calculations using graphics hardware with application to interactive caustics, in: Proceedings of Eurographics Workshop on Rendering, 2000, 2000, pp. 287–298. [101] P. Ts’o, B.A. Barsky, Modeling and rendering waves: wavetracing using beta-spline and reflective and refractive texture mapping, ACM Trans. Graph. 6 (3) (1987) 191–214. [102] J.R. Wallace, M.F. Cohen, D.P. Greenberg, A two-pass solution to the rendering equation: a synthesis of ray tracing and radiosity methods, in: Proceedings of SIGGRAPH’87, Comput. Graph. 21 (4) (1987) 311–320. [103] M. Watt, Light-water interaction using backward beam tracing, in: Proceedings of SIGGRAPH’90, Comput. Graph. 24 (4) (1990) 377–385. [104] R. Wcilso, J. Kitowski, J. Moscinski, Cellular automaton as a fast tool for animation of liquid in multi-object scenes, in: Proceedings of the 6th International Conference in Central Europe on Computer Graphics and Visualization, WSCG’98, 1998, pp. 417–423. [105] T. Witthed, An improved illumination model for shaded display, Commun. ACM 23 (6) (1980) 343–349. [106] P. Witting, Computational fluid dynamics in a traditional animation environment, in: Proceedings of SIGGRAPH’99, 1999, pp. 129–136. [107] B. Wyvill, C. McPheeters, G. Wyvill, Data structure for soft objects, Visual Comput. 2 (4) (1986) 227–234.

[108] B. Wyvill, C. McPheeters, G. Wyvill, Animating soft objects, Visual Comput. 2 (4) (1986) 235–242. [109] B. Wyvill, in: Proceedings of SIGGRAPH’86, Electron. Theater Video Rev. 24 (1986). [110] G. Wyvill, B. Wyvill, C. McPheeters, Solid texturing of soft objects, IEEE Comput. Graph. Appl. (1987) 20–26. [111] G. Wyvill, A. Trotman, Ray-tracing soft objects, in: Proceedings of Computer Graphics International CGI’90, Springer Verlag, 1990, pp. 469–476. [112] Y.J. Yu, H.Y. Jung, H.G. Cho, A new rendering technique for water droplet using metaball in the gravitation force, in: Proceedings of the 6th International Conference in Central Europe on Computer Graphics and Visualization, WSCG’98, 1998, pp. 432–439. [113] Y.J. Yu, H.Y. Jung, H.G. Cho, A new water droplet model using metaball in the gravitational field, Comput. Graph. 23 (1999) 213–222.

Andr´es Iglesias is currently an associate professor at the Department of Applied Mathematics and Computational Sciences of the University of Cantabria (Spain). He holds a BSc degree in mathematics in 1992 and a PhD in applied mathematics in 1995. He has been the chairman and organizer of some international conferences in the fields of computer graphics, geometric modeling and symbolic computation, such as the CGGM (2002–2004), TSCG (2003–2004) and CASA (2003–2004) conference series. In addition, he has served as a program committee member and steering committee member in conferences such as ICCSA, GMAG, CGIV, 3IA, CyberWorlds, WSCG and ICICS. He is currently guest editor of four special issues of the journals Future Generation Computer Systems (FGCS) and International Journal of Image and Graphics (IJIG) on the topics of computer graphics, geometric modeling and symbolic computation. He is an ACM Siggraph and Eurographics member.