Playing with Particles on the PSP
Unfortunately I have been unabled to get pictures of the programs so far; however I am still currently trying to get some video capture of them done.
Billboard Particle System (PSP)
This was a follow up from a previous module where we created a 3D scene on the PSP (which can be found here). Once again this program was written in C, using Sony’s PSP development kits. The module specification only required us to display bill boarded textured particles, and then it allowed us to do what we wanted in terms of scene. Due to problems, I had to start this assignment later than what I wanted and it only allowed me 4 days to work on both this and a benchmarking tool.
The billboarding method I used was to create a world transformation based on the particles location to the camera; the tutorial I used can be found at http://nehe.gamedev.net/article/billboarding_how_to/18011/.
When playing around with the movement I saw that the particles looked a bit like fireworks, so I played on this a bit and made a small firework display revolving around user interaction. Four fireworks are available to be fired using the face buttons. Each time the button is pressed a new particle is created at a random point with a random lifespan, it then moves up and once its lifetime ends, it explodes into around 50-200 new particles depending on the type. It also uses different colours, bringing a bit more to life to the scene.
The camera can also be moved around, and the scene paused – this was more to aid the lecturer in seeing the billboarding in action.
Benchmarking Application (PSP)
Again this was written in C and made using Sony’s PSP development kits. This was also written in the four days along with the particle system.
The aim of this was to get some quantifiable data from the PSP in terms of memory allocation, render time and FPS. To do this I had to create a small Vector Matrix library in C, by doing this I can make sure that the calculations are done on the CPU, and that I know exactly what is happening each loop. Each render loop I then rotate a number of quads around three axis’s and display them. You can also increase the number of quads via controls.
Once I had a basic application complete, I recorded some results from using multiple numbers of quads (test FPS at 50, 100, 150 quads etc). I then put it into a table and analysed the results. Because someone other students are still working on this, I am unable to post the results / what I found out.
Comments
Post a Comment