For an overview of particle reality, please have a look at the announcement at the "Shared Code" page of this forum:http://www.java-gaming.org/forums/index.php?topic=12171.0
Project Homepage: http://cal007300.student.utwente.nl/vincent/particleReality/
Java Webstart demo: http://cal007300.student.utwente.nl/vincent/particleReality/particlereality.jnlpSummary:
Particle Reality is an extremely versatile Java particle engine, based on the ideas of the excellent commercial particle animation software Particle Illusion by wondertouch. The library allows you to define all aspects of particle and particle emitter behavior over their entire lifetime in XML, allowing for a very flexible particle system.
The project could use help with some areas where you can help to contribute to this project. The goals listed are doable by one person, fun and you'll be listed at the Project Developers & Contributors page. So please take a look and if you have some spare time and want to contribute to a fun open source project, please participate. All contributions, however small, are immensely appreciated.
at this moment, the project could use your help with the following.[size=12pt]Speed Improvements[/size]Math Caching
Lots of sinus & cosinus calculations are taking place, perhaps there is some speed improvement if we pre-calculate them and interpolate between them. Testing needs to be done and a system needs to be implemented, if the tests show a significant speed improvement.Math improvement
Perhaps there are better ways to do some of the math used in the project, if you are a math-genius or functional machine, you could take a look at how the calculations are done right now, perhaps there are areas which can be improved. Interpolation Class
Currently uses a binary search method, however, since most interpolations contain few numbers, this could be overkill and actually hamper the speed of the system. So we need to do some testing and maybe come up with a better way (perhaps a straight forward lookup and caching of some kind is far more effective than the current system). [size=12pt]OpenGL Renderers [/size]Build more OpenGL Renderers
Currently only a very mundane renderer is in place, I am sure there are some improvements to be gained here.Build one using '''Vertex Buffer Objects'''
VBOs are hot these days, so building a renderer using these would be great.Build one using '''Vertex Arrays'''
Although not as hot as VBOS, perhaps, since we are dealing with dynamic data, building a renderer using Vertex Arrays is not only good enough, but even better.A problem with the renderers as stated above is that we have to do some matrix-calculation/rotation, since we cannot depend on glRotatef and glScalefThink of a more optimized emitting/rendering structure
Perhaps there is a more optimized way to set up a particle movement/rendering structure which I didn't think of beforehand.[size=12pt]Project Documentation[/size]Create usage examples
A few examples showing how to manipulate emitters/effects, how you can use particle effects for bullets in games, how to use particle effects for progress bars.. things like that.Expand on emitter properties and particle type properties
Make a better layout, showing example XML, permitted values, the effect of high/low values, common usage of these properties, weird effects of these properties. Create tutorials on how to build particle effects in xml.[size=12pt]Demonstrations & Games[/size]Build a demo or an example game which utilizes the library.
Perhaps something like a demo which uses emitters and music (emit something onscreen on the rythm of the music). And a game which uses the system for explosions and bullets.Create a Particle Effect Editor
This is a large project. To build a particle effects editor which can read/write particle libraries. perhaps mimic a bit like how the particle illusion editor works.[size=12pt]Particle Effect Sharing[/size]Share your particle effects!
Create shapes for use in particle systems. Get inspiration from the thousands of effects you can get for particle illusion and perhaps mimic them to make thoese effects available for use in java games/demos.