Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Guest CRiZ

Wait.... 20 passes!?

Recommended Posts

Guest CRiZ

Sorry if we digress a bit but this "20 passes" business sounds outrageous.
Does 20 passes mean 20 cycles as in 20 Hz from the CPU/GPU? Like adding to the scene piece by piece where 20 pieces are required to display the final frame?
When I think passes I think of the multiple passes I've read about that are required for texturing. Like 3 passes for applying 3 textures to a brush.
So what the hell can these passes be? Where did this number come from anyway or is this just someone's estimate?

I can think of up to 3 passes for overlapping base textures and one more pass for bumpmaps. Maybe 2 more, max, if the material is some sort of shiny metal that could use some addition texturing effects.

And then again.... maybe I don't have a damn clue.

Share this post


Link to post

Let´s see... we have a nice chunk of passess reserved for the shaders. 5, 6 layers are usual stuff in the many shaders found on the latests Q3A powered games.

We have the lighting, of course. This one´s really expensive, you have to be careful or you´ll loose a lot of precision.

The bumpmaps are really complex, and I don´t think a GeForce3 is able to perform one bumpmap layer per pass.

I´m sure Carmack could compress this loop into a smaller one, but the precision lose would be tremendous. I have seen screenshots of the Xnfinite engine (a cheesy name) working in tutorials, and they start looking crap real soon.

Then there´s the gamma/intensity/bright&contr settings. Q3A hacked the pallete to archieve gamma, resulting in a precision lose. id can´t do that anymmore, so I guess they´re adding another one to get things straight.

Share this post


Link to post

Basically, it works like this:

$m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t[$_]^(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval

And what that all comes down to is simply $_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(

Share this post


Link to post
Lüt said:

Basically, it works like this:

$m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$d=unxV,xb25,$_;$e=256|(ord$b[4])&lt;&lt;9|ord$b[3];$d=$d&gt;&gt;8^($f=$t&($d&gt;&gt;12^$d&gt;&gt;4^$d^$d/8))&lt;&lt;17,$e=$e&gt;&gt;8^($t&($g=($q=$e&gt;&gt;14&7^$e)^$q*8^$q&lt;&lt;6))&lt;&lt;9,$_=$t[$_]^(($h&gt;&gt;=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval

And what that all comes down to is simply $_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(

HOLY CHRIST ON ICE I FINALLY UNDERSTAND!

Share this post


Link to post
Guest CRiZ
Lüt said:

Basically, it works like this:

$m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$d=unxV,xb25,$_;$e=256|(ord$b[4])&lt;&lt;9|ord$b[3];$d=$d&gt;&gt;8^($f=$t&($d&gt;&gt;12^$d&gt;&gt;4^$d^$d/8))&lt;&lt;17,$e=$e&gt;&gt;8^($t&($g=($q=$e&gt;&gt;14&7^$e)^$q*8^$q&lt;&lt;6))&lt;&lt;9,$_=$t[$_]^(($h&gt;&gt;=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval

And what that all comes down to is simply $_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(

You're a right witty bastard, ain't ya? 8 )

Share this post


Link to post
Guest CRiZ
Zaldron said:

Let´s see... we have a nice chunk of passess reserved for the shaders. 5, 6 layers are usual stuff in the many shaders found on the latests Q3A powered games.

We have the lighting, of course. This one´s really expensive, you have to be careful or you´ll loose a lot of precision.

The bumpmaps are really complex, and I don´t think a GeForce3 is able to perform one bumpmap layer per pass.

I´m sure Carmack could compress this loop into a smaller one, but the precision lose would be tremendous. I have seen screenshots of the Xnfinite engine (a cheesy name) working in tutorials, and they start looking crap real soon.

Then there´s the gamma/intensity/bright&contr settings. Q3A hacked the pallete to archieve gamma, resulting in a precision lose. id can´t do that anymmore, so I guess they´re adding another one to get things straight.

Hm... interesting. Thanks Zaldron, you never fail to impress me.

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
×