Tips on making missile smoke trails?

Started by
8 comments, last by Digitalfragment 17 years, 8 months ago
I'm trying to make nice looking missile smoke trails for my 3d space game, similar to the ones in the battlestar galactica series, or in one of the x3 reunion trailers. So far I've got some billboarded smoke textures with alpha blending and testing on it which gives a nice see through smoke particle, but when i try to make a smoke trail it ends up looking like the snake in nibbles. So any tips?
Advertisement
You will probably want to make them sorta come out in different directions instead of just coming straight out, so its kinda like:
  ^  |   - missle  |  ^ /|\   - smoke trails/ | \

Also, make the particles fade out and get bigger the longer they have been alive.

Hope this helps :)
When trying to make good particles effect it can be frustrating to re-compile the code every time you change a minor variable to tweak the thing. I would recommand you using one of many already existing particle editor of any engine, import approximatly your camera settings and your textures, create something looking good and then parsing the values (accel, velocity, randomness, lifetime, size) of the emitters in your code. Well that's only a suggestion :)
Realistically, the smoke particles would under-go some changes, whether your particles system can handle these depends on your implementation:

* The particles increase in size as they age
* The particles alpha increases, from an initial high opacity fading to totally transparent.
* They would be propelled at some velocity away from the rocket, this might be an important distinction from simply spawning a particle at the end of the rocket and allowing the rocket simply move away from it.
* The particles speed would slow down due to air resistance.
* The particles would rotate, likely in all kinds of direction and this rotation would slow down too.
* As silothesuper said the particles wouldnt be produced in a single stream there would be some particles that come out a slight an angle too... for added realism these angled particles would probably be smaller in size although this may be a bit over the top [smile]
* Each particle would be different, so some would die earlier, some would rotate more in one direction to that of another, but all particles would fade to nothingness just before they die to avoid that nasty popping effect.

Hope that helps
Hmm, so much work to do!

Although I am using textures at the moment, what do you think about using pixels and lines as particles, like is it possible to make decent looking smoke that way?

eg point1 color(rgba) would be (1,1,1,0) and point 2 would be (1,1,1,1) with alpha blending, so then the line would fade into nothing.

I got the idea from Jeff Lander's The Ocean Spray in Your Face, which mentions using the particle's position and last position to draw a line for the particle.

btw my games graphics style is basic polygons eg a missile looks like an untextured coloured tetrahedron, so I thought lines and points for particles would be more fitting than using textures.
Have multiple textures for the particles. Thats all I really can think of that hasn't already been said.

Quote:Original quote by Dunge
When trying to make good particles effect it can be frustrating to re-compile the code every time you change a minor variable to tweak the thing.


Ditto, you could create your particle system in a way that you could adjust variables like particle life, rate of change in size, random jitter, ect... while it is running. That way it would be alot easier to adjust the way the system looks to get it to look right.
I've worked with 2d smoke trails a lot. I've found that for missiles the coolest effect I'd gotten is to use a rectangular particle. Every time the missile turns you create a new one and have it follow the missile, changing the length as it goes. For 3d you could use 2 textures that cross each other like "+" so that it looks good. The particles at the end of the trail also shorten and when their length = 0 they are removed and you begin shortening the next smoke trail piece. I've found that method along with some other particle emitter for the fire looks very impressive.

here's a picture of the 2 textures or solid colored quads that create the particle.

I've started playing homeworld 2, how do they manage to make those seemless thrust streams?

Quote:Original post by Sirisian
I've found that for missiles the coolest effect I'd gotten is to use a rectangular particle.


Do you have any screenshots or maybe the executive still around that I could have a look at?



I only work in 2d, but in my old game engine (3 years old...)
http://img180.imageshack.us/img180/6439/image3dq4.png

I've never touched 3d programming, but for the idea as I think it's just an array of objects.

class smokePoint
{
float x,y,z;
float orientationX, orientationY, orientationZ;
Vector3d TexturePoints[4];//4 points around the main point.
};

std::vector<smokePoint*> smokeTrails;

okay it's kind of hard to explain since I've never worked with 3d.

On the tip of the wing you could create a smoke point with the x,y,z and orientation set the 4 points around that point to form a + sign. Then after a few frames create another one. Plot 4 points around each of them. Then connect the first 4 texture points to their respective points in the second smoke point. Keep doing that for all the smoke points in the trail and render them.

This is completely theorhetical, but sounds like it could work for smoke trails. Maybe someone with better 3d skillz could clearify a better way.

[Edited by - Sirisian on August 22, 2006 5:44:23 PM]
If you want long trails, dont rely on particles because you will end up having to draw too many to fill the gaps that can form. A bit of smart thinking and you should be able to think of a way to use a textured geometry strip that shows the path that the rockets been travelling in. Then you can play with the alpha/width etc at any stage along that path.

This topic is closed to new replies.

Advertisement