So called "Full Screen Glow"

Sage
Posts: 1,199
Joined: 2004.10
Post: #1
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.
Quote this message in a reply
Sage
Posts: 1,234
Joined: 2002.10
Post: #2
Close, use the destination alpha.

See article and also article.
Quote this message in a reply
Member
Posts: 153
Joined: 2004.12
Post: #3
The fullscreen glow is something different. Thats the 'death effect'. but none the less its cool Smile

There was a long silence...
'I claim them all,' said the Savage at last.
Quote this message in a reply
MarkJ
Unregistered
 
Post: #4
Is this what you're talking about?
Quote this message in a reply
Sage
Posts: 1,199
Joined: 2004.10
Post: #5
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
Quote this message in a reply
Member
Posts: 47
Joined: 2004.07
Post: #6
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.

Nicholas Francis
http://www.otee.dk
Quote this message in a reply
Puzzler183
Unregistered
 
Post: #7
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?
Quote this message in a reply
Sage
Posts: 1,199
Joined: 2004.10
Post: #8
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.
Quote this message in a reply
Sage
Posts: 1,234
Joined: 2002.10
Post: #9
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...
Quote this message in a reply
Sage
Posts: 1,199
Joined: 2004.10
Post: #10
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.
Quote this message in a reply
Post Reply 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  Every time that drawRect is called Miglu 0 2,071 Oct 26, 2010 06:55 AM
Last Post: Miglu
  Full Screen OpenGL Crashes Blacktiger 13 8,056 Feb 19, 2009 02:39 PM
Last Post: backslash
  Glow/bloom in OpenGL Jar445 8 8,755 Jan 31, 2009 07:00 PM
Last Post: arekkusu
  OpenGL full screen mode leaves garbage on screen when exiting app Malarkey 5 5,420 Nov 19, 2008 12:51 PM
Last Post: Malarkey
  Changing resolution while already in full-screen mode? Malarkey 1 2,729 Jun 10, 2008 07:49 PM
Last Post: AnotherJake