[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/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 - qbismSuper8 builds

qbismSuper8 builds

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

Moderator: InsideQC Admins

Re: qbismSuper8 builds

Postby ceriux » Tue Apr 16, 2013 2:42 am

thats a lot of hellknights.
User avatar
ceriux
 
Posts: 2230
Joined: Sat Sep 06, 2008 3:30 pm
Location: Indiana, USA

Re: qbismSuper8 builds

Postby qbism » Tue Apr 16, 2013 3:21 am

It's negke's amazing Ascending And Descending, first map in at least a year, but there's so much mapping going on that the news is already knocked off func_msg front page.
User avatar
qbism
 
Posts: 1236
Joined: Thu Nov 04, 2004 5:51 am

Re: qbismSuper8 builds

Postby Baker » Fri May 10, 2013 3:48 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: qbismSuper8 builds

Postby qbism » Fri May 10, 2013 4:33 pm

Thanks, I may try it with my friend rowptr[] in D_WarpScreen to see if it's behaving.
User avatar
qbism
 
Posts: 1236
Joined: Thu Nov 04, 2004 5:51 am

Re: qbismSuper8 builds

Postby leileilol » Sat May 11, 2013 8:40 pm

I'd suggest dropping the current strange z-reading fog method for the fogmap-on-the-spans method if you're wanting speed.
leileilol
 
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Re: qbismSuper8 builds

Postby qbism » Sun May 12, 2013 3:20 am

Indeed fog is taking 30% framerate hit. It is a post-process effect with an if statement for every pixel.
User avatar
qbism
 
Posts: 1236
Joined: Thu Nov 04, 2004 5:51 am

Re: qbismSuper8 builds

Postby qbism » Wed May 15, 2013 4:14 am

...but putting it in spans trades the overhead of looping through the buffer with the overhead of overdraw. And we do like to put a lot of particles on the screen. Dithered fog is an expensive alpha/dither/depth filter which makes overdraw a killer. Regardless of the delivery method this algorithm really wants to get more efficient.
User avatar
qbism
 
Posts: 1236
Joined: Thu Nov 04, 2004 5:51 am

Re: qbismSuper8 builds

Postby leileilol » Wed May 15, 2013 7:04 am

You could calculate the particle's fog before the drawing and intercepting swapping the particle color with the fogged color instead so you could even fog up the assembly particles

The hardest will be trying to fog the model spans

I don't really see the huge overdraw issue for performance when doing it along in the spans' z. Is your fog table even 64 rows? You could prototype your spans fog first with the colormap (going from overbright to black) and then attempt to make a fogmap function which is just generating a colormap that blends to a fog color from the given fog parameters (and generate this on every fog command)
This is what i've done and it seems to work well for me. I don't see fogged spans worse than getting lighting on a model, and trust me, I really like to put a lot of particles on the screen (my particle limit right now is 16384)
leileilol
 
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Re: qbismSuper8 builds

Postby qbism » Fri May 17, 2013 7:26 am

Last edited by qbism on Thu May 23, 2013 2:33 am, edited 1 time in total.
User avatar
qbism
 
Posts: 1236
Joined: Thu Nov 04, 2004 5:51 am

Re: qbismSuper8 builds

Postby leileilol » Fri May 17, 2013 7:39 pm

Image

The blocky fog is the spans fog (which is relatively fast *nudge nudge nudge nudge*) while the sharp accurate fog is zbuffer-reading fog (which is horribly slow and is similar to your fog). In more subtle fogged maps you won't even notice the blocky imprecision of spans fog. I have also dithered the fog, but not with noise. You can easily tell this is DrawSpans16 i've put fog on given the 16 pixel step of the depth

and fyi this zbuffer reading fog is a reworked version of the elusive unused ApplyFog function from FTEQW's abandoned software renderer to use with my fogmap that I use with spans fog. I tried to make to it with dither. Considering Laser Arena's performance I believe they also have slow Z-reading fog, plus their sky is fogged.

Plus with spans fog, if you don't want to fog the sky, then simply don't edit the sky spans! :)

Another thing that can be tried is dithering the model's shading. It can be done effectively, though that has no relevance on supporting new features for mappers

my point is since you have an engine with a mission for more without heavy performance compromise (weird colored lighting method withstanding) I suggested spans fog like here as an alternative. It might work out for the heavily unrolled c loops you have going more than it does for me
leileilol
 
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Re: qbismSuper8 builds

Postby mankrip » Fri May 17, 2013 11:02 pm

Here's a more brutal method: rewrite large portions of the renderer to make it draw the scene in "slices". And then draw each slice over each other, in a way similar to the translucent water overdraw.

Each slice would correspond to a certain fog level. This way, nothing would have to be calculated during the rendering - all the renderer would have to do is to get the fog color of the current slice and blend with the color of the pixels during the rendering.

I do believe this is the fastest method that could ever be possible. But it would require a significantly deeper understanding of the renderer as a whole.
Ph'nglui mglw'nafh mankrip Hell's end wgah'nagl fhtagn.
==-=-=-=-=-=-=-=-=-=-==
/ /
User avatar
mankrip
 
Posts: 915
Joined: Fri Jul 04, 2008 3:02 am

Re: qbismSuper8 builds

Postby Spike » Sat May 18, 2013 7:40 am

you mean spans?
.
Spike
 
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Re: qbismSuper8 builds

Postby mankrip » Sat May 18, 2013 1:10 pm

Ph'nglui mglw'nafh mankrip Hell's end wgah'nagl fhtagn.
==-=-=-=-=-=-=-=-=-=-==
/ /
User avatar
mankrip
 
Posts: 915
Joined: Fri Jul 04, 2008 3:02 am

Re: qbismSuper8 builds

Postby Spike » Sat May 18, 2013 1:45 pm

it should be easy enough to move the far clip plane to be the distance at which the fog is considered fully opaque (assuming you use a fog formula where that distance is well defined, or at least sufficiently opaque that it is within rounding errors). that would reduce the number of spans etc needed.
splitting the world up into depth-based 'slices' is likely going to result in terrible looking fog. I'm not sure you'd save much.
as spans are drawn in 8 or 16 pixel chunks, you can just use a single fog factor for each chunk, so you go from one depth check per pixel down to one per 8 pixels.
the down side, of course, is that there's a lot of different parts of the engine that write to the screen, and you have to find every single one of them for consistant fog.
.
Spike
 
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Re: qbismSuper8 builds

Postby mankrip » Sat May 18, 2013 3:09 pm

Ph'nglui mglw'nafh mankrip Hell's end wgah'nagl fhtagn.
==-=-=-=-=-=-=-=-=-=-==
/ /
User avatar
mankrip
 
Posts: 915
Joined: Fri Jul 04, 2008 3:02 am

PreviousNext

Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 1 guest