In computer science the game development may belongs to one the most complex and most complicated tasks. The subtlety comes from the claim that not even on the most expensive “hardware” could display the scenes that requires more and more physical resources and getting more and more spectacular. My duty is to create a particle based fluid rendering simulation using Ogre3D graphical rendering engine and Nvidia PhysX physical rendering engine. Both systems abstract the details of using the underlying system libraries and provide higher development level to the engineer.
The purpose of the “mini-API” creating by me is also serve that aim. The development of the newer and newer fluid simulation will be needles, the engineers only have to load this plugin, add some line of codes to the project the desired fluid phenomenon will be done.
The two systems will cooperate as written below. The graphical engine (Ogre3D) is going to supply those kind of particles, that responsible for the fluid movement and these particles will set up the scene. Basically in first step the library will create the basic components. After that the physical engine’s responsible will be to simulate the supplied particles that the result should be close to the real one. I mean the particles are colliding all the time with each other and different bodies like.: ground, wall of bath. In last step all the particles should be refreshed by the defined data. So parameters like actual position, “is the particle alive”, etc.
In order to making this application it is highly recommended to become familiar with the basics of the two engines, especially with the joining chapters. Furthermore it is crucial to know very well the technics I want to know such as particle systems, billboard engines, PhysX Fluid technology.
I intend to create such “fluid library” that can use anybody who develops game using Ogre and PhysX and the developers can supply different kind of parameters in order to them needs. Thereby the original task will be on a higher abstraction level which is the main point of the development and programming.