[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4787: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4789: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4790: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4791: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
InsideQC Forums • View topic - Dynamic Lights "Bleed Through Fix"

Dynamic Lights "Bleed Through Fix"

Discuss programming topics for the various GPL'd game engine sources.

Moderator: InsideQC Admins

Dynamic Lights "Bleed Through Fix"

Postby Baker » Sun Jul 22, 2012 9:11 am

The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: Dynamic Lights "Bleed Through Fix"

Postby Baker » Sun Jul 22, 2012 9:28 am

The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: Dynamic Lights "Bleed Through Fix"

Postby mh » Sun Jul 22, 2012 12:26 pm

This "fix" actually looks worse than not having a fix, as there are easily reproducable cases where you can have adjacent surfs with one lit but another not, owing to differences in the angle. Just run around a bit with the rocket launcher and you'll see. Also try chthon's fireballs in e1m7 to see how bad it can really look.

A fully robust fix would need an approach similar to shadow-mapping. You can hack something up using the PVS - mark which surfaces are in the PVS for a dlight, then skip ones that aren't in R_MarkLights - but you'll still find cases where that breaks too.
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Re: Dynamic Lights "Bleed Through Fix"

Postby Baker » Sun Jul 22, 2012 12:38 pm

The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: Dynamic Lights "Bleed Through Fix"

Postby Spike » Sun Jul 22, 2012 12:52 pm

<cynical> deathmatch players would hate you for it. as its pretty much the only reason they still use dlights at all. </cynical>
.
Spike
 
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Re: Dynamic Lights "Bleed Through Fix"

Postby Baker » Sun Jul 22, 2012 1:23 pm

The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: Dynamic Lights "Bleed Through Fix"

Postby Spike » Sun Jul 22, 2012 1:51 pm

you would be amazed how fast light.exe runs when given 8 cpu cores.
.
Spike
 
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Re: Dynamic Lights "Bleed Through Fix"

Postby mh » Sun Jul 22, 2012 2:01 pm

There's a more general solution behind all of this. Take dlights, occluding world geometry, shadows, even the moving brush model stuff, and you begin to realise that you're actually nipping around the edges of real-time lighting and shadowing.

Current approaches to Quake (such as the "fix" in Baker's OP) focus on "make it look good with this type of geometry, in these type of conditions, but everything else still looks crap, and all you need to do is move another different type of model in and you break the spell". It's building up an architecture where every case is a special case and needs it's own handling that doesn't gel with anything else. That's where the inconsistency comes in and consistent-but-slightly-crap will beat one-thing-looks-really-good-but-everything-else-looks-out-of-place any day of the week.

You can take this even further and look at the stencil shadows in Doom 3. The normal reaction is something like "oooh, ahhh, stencil shadows, awesome", but take a closer look at how they fit into the world and you'll see one bunch of shadows with hard edges, another bunch (from the light projection/falloff) with soft edges and it just jars really bad. In many scenes Doom 3 actually looks better with stencil shadows turned off.

You can put a lot of effort into fixing up one particular occurrance of something in one map, then move to another map where the same thing happens but with different geometry and different models in different places and it's "holy fuck, this looks even worse than before". Sometimes you just have to accept that a problem isn't worth fixing without major architectural overhaul.
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Re: Dynamic Lights "Bleed Through Fix"

Postby Baker » Sun Jul 22, 2012 8:15 pm

MH, your right but I just realized something after busting out "tool_texturepointer".

Those surfaces denied lighting by the light bleed-through fix can serve as blockers. The surfaces that shouldn't be affected have one thing in common ---- ALL of them have a backface (and actually a front face) between themselves and the light source. A plane test (R_Lightpoint) or traceline between the light source origin and the surfaces that shouldn' be lit would return false.

I'm not saying this idea is good, couldn't possibly look terrible and I'm not saying it isn't potentially a waste of time. :D I can see plenty of ways this idea would miserably fail, though especially with lighting as a radius.

I need to drop this idea and continue with the realistic set of my to-do list ... :D
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: Dynamic Lights "Bleed Through Fix"

Postby mh » Sun Jul 22, 2012 8:47 pm

User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am


Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 2 guests