Algorithms for Atmospheric Special Effects in Graphics and their Implementation M.Tech Project - First Stage Report Submitted in partial fullfillment of the requirements for the degree of Master of Technology by Pisith Hao Roll No: 06329201 under the guidance of Prof. Sharat Chandran Kanwal Rekhi School of Information Technology Indian Institute of Technology, Bombay Mumbai
Abstract Nowadays, the current graphics hardware s computation speed is improving. This also increases the possibility of simulating the complex environment especially atmospheric special effects. Their high degree of realism becomes more challenging. In this paper, we present special effects related to rainy environment and a brief introduction to Delta3D selected for algorithms implementation. Two principle concepts of simulation of rain falling effects: using particle system editor and physical properties-based method and their drawback are also included. i
1 Introduction Special Effects, especially atmospheric effects such as rain, cloud, snow and other outdoor scenes in interactive applications (games, training systems...), are important in creating realistic environment. As current graphic hardware s computation speed is improving, their high degree of realism is also required to immerse the user in a visually convincing environment. However, rendering these effects is a hard problem, especially in real time. Rain is a very complex atmospheric physical phenomenon and consists of numerous effects: rain falling (light rain, moderate rain, heavy rain, and extreme rain), puddling on the streets by raindrops, splashing of raindrop, water rippling, falling raindrops dripping off object s surfaces, and water streaming off on the streets and objects. The objective of the project, Figure 1, is to make algorithms of the above effects as many as possible and implement them on Delta3D (be detailed in next section). Moreover, effects should be able to run in real time. The reminder of the paper is organized as follows. In section 2, Delta3D is presented briefly. Section 3 describes two concepts of creating rain falling effect and finally section 4 presents the conclusion and future work. Figure 1: Objective of the project 1
2 Delta3D Delta3D [1][2] is an Open Source engine which can be used for games, simulations, or other graphical applications. Its modular design integrates other well-known Open Source projects such as Open Scene Graph [3], Open Dynamics Engine [4], Character Animation Library [5], and OpenAL [6] as well as projects such as Trolltech s Qt, Crazy Eddie s GUI (CEGUI), Xerces-C, Producer, InterSense Tracker Drivers, HawkNL, and the Game Networking Engine (GNE). It has a high-level, cross-platform (Win32 and Linux) C++ API designed with programmers in mind to soften the learning curve, but always makes lower levels of abstraction available to the developer. Programmers can develop content through the level editor-they can write Python script to the Delta3D API or to the underlying tools directly. Delta3D uses the standard Lesser GNU Public License (LGPL) [7]. It s completely modular and allows a best-of-breed approach whereby any module can be swapped out if a better option becomes available. Figure 2 shows the Delta3D architecture. All the products in the bottom layer are existing open source projects. Delta3D unifies them into one consistent API with associated tools. Figure 2: All the products in the bottom layer are existing open source projects. Delta3D unifies them into one consistent API with associated tools 2.1 Effect in Delta3D Delta3D contains many effects such as motion models (Fly, UFO, Walk, Orbit, and First Person), smoke, explosion, animation blending, and particularly Graphical Particle Effect Editor. This editor allows developers to use graphical tool to change the properties of a particle system and see the effects immediately in real time. 2.2 Why Delta3D Delta3D is selected for implementation of our algorithms due to the fact that Delta3D leverages the success of existing open source tool such as OpenSceneGraph and contains an interesting particle system editor available in source code, which is allowed to modify to meet our requirements (realistic special effects). Hence it s a good starting point for our project. 2
3 Rain Falling Effect In this section, we describe two main concepts of creating rain falling effect : using Graphical Particle Effect Editor [8] and physical properties-based method [9]. 3.1 Using Delta3D Particle Editor The principle concept is to create firstly a texture of a raindrop and mapped it on a small billboard (particle) that will always face to the viewer (camera). Secondly, a rectangular emitter is made to shoot randomly particles straight down from a particular height. Thirdly, some properties of particle have to be set such as life of drop (for example 2 seconds, it s best to have raindrops disappear when they hits the ground), size of drop (or particle, for example from 0.15m to 0.25m), various numbers of particles creation (for example from 150 particles/sec to 200 particles/sec), and initial velocity rang of drops (for example from 6 m/s to 10 m/s) so that raindrops don t fall at a regular rates, numbers, and patterns. Even though the particles are supposed to be random, most people will notice a pattern after a while. So finally, to further stop this from happening, emitters (or layers) have to be created by putting different numbers into these emitter s properties and especially making different raindrop textures. Whenever a raindrop hits the wet surface of flat area such as the surface of the water in pool, circular of ripple (water ring) will occurs. This effect can be made by this particle system editor in a similar manner. At first, texture of water ring has to be mapped to a particle that always lay flat on the ground. Then a rectangular emitter is made to shoot randomly particles but the velocity shooting has to be set to zero in order to keep the particle from floating upwards. Lastly, the size of particle (or water ring) has to be set from 0.00m to 0.16m so that enlargement of water ring can be seen. Figure 3 and 4 show two raindrop textures and two water ring textures respectively. Theses textures and a simple terrain are import to the particle system editor whose properties are set with the example values mentioned above. Our result is shown in figure 5. Figure 6 presents an unexpected result when raindrops are viewed downward from a particular height. This happened due to the raindrop textures are mapped on billboards that always face to the camera (viewer). Figure 3: two raindrop textures Figure 4: two water ring textures 3
Figure 5: rain falling using a simple terrain, two raindrop textures and two water ring textures above Figure 6: rain falling is viewed downward from a particular height 4
Figure 7: Shape of drops: (a) Compared shapes of raindrops of radii R = 1mm, 1:5mm, 2mm, 2:5mm and 3mm [Ros00]. (b) Shape of a droplet of undistorted radius 0:5. (c) Shape of a droplet of undistorted radius 1:0. (d) Shape of a droplet of undistorted radius 3:0. (e) Shape of a droplet of undistorted radius 4:5 3.2 Using Physical Properties-Based Method This method is based on physical properties (geometrical, dynamic and optical) of raindrops. Ross [10] proves that falling raindrops look more like ellipsoids. Small raindrops are almost spherical, and bigger raindrops get fattened at the bottom. Figure 7 shows typical raindrop shapes for common undistorted radii. Figure 8 illustrates directions of reflected/refracted rays. At an interface, the law of reflection describes the directions of the reflected ray, and Snell s law describes the direction of the refracted ray. The basic concept is capturing first an image of the background scene to a texture. Afterward this texture is mapped onto the raindrops according to optical laws (Only Snell s law). Reflection s law is not participated since a raindrop appears rather small on the screen, and reflection is visible only in a small part of each raindrop. Figure 9 shows the comparison of a water-drop simulated using this concept (left) with an image of a real falling droplet (right). A photograph of the original scene was used as a background image for the simulated drop. The bottom images show a close view of the original and simulated drops. As the real drop just left the tap, its shape is not yet stabilized and is not perfectly spherical, and so it does not behave exactly as the simulated one. Figure 10 presents rain falling simulated using this method. This image is still lack realism due to many raindrops should be able to see inside the biggest raindrop and not only inside that drop. In addition, as this method does not care about reflection, caustic on raindrops are not seen when the light source placed behind viewer. Collision detection and merging of raindrops are not included in this method either. 5
Figure 8: Reflection / refraction of a ray in a raindrop Figure 9: Left: An image simulated with this concept. Right: A photograph of a real raindrop 6
Figure 10: rain falling simulated using this Physical Properties-Based Method 7
4 Conclusion and Future Work In conclusion, creating rain falling using Delta3D s particle editor and Physical Properties-Based Method present the basic concept of making special effects and ideas for future work. For second and third stage project, we are doing sequentially the following 9 steps. We will try to finish the first five steps in second stage and the last fourth steps in third stage. Starting date and number of week to achieve each step are detail in the time schedule table below. 1. Study source code of particle system editor 2. Improve the Physical Properties-Based Method 3. Implement that method on particle editor 4. Create rain falling effect: light rain, moderate rain, heavy rain, and extreme rain 5. Create effect of puddling on the streets by raindrops 6. Create raindrop splashing effect 7. Create water rippling effect 8. Create effect of falling raindrops dripping off object s surfaces 9. Create effect of water streaming off on the streets and objects Second Stage Project Time Schedule Steps Starting Date Number of Week to Finish 1 July 26 2 weeks 2 August 9 2 weeks 3 August 23 5 weeks 4 September 27 3 weeks 5 October 18 8 weeks Total 20 weeks Rest 3 weeks (December, 13 2007 - January, 8 2008) Third Stage Project Time Schedule Steps Starting Date Number of Week to Finish 6 January 17 4 weeks 7 February 15 4 weeks 8 March 13 5 weeks 9 April 17 6 weeks Total 19 weeks Rest 6 weeks (May, 29 2008 - July, 10 2008) 8
References [1] Delta3D. www.delta3d.org, accessed, June 2007. Last viewed on July, 11 2007. [2] Rudy Darken, Perry McDowell, and Erik Johnson. Projects in VR: the Delta3D open source game engine. Computer Graphics and Applications, IEEE, Vol.25, Iss.3, May-June 2005. [3] Open Scene Graph. http://www.openscenegraph.org/, accessed, June 2007. Last viewed on July, 11 2007. [4] Open Dynamics Engine. http://www.ode.org/, accessed, June 2007. Last viewed on July, 11 2007. [5] 3D Character Animation Library. https://gna.org/projects/cal3d/, accessed, June 2007. Last viewed on July, 11 2007. [6] OpenAL,Cross-Platform 3D Audio. http://www.openal.org/, accessed, June 2007. Last viewed on July, 11 2007. [7] GNU Lesser General Public License. http://www.gnu.org/licenses/lgpl.html, accessed, June 2007. Last viewed on July, 11 2007. [8] Falling Rain Particle Effect. http://www.delta3d.org/filemgmt/visit.php?lid=80, accessed, June 2007. Last viewed on July, 11 2007. [9] Pierre Rousseau, Vincent Jolivet, Djamchid Ghazanfarpour.Realistic real-time rain rendering. Computers & Graphics 30, 4 (2006), 507-518. special issue on Natural Phenomena Simulation. [10] Ross, O.N. (2000) Optical Remote Sensing of Rainfall Microstructures, Freie Universität Berlin, Fachbereich Physik, Diplom Thesis, 134pp. 9