Cuh Cuh Cuh Carmack!

Does anyone else find it weird that Doom3 is going to have like 8 different rendering paths? The different paths are one of the main topics in John Carmack's most recent .plan update. One of the other main topics is a comparison between the current top cards from ATI and NVidia (for reference, when he says NV30 think "GeForce FX", and think of R300 as "Radeon 9700"). As usual, his comments are highly technical and concise. Here is one comment that might be interesting to people waiting for the game release:

There are some more things I am playing around with, that will probably remainin the engine as novelties, but not supported features

To me, this looks like the engine must be getting close to finalized, but I might be reading too much into it.

Share this post


Link to post

I read this earlier. Wile I'm not the most technically inclined person it sounded impressive. I hope your assumption about 'near finished' is correct Mewse.

...oh.. I'm fucking Drunk.

Share this post


Link to post

Maybe you could explain what is meant by "rendering paths" and the significance of there being 8 of them.

Share this post


Link to post

I thought the engine has been more or less done for a while now.

Share this post


Link to post

Interesting read. It looks like to me that the different rendering paths relate to how much detail is rendered in-game. The thing that struck me is the move toward floating point math in the graphic operations.

FP operations are extremely CPU intensive (requiring several passes to handle the computation) and I am curious if the card does the math using a coprocessor or if the operations are dumped to the CPU (which will be dumped to the on-board coprocessor, if available) and then passed back to the card.

If the CPU is doing the lifting, you will probably need to have more than just a consumer computer (which usually doesn't have much in the way of a math coprocessor), a fairly high clock-rate and fast bus.

If the card is doing the lifting, then these cards a going to be pricey (at first) and I wouldn't be surprised if there are issues with heat and system compatability. In the .plan John mentioned issues with drivers and I bet this will be a big hurdle to get over.

No matter which way you slice it, you are going to have to have a high-end system to run the game. Before you know it, you'll need a Thinking Machine and your own power plant to play these new generation of games.

Share this post


Link to post

The cards do most of the gruntwork, or at least I would hope they do, as they are nearly cpus in their own right. Pricy, yes. The 9700 is around $400, and the FX I'm sure will be around that range as well, possibly higher.

Share this post


Link to post

the floating-point framebuffer he mentions near the end of this update is one of his tinkerings that will almost certainly not make it into doom3, that is unless it turns out to be an even better idea than he thought, but that's doubtful.

the reason a floating-point framebuffer would be important is that a floating pointer number has a data component, and an exponent component. that means that what looks like black on the screen might actually be 3.241e-25, which could be a very, very dark red that would show up in gamma correction.

the point is that floating point numbers don't lose their precision as their exponent goes from tiny to humongous. using this in the framebuffer would allow a lot more data to be preserved during rendering, but yes it would be a beast. that's why carmack is only experimenting with it.

Share this post


Link to post
Ultraviolet said:

Maybe you could explain what is meant by "rendering paths" and the significance of there being 8 of them.


Carmack mentioned 6 different rendering paths in this update:

ARB (minimum extensions, no
specular highlights, no vertex programs)

ARB2 (floating point fragment shaders,
minor quality improvements, always single pass)

R200 (full featured, almost always
single pass interaction rendering)

NV10 (full featured, five
rendering passes, no vertex programs)

NV20 (full featured, two or three
rendering passes)

NV30 (full featured, single pass)

Now, ARB stands for Architecture Review Board, the standards body which decides the features to be added to OpenGL. Presumable the ARB path is the most basic, as Carmack's comment is that it uses "minimal extensions" and it is missing specular highlights and vertex programs. This path will be used on 3D cards that do not implement all of ARB2.

The ARB2 rendering path uses OpenGL functions which have just been deemed new standards by the ARB, and this path is probably the best because it does not use any vendor-specific GL extensions. However, it is going to take a while for all the other graphics cards makers to implement the new ARB standards in their GL drivers.

The R200 rendering path is the only ATI-specific rendering path mentioned. The R200 is the Radeon 8500.

The other three paths are NVidia-specific, they are there to get the best possible performance from NVidia cards. I think NV10 is GeForce 1 and 2, NV20 is the GeForce 3, and NV30 is the new GeForce FX.

What is the significance of all these rendering paths? They are an attempt to make sure that Doom3 runs quickly on all of the popular cards available today.

I find it weird that Carmack has had to code in all of these different methods of rendering because it smells like hardcoding. Then again, the things being done in Doom3 are so cutting-edge that it makes sense Carmack has to wrestle with the features missing on somewhat older cards.

3 years after it's release, I'd bet ARB2 is going to be the only rendering path used in Doom3 on modern cards of the time.

Share this post


Link to post
sponge said:

I thought the engine has been more or less done for a while now.


No, it's apparently been "feature complete" for awhile now. I guess they're in full optimization mode now...

Share this post


Link to post
mewse said:

the floating-point framebuffer he mentions near the end of this update is one of his tinkerings that will almost certainly not make it into doom3, that is unless it turns out to be an even better idea than he thought, but that's doubtful.


Yes, I have to agree. Unless you work for Pixar, this is probably not an option. I bet Doom4 has it though. :)

Share this post


Link to post
Wildman said:

Yes, I have to agree. Unless you work for Pixar, this is probably not an option. I bet Doom4 has it though. :)


heh.. new rendering path: 400 processor linux cluster

Share this post


Link to post

I'd upgrade my computer if it really was worth it. That and if I had money.

Share this post


Link to post
Disorder said:

You too huh?



Why is it when everyone is inebriated, they come to the forums? Not that I haven't done it...

Share this post


Link to post
Vulg@r said:

Why is it when everyone is inebriated, they come to the forums? Not that I haven't done it...

Cuz its fun. :P

"Ahm not as think as you drunk i am."

No, I'm not drunk. Yet. Wait for sunday. :P

Share this post


Link to post
mewse said:

3 years after it's release, I'd bet ARB2 is going to be the only rendering path used in Doom3 on modern cards of the time.

I'm not an expert on 3D hardware, but isn't it likely that the future cards NVidia releases after the GeForce FX share all of the features from the GeForce FX? In that case, those hypermodern cards would still run the NV30 rendering mode of Doom III.

Share this post


Link to post
Arno said:

I'm not an expert on 3D hardware, but isn't it likely that the future cards NVidia releases after the GeForce FX share all of the features from the GeForce FX? In that case, those hypermodern cards would still run the NV30 rendering mode of Doom III.


True.. I kinda meant that the ARB2 rendering path will be the standard path for card makers other than ATI and NVidia to support in the future, since the path does not have any vendor-specific extensions.

Like how you can run GLQuake on practically any card with basic 3D support nowadays, when Doom3 is really old and you're running it on a super-low-end card (which kinda excludes the powerhouses), it will probably use the ARB2 path.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now