minimizing blended billboard popping

Originally posted by zed:
on the subject of smoke, has anyone implemented some excellant looking smoke.
mine whilst it looks pretty good, appears more like steam than smoke, ive been playing around with textures/colors/blending methods but cant get a nice looking effect

i use 1, 1-alpha for my blending. make sure your alpha and color channels of your texture aren’t modulating in lock-step (you need high alpha and low color intensity to make dark areas and the impression of self shadowing).

played a bit more redid an old particle simulation application
tested depth particles but no go, it improves the looks when the particle is intersecting another polygon in the scene but if u turn on depthwrites and use it within the cloud/smoke it looks crap u see
the abrupt depth changes ( think doing sprites with alphatest vs blending, with blending the edges look better)

picture link does not work.

sorry (its not much chop anyways)

ive found some brilliant looking smoke here
now it looks nice in the screenshot, BUT how does it look when the cameras moving, i dont think its possible

perhaps the smoke is treated not as 2d sprites but as a 3dmesh? how would this go, a lot more difficult to implement, would it work, hmm

btw i found a good demo that illustrates the popping effect

Originally posted by zed:
ive found some brilliant looking smoke here
now it looks nice in the screenshot, BUT how does it look when the cameras moving, i dont think its possible

Those shots looks a lot like offline rendered CG sequence… look at that pretty motion blur on second screenshot…

Maybe OT : I recently saw a small game/demo with very pretty lit smoke : (first section, “Next Gen …Platformer”).
Quite nice, even if the camera does not really rotate around the smoke.

They look like depth sprites to me.

ZBuffer, I pointed out this demo in a previous thread. You can find the link to this if you read my previous post in this current thread.
You’ll find a real time demo and videos.


that app crashes within the first second (7mb:() but based on the screenshots its similar to what i have at present the problem is my camera is often rotating whereas in that game it views the scene from the same direction.
i think ill stick smoke on the TODO list for a while (i often come up with solutions if im not actively thinking about them)

Zed, grab the video, his camera has some rotations and it works perfectly.


Just another thought : you can store the sort order of each sprite, and crossfade when it changes to minimize the popping effect.
But depth sprites would be the best.


do u mean something like check sort order if two numbers have swapped then decrease the blend amount of those 2 polygons, i can see that not working 100%.

also in the video i downloaded the camera doesnt really rotate more than say 10degrees (i want the whole 360 degrees) thus u cant really tell if its popping or not.
ive made a reasonable fascimially of the technique in the video, though mine doesnt look as good. i believe this is due to the textures used

My second thought would not work perfectly when moving fast, or when billboard are animated with a heavy speed in such a way that even when the camera doesn’t move the sort order varies.
Anyway, it will attenuate a lot the popping effect. You can even tweak the lerping speed depending on the camera and/or billboard speed.

This is obviously not 100%, but it should reduce the unwanted effect mostly.


thanks for the input SeskaPeel, youre driving me onto fixing this.
at the moment the smoke doesnt look to bad at all, part of the secret is using correct textures.
ild beeen making the mistake of taking photos of clouds and creating a texture from those, this works with all other things eg grass,metal,wood etc. but with clouds/smoke i found just drawing a simplistic texture myself in a paint program eg a few circles (quasi cartoonish bilowing clouds)gives the best results

i had an anohter idea this morning in bed (not yet tested) it will get rid of the popping from the camera movement but might have the side effect of looking crap.
*when the camera rotates then rotate the particlesystem in the opposite direction, thus what is closest to the camera at the start will always be closest no matter how u rotate the camera.
then again like i said it might look crap, ill trial it soon

No problem for the input, this is something that helps me a lot too, and a topic of interest.

For your in-bed idea, I fear this will look 2D !

Have a look too at Niniane Wong’s paper (FS 2004 clouds) :
I will be implementing her method this week I think, and after reading quickly through, it might NOT solve the popping problem (she was the one suggesting lerping when sort order changes), but it might enhance your shading algorithm (perf and quality).


For your in-bed idea, I fear this will look 2D !
your right nothing good ever happened to me lying on my back.
anyways ive managed to minimize the popping by using a lower initial alpha value for the drawing, though of course the smoke looks a bit more wishywashy but being the politician i am i can live with the compromise.
ill post a screenshot today anyways in case youre interested.
i believe though youre goals (with this and the fog) are higher than mine, i just want something that looks good, ie bollux to the physical accuracy

I actually wanted something that looked good, and the best looking method I found were the physically accurates one …
I never aimed at ultra realsim, though it is a bonus. First goal has always been to have something that is pleasing to the eye.

Remember ?


i like the look of the watercolor shaders and also the non-heightmap landscape (im just using a heightmap, the landscaoe used to be a mesh, i forget why i changed to a heightmap anyways)
a couple of important differences between yours and mine
*i have a lot of explosions/lights, thus bright polygons with depthwrites off which is causing a lot of grief for me, also the same with shadows,fog
*since mines a oldschool shootemup set in a galaxy far far away, realizm takes a back seat to gameplay. not saying mine has any good gameplay mind