soft_particlesSince the release of Caromble! is getting closer and closer, we spend more and more time juicing things up. Basically this means adding lots of special effects in places where a player expect feedback from the game. For example, showing sparks and smoke when the ball hits an object.
A lot of these effects are implemented through particle systems: you blend lots of 2D textures on top of each other to get a nice volumetric effect. This Friday we added some improvements in the rendering of particles.

The first problem you have with these flat particles is that you get creases where the particle intersects with the other scenery (see the ‘disabled’ image). Luckily, these artifacts are pretty easy to clean up. Since we already have the distance from every pixel towards the camera, we can easily fade the particles near the intersections. As you can see in the ‘enabled’ image, no artifacts!

The second issue we had is that some of our particles have very high velocities. A particle traveling with a high speed might cross the whole width of the computer screen within just a few rendered frames. This causes the particle movement to look choppy. But why does a ingame particle rendered at around 60fps looks choppy while a moving ball in a movie (typically 24fps) seems to move smooth? The answer is simple: Motion Blur.
For a good example about the importance of motion blur, check this website.

While I would love to add full scene motion blur, we would have to change too much of the rendering pipeline to get it to work (and it would strain slower hardware too much as well). Therefore, we chose to only fake motion blur for particles. Doing this is very easy, we simply stretch the particle in the direction it is moving in (screen space) and fade it depending on its speed. This will make the particle movement seem a lot smoother.

« »