Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

The effect should be as similar as possible to this, though it does not need to be at planetary scale.

I was thinking that it could be done offline via particles, perhaps by directing their motion in some way. Then rendering the frames to a texture and playing these back in a loop for real-time rendering?

But I wonder if there is some other real-time way... maybe mesh patches shaped like swirls can be moved around, after being textured carefully, to imitate the motion of swirls of gaseous matter?

share|improve this question
add comment

2 Answers

up vote 2 down vote accepted

I think you shouldn't use particles for performance reasons. They can indeed give spiral feel, but it's hard to efficiently let particles affect each others' movement. In other words, efficient particle systems usually have no interaction between particles.

In the below photo, it seems more like the clouds are being affected by the nearby environment.

swirling clouds on Jupiter

Instead of particles, you could use 2D fluid or smoke simulation, which resolves the problem of interaction with advection of quantities inside the fluid and pressure constraints. An implementation of 2D smoke is detailed in Mark Harris' Fast Fluid Dynamics Simulation on the GPU. There's also this other answer with a brief explanation of fluid dynamics, with other references.

share|improve this answer
add comment

You could use a particle engine or even a fluid dynamics engine, but that will be quite complicated to set up. When you do it in real-time, you will likely run into performance problems. When you precalculate a few seconds long movie sequence from a simulation, you will have problems to get it to loop seamlessly.

But you could reach an almost as good effect by multiple bitmaps.

Start with a static bitmap as a background. Then representing each of the moving bands of clouds with a series of a repeating, tiling bitmaps. Have all these bands scroll horizontally with different speeds. When you let the borders of these bands fade to transparency and let them overlap each other, it should look almost like that.

share|improve this answer
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.