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.

On the Final Destination stage in Super Smash Bros Brawl (and SSB Melee) the players fight on a platform seemingly moving through space:

Final Destination in gameplay

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?

share|improve this question
2  
I think actually flying through space is very dark and boring. –  Byte56 May 12 '13 at 15:29

2 Answers 2

up vote 4 down vote accepted

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.

share|improve this answer
    
Nice! Thanks! I suppose I could use a texture with an alpha channel to make it partially see-through? –  Sparkz63 May 13 '13 at 16:30
    
Yes. You can also use multiple layers of translucent textures with varying speeds. –  msell May 13 '13 at 16:56
    
Unity developers should check this out. The guy who made this demo used a deformed mesh with an animated texture to create the effect. –  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 is a few links on Perlin Noise: http://webstaff.itn.liu.se/~stegu/TNM022-2005/perlinnoiselinks/perlin-noise-math-faq.html http://freespace.virgin.net/hugo.elias/models/m_perlin.htm http://en.wikipedia.org/wiki/Perlin_noise https://www.google.com/search?hl=en&gs_rn=12&gs_ri=psy-ab&tok=LdTwrXJiymKnamCUgCaPaA&cp=10&gs_id=1c&xhr=t&q=perlin+noise&bav=on.2,or.r_cp.r_qf.&bvm=bv.46340616,d.cGE&biw=1920&bih=979&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi&ei=BVOPUfzLFuHsigLGlYGwCg

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

share|improve this answer
    
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? –  Sparkz63 May 12 '13 at 20:37
    
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. –  CPP_Person May 13 '13 at 9:23

Your Answer

 
discard

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.