On the "Final Destination" stage. in "Super Smash Bros. Brawl" and "Super Smash Bros. Melee", the players fight on a platform that is seemingly moving through space.

During the "Final Destination" stage, there is a giant rift, in the background. This gives the illusion of flying through space.

I see particle effects, but I don't understand how they made the clouds, or the rest of it. I'm currently working on a breakout-clone in Unity3D, and would like to create a similar background for my game.

How can this effect be produced? How can a texture be made to fly towards the camera endlessly / seamlessly like that?

  • 2
    \$\begingroup\$ I think actually flying through space is very dark and boring. \$\endgroup\$ – MichaelHouse May 12 '13 at 15:29

This effect is called Tunnel effect and has been popular in Demoscene. Basically it's a texture mapped infinite cylinder. The camera is moving inside the cylinder or the camera stays still and the cylinder is moving. Here is a video of this effect without alpha blending to make it more obvious and the source code for it.

Basic idea was to raytrace the cylinder into a look-up table, which can be used to render it very fast with arbitrary texture, where the offset can be animated. This technique is not limited to just cylinders, but is more generally called Plane deformations.

With current GPUs you can easily calculate the effect also in real-time without the pregenerated look-up table. Here is one such example using WebGL.

| improve this answer | |
  • \$\begingroup\$ Nice! Thanks! I suppose I could use a texture with an alpha channel to make it partially see-through? \$\endgroup\$ – Sparkz63 May 13 '13 at 16:30
  • \$\begingroup\$ Yes. You can also use multiple layers of translucent textures with varying speeds. \$\endgroup\$ – msell May 13 '13 at 16:56
  • \$\begingroup\$ Unity developers should check this out. The guy who made this demo used a deformed mesh with an animated texture to create the effect. \$\endgroup\$ – Sparkz63 May 13 '13 at 17:02

I don't know much about Untiy but I know how effects like that are produced. They take randomly generate particles around the area, I'd guess they used Perlin Noise. And in each update, if the particle is no longer visible, it's deleted to make more room for new particles. This should produce the effect you are looking for.

Here are a few links on Perlin Noise:

I also recommend taking a look into Simplex Noise. Pretty much a newer version of Perlin Noise.

| improve this answer | |
  • \$\begingroup\$ Excellent suggestion! Perlin Noise would certainly make clouds that look like those. But how does one animate a cloud texture to fly around the camera like that? \$\endgroup\$ – Sparkz63 May 12 '13 at 20:37
  • \$\begingroup\$ Draw a cloud texture across the sky, but only let it visible if there is a cloud in front of it. You can generate the cloud texture using Perlin Noise to make a better effect. \$\endgroup\$ – LiquidFeline May 13 '13 at 9:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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