Carmack responds in 'interview' with B3D

eXzite

Limp Gawd
Joined
Jul 22, 2004
Messages
144
Check it out:

http://www.beyond3d.com/interviews/carmack04/

Little more info on what exactly is going on here. It's as most thought, the POW function is a math approximation replacement for the specular lookup table that was in Doom3. The lookup table is in there to ensure identical rendering results across the multiple render paths (in particular the render paths that don't support math shader ops like POW). Carmack doesn't seem too put off by the shader change, but says the artwork won't really look like the artist envisioned.

It's also true that this hack really only helps if you force AF on through the control panel, because only then do ATI cards blindly do aniso on every texture, including that particular texture lookup. Normally, if aniso is set from within the game, the code knows that the lookup texture should never be sampled for aniso, and therefore the gain is sort of moot.
 
So, then, this hack would or would not affect D3 benchmarks done by [H] if they stuck the hack in there?

[H] didn't use forced anistropic did they?
 
anyone else having trouble connecting to beyond3d? i haven't been able to resolve the domain since yesterday...
 
^eMpTy^ said:
So, then, this hack would or would not affect D3 benchmarks done by [H] if they stuck the hack in there?

[H] didn't use forced anistropic did they?

Hard just ran High Quality settings which enabled 8xAF in-game. They didn't force AF through the CP.

And despite those that have claimed the latest HACK does not change the IQ at all, it was pretty much confirmed in this interview that it doesn't render the same as the original because it skips a feature of the D3 engine (specular texture lookup).

http://s95069928.onlinehome.us/stuff/doom3/

Conclusion

While the Humus interaction.vfp allows small gains in frame rates for 0xAF and allows slightly greater gains in Application Preference 16xAF, the greatest increase is in Control Panel Forced 16x AF (32.59%).

As well, when comparing the effects of App. Preference AF, the default interaction.vfp would show a 6.45% drop in frame rates while the Humus interaction.vfp only has a 4.59% drop.

More significantly, forced AF via Control Panel has greater effects on frame rates, where there is a large 27.96% decrease with the default interaction.vfp, but only 5.83% with Humus.

In the end, with my hardware setup, I have two viable choices with generally the same frame rates:
1) stay with the default and use 0xAF, thus perhaps seeing what Carmack intended for us to see in the visuals but lacking sweet, sweet AF
2) use the Humus tweaks and use forced 16xAF (or perhaps 4xAF or 8xAF for less of a frame rate decrease), thus gaining much improved but slightly modified graphics.
 
For what its worth, it does change the image, but it doesnt make doom3 look bad AT ALL. I havent even noticed, except the game is really, really fast now. Great hack, would use again, A+++
 
BakedGoods said:
Anyone have a mirror to this interview? Since Beyond3D is constantly down...?

Its up for me.. and has been when others couldnt access it the past few days.
 
Interesting.....still I wouldn't use the hack personally, it would sort of feel like I'm throwing alittle mud into Carmacks face (some one I have the most respect for) or his shoes. :)
 
I tried it gained about two frames then got an error message in multi about pak file missing so it wouldnt let me in the server...

boom off it comes..then I can game again..

sp is for noobs anyway...
 
fallguy said:
Its up for me.. and has been when others couldnt access it the past few days.
Maybe it's too much to ask but, could you save it on your computer and zip it up or something? I'd love to read it...!
 
Why doesn't someone just quote the whole interview right here when they are actually able to get on B3D?
 
It wasn't that big of a deal...no really new information...I read it earlier...he just basically said that it was an approximation and wasn't that far off...didn't give any indication of it being in a patch or whether or not he cared either way about...
 
Okay heres part 1
Interview with id Software's John Carmack on Doom3 said:
Probably the most eagerly-anticipated game for a number of years is upon us. Four years in development, Doom3 is the latest game by Mesquite-based id Software, a game that id says is the best they have ever done. While the reception to its gameplay is mixed (as is always the case for such a subjective topic of discussion), the majority is in agreement that it is the best looking game ever released on the PC platform.

This reporter, finally getting his hands on a copy of the game after a torturous wait, has been corresponding with id's Technical Director, John Carmack, the man responsible for the engine powering Doom3, on a variety of topics concerning the game. Deciding that the information generated from these correspondences could prove useful to the public, a request was made to turn these correspondences into an unofficial interview and John gave the go-ahead to this "interviewer" (although he voiced his concern to this interviewer that this "interview" may incite lots of other people to send him more emails!).

Some of the following information have been provided by this interviewer in Beyond3D's various forums, scattered as they may be due to the nature of Beyond3D's forums where there are individual forums for discussing technologies and games. The hope is this "interview" would be a single source of information that touches on a few matters raised by this interviewer to John. Let's not waste anymore time.


B3D: It appears that benchmarking demos (using the "timedemo" command) results in higher performance stats than actual gameplay. Can you explain to me why is this so, regarding the "timedemo" command? Is it because "timedemo" do no calculate AI and physics? What else? Also, if I run in a straight line in normal gameplay and have that entire run logged, total frames is higher than a recorded demo of that same run. Why is this?

JC: Timedemo doesn't do any game logic. Demos are always recorded at exactly 30Hz.

B3D: Okay, timedemo only tests graphics rendering and ignores AI and physics. Even with a high-end CPU system, I have found that timedemo is still very CPU-dependent. In demos with many monsters and/or large/complex monsters, I will have to assume this CPU-dependency in timedemos is a result of CPU skinning (since AI and physics are ignored in timedemo). Correct?

JC: CPU skinning, shadow generation, and tangent space reconstruction are the parts of Doom that take up significant time in timedemos, but there is a lot of driver overhead as well.

"r_skipRenderContext 1" will unbind the gl context, so all driver calls become null functions. You can have some timings activated, then enable this, then disable it so things draw again, and compare to see how much time is spent in the driver, assuming the scene is not hardware limited.

B3D: What's the situation with regards to depth bounds test implementation in the game? Doesn't appear to have any effect on a NV35 or NV40 using the cvar.

JC: Nvidia claims some improvement, but it might require unreleased drivers. It's not a big deal one way or another.
 
Heres part 2
Interview with id Software's John Carmack on Doom3 said:
B3D: There are several rendering paths. How do we get to set specific path to use?

JC: "r_renderer [ arb | nv10 | nv20 | r200 | arb2 ]"

A thread in our forums shows an ATI employee improving performance on ATI hardware by changing a Doom3 shader. There have been widespread discussions on this, not only in that particular Beyond3D thread but on other public forums as well. Please visit this forum post to understand the reasoning behind the following 2 questions. This interviewer pointed John Carmack to that particular forum thread, as did the individual which started the thread.

B3D: Now, without taking anything away from that guy for experimentations, something must be up because:

1) I can't believe you didn't think of this :) ; and
2) You couldn't do that because it (probably) affects some other stuff (specific lookup tables, for instance)

Any comments on what might be actually happening?

JC: The ARB2 path uses a lookup that exactly matches the bias / square calculations used by the NV10 / NV20 / R200 paths so the surfaces look the same in the different rendering modes.

B3D: Does that mean you're using different lookups for different materials? What exponent exactly are you trying to approximate?

JC: The specular function in Doom isn't a power function, it is a series of clamped biases and squares that looks something like a power function, which is all that could be done on earlier hardware without fragment programs. Because all the artwork and levels had been done with that particular function, we thought it best to mimic it exactly when we got fragment program capable hardware. If I had known how much longer Doom was going to take to ship from that time, I might have considered differently.


It should be noted that a power function is a strictly empirical approximation of a surface's specular response, so other specular approximations shouldn't be looked at as just approximating a power function. For instance, especially for broad highlights, it is nice to have a finite cutoff angle, rather than the power limit approach.

The lookup table is constant in Doom, so there isn't any real strong argument against replacing it with code. The lookup table was faster than doing the exact sequence of math ops that the table encodes, but I can certainly believe that a single power function is faster than the table lookup.

We'd like to thank John for taking the time to entertain this interviewer's frequent emails to him. We'd also like to add that id's Marty Stratton has informed us that they're working on the Linux client and it will be made available as soon as possible. If you'd like to comment on this interview, please do so here.
 
Thanks a ton CrimandEvil!

To bad I have absolutely no idea what Carmack just said :S hehe
 
theelviscerator said:
basically, its a perfectly fine way of doing it, just different..

That pretty much sums it up. The key thing to remember here, is that it only helps your framerate IF you force 16x (or any control panel) aniso. It won't help you at all if you're already running in low,medium, or barely high (application 8xaf) because you don't have the latest greatest card.

The whole point is that you knock performance down a huge chunk by forcing on AF from CP, and this hack increases that already knocked down peformance somewhat, but obviously not up to the point you were at before you enabled 16x aniso.

Therefore, the final word is, if you have a badass ATI card (read x800pro, x800 xt pe, maybe 9800xt) and can already run the game at high quality with some headroom, then you'd be better off with the hack if you want to enable 16x aniso for textures that look a little nicer. Hack = less perf drop from high-quality (8x af) to forced on 16x af. Perf drop is still there mind you, just lessened in severity. The hack just softens the blow, it is NOT going to produce performance out of nowhere, as some people seem to think. Hope that clears up the issues.
 
Back
Top