iDevGames Forums
So called "Full Screen Glow" - Printable Version

+- iDevGames Forums (http://www.idevgames.com/forums)
+-- Forum: Development Zone (/forum-3.html)
+--- Forum: Graphics & Audio Programming (/forum-9.html)
+--- Thread: So called "Full Screen Glow" (/thread-5893.html)



So called "Full Screen Glow" - TomorrowPlusX - Feb 9, 2005 02:55 PM

All,

I was reading the notes on apple's 10.3.8 update and it claims a performance improvement for WoW's "Full Screen Glow" feature. Now, I don't have WoW, so I looked at the screenshots and I'm guessing this is what they're talking about.

Fullscreen glow?

So, this is pretty cool. Does anybody here have any idea how something like this would be implemented?

My personal guess... and this is entirely conjecture... is that you'd render the scene normally. Then render just light sources and specular hilights etc into a greyscale texture. Then you'd either run a gaussian blur on the texture ( expensive ) and then draw it over the scene with additive blending. Or, you'd just draw the texture, say 16 times scattered around a center point with 1/16th alpha.

I'm just curious. The effect seems cool, and I'm wondering how it would be approached.


So called "Full Screen Glow" - arekkusu - Feb 9, 2005 03:57 PM

Close, use the destination alpha.

See article and also article.


So called "Full Screen Glow" - hangt5 - Feb 21, 2005 02:59 PM

The fullscreen glow is something different. Thats the 'death effect'. but none the less its cool Smile


So called "Full Screen Glow" - MarkJ - Feb 23, 2005 12:19 PM

Is this what you're talking about?


So called "Full Screen Glow" - TomorrowPlusX - Feb 24, 2005 05:23 AM

MarkJ Wrote:Is this what you're talking about?

Wow, that sounds a lot like how I thought it would work. I think I'll be giving a shot at this! Thanks for the link Wink


So called "Full Screen Glow" - NicholasFrancis - Mar 6, 2005 04:51 PM

I used this paper heavily when doing the glows for GooBall:
http://www.daionet.gr.jp/~masa/column/2002-09-22.html

Ignore the japanese - just get the slides.


So called "Full Screen Glow" - Puzzler183 - Mar 6, 2005 08:54 PM

Full screen glow isn't quite that effect from what I've seen. But, they are fairly similiar and I'm sure that either could be implemented through shaders or possibly even some other simpler way. Maybe the accumulation buffer?


So called "Full Screen Glow" - TomorrowPlusX - Mar 7, 2005 08:31 AM

Well, for what it's worth I implemented a naive version using texturing ( no shaders ) and the performance was awful. Profiler made it clear ( though I knew anyway ) that the hit was in glCopyTexImage2D.

That said, I've had great success using careful billboarding and occlusion testing using rays.

Here's a couple screenshots:

The player vehicle being recharged:
[Image: Legion-2005-03-05-00.png]

Missiles falling from the sky:
[Image: Legion-2005-03-05-02.png]

Player blowing up ( flares around lightning endpoints )
[Image: Legion-2005-03-05-03.png]

I would go for the formal & high quality approach, but I'm trying to support low end cards. I'm willing to accept my current approach... Right now this plays well on a GF4Mx, albeit without dynamic shadows.


So called "Full Screen Glow" - arekkusu - Mar 7, 2005 01:15 PM

Looks good... but does this handle occlusion? I.e missile glow partially behind a mountain? From the last shot it looks like strict 2D overlay...


So called "Full Screen Glow" - TomorrowPlusX - Mar 7, 2005 01:39 PM

It does do occlusion, actually, but not in the most robust way -- since I'm trying to keep it fast and all. Also, I'm under the impression that ARB_occlusion_query isn't hardware accelerated yet on OS X...

What I do is ray collision against the scene, from the flare source to the camera. If the flare's attached to something, say a broken-off wheel or whatever, the ray will disregard that geometry for collision testing -- so a flare source doesn't occlude its own flare Rasp

When the ray doesn't intersect, I draw the flare without depth testing, which causes a nice bleeding over foreground objects ( and also avoids the ugly billboarding artifacting where the billboard clips against terrain and you see a hard line ). When the ray *does* intersect something, I turn on depth testing, so the flare won't bleed over things in front of it.

It's primitive, but works pretty well so long as it's used appropriately. Also, I can have a ton of flares without a noticeable performance hit.