Image of Rain with a Lightning Bolt.
This project uses a very simple particle system to simulate rain onto a grassland. Factors such as wind, lightning, and splashes have all been integrated into the system. All of these can be turned on or off as described later. Basically, what you see is what you get. Each individual raindrop is a fully 3d model. Though, it may not appear as such because of its transparency. The splashes are actually just 2d polygons pointed at the camera along with the lightning bolts. Because there is no camera movement in the program, this seemed to work well, and not bog the processor down with a huge amount of polygons to render.
As far as code design is concerned, the entire project was heavily object oriented. The Particle System is run by a controller class which has rain drops, lighting, and splashes. The wind is then calculated in the controller and applied to each rain drop.
The project is rather easy to use. Note that the grassland.bmp file must be placed in the same directory as the exe to work correctly. As far as user control is concerned, all changes are made through a menu that can be brought up with a right mouse click and hold.
The menu items include wind, lightning, number of drops, and splash. Under the wind submenu no wind can be selected to stop all wind effects or east-west can be selected to have wind blow along the x-axis or north-south can be selected to have wind blow along the z-axis or both which will create wind along both axis'. Lightning can be turned off or have single count selected which will have lightning happen once every cycle (depends on the speed of the machine) or have double count selected for twice every cycle. The number of drops can be added or subtracted in 100/1000 amount increments. The minumum being 100 and the maximum being 6000. Splash can be turned on or off which will create a splash effect along the bottom of the field. Finally, exit will close the program.
Just a basic image of the rain.
A shot with the wind along both axis' enabled.
This is where I searched for the single image that I texture mapped to the background. The only other source of information that I had was from the class and the books associated with the class.