Archived

This topic is now archived and is closed to further replies.

DOOM III

This topic is 5516 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello , this post is about doom3 engine . It is meant to be a serious post , so we can keep track of what the latest technology used by id is . Please , share your knowledge and talk about the Doom3 engine . Anything,from rendering to physics ... Waiting for some serious posts

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
You could download the leaked e3 alpha and play around with the settings yourself. For example, you can have it render the stencil shadow volumes as wireframe triangles, etc.

Very educational! (In the words of Golden Boy)

Share this post


Link to post
Share on other sites
Anyone know how the demo got leaked? It''s not like the id team is really big so it would be quite obvious. My best bet is that Carmack leaked it himself in order to create more hype about the game and let people have a taste of what''s to come Would be quite smart, really.

Anyway as far as the technology goes, I have been working on a similar type of engine. The things you''re gonna get (which you will have heard 1000 times by now) is per-pixel lighting with specular highlights (please note that per pixel lighting and dot3 bump mapping are one and the same) and stencil shadows. I haven''t really played the demo but I assume they are using detail maps and environment maps too.

A word of warning: My friend was playing the demo with his GeForce 4, and at times he would get rather low frame rates. I''m suprised that it''s supposed to run on any geForce card. Mind you, you can turn off a lot of the graphics features in the game to improve performance.

Share this post


Link to post
Share on other sites
Poya, the demo had been sent to several hardware manufacturers (Nvidia, ATI at least) and judging from Carmack's comment on Slashdot, it leaked from there, but it's not known (to public) from which company. Word on street says it was ATI, but I wouldn't take it as the truth .

They don't use detail maps but they do have gloss maps (in addition to bump maps and stencil shadows, of course)

Btw.. Isn't bump-mapping really "per-texel-lighting" instead of "per-pixel-lighting"? After all, the lighting model isn't any more accurate than the bump texture.

cin >> Boost >> GOTW tips >> GOTW articles >> CUJ expert columns >> FAQ lite;

[edited by - Hanz on November 6, 2002 6:25:43 AM]

Share this post


Link to post
Share on other sites
I bet it was nVidia...but let''s not start a flamewar.

I wanna know how many polys that engine can push!

Was it written in C or C++? I can''t remember which they said...C for the engine and C++ for the game?

I don''t think DOOM3 will sell all that well, too high SysReq.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by SuperRoy
I wanna know how many polys that engine can push!
Isn''t that totally irrelevan information? If it pushed 20 M flat-shaded polygons per second, it''d look like crap. But now it pushes much less polygons but they all have bumpmaps, gloss maps, and there''s the stencil shadowing going on. It''s the quality instead of quantity of the polygons that makes new games look sweet.
quote:
Was it written in C or C++? I can''t remember which they said...C for the engine and C++ for the game?
Some parts of the renderer were still C I think, but the new stuff (game logic, physics, AI etc) should be C++.
quote:
I don''t think DOOM3 will sell all that well, too high SysReq.
That''s not true. The leaked one runs almost adequately (10-15 FPS) even on a Geforce 256 DDR. It should run perfectly fine on GF3 and better, and the release is likely around June next year so most gamers will have cards like that or even better. And they''re still optimizing it.. I''m telling you, the game is a must buy. The athmosphere is just incredible.

Share this post


Link to post
Share on other sites
What''s a gloss map?

DEFINITION #1:

A map which is used to *modulate* the application of an environment map.

With just environment map, the surface its applied to is either super shiny like a mirror or totally dull. A gloss map allows you to control how much of the environment gets applied *per pixel*. So for example your character could have 0% shiny skin, 90% shiny eyeballs, 10% shiny gun etc.

[RESULT = BASEMAP + (ENVMAP*GLOSSMAP)]


DEFINITION #2 (A totally different technique sometimes also referred to as glossmapping):

An environment map which contains the specular contribution of the environment. I''d personally call this "Specular mapping"


[Some people also mistakenly call environment mapping itself "gloss mapping"]

--
Simon O''Connor
Creative Asylum Ltd
www.creative-asylum.com

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by SuperRoy
I bet it was nVidia...but let''s not start a flamewar.

I wanna know how many polys that engine can push!

Was it written in C or C++? I can''t remember which they said...C for the engine and C++ for the game?

I don''t think DOOM3 will sell all that well, too high SysReq.


Well remember this is an EARLY alpha release ( think E3 from what I heard) so it has to go through lots of optimization still. Also as someone mentioned that I think this is a good thing it was leaked. People get a taste of what is to come and say "Man I need to upgrade my system so I can play DOOM III". Guess what now the hardware vendors are smiling cause they are going to get lots of money from people who want to get a good frame rate on there system.

Share this post


Link to post
Share on other sites
quote:
Original post by davepermen
it was not ati.

Xian thinks otherwise:
quote:
Xian says
ATI leaked it
John sent them a flame mail yesterday basically saying "This has hurt our relationship"
yeah, well, ATI has clearly violated our NDA
ATI is on our shitlist right now
We know ATI leaked it. We watermark all releases

Share this post


Link to post
Share on other sites
Hanz you are right: the lighting equation, I believe, is actually done per pixel (that''s what the pixel shader does), but the effective result is only as good as the resolution of the normal map you are using, ie it is really "per-texel" lighting. Still looks damn good though, if you do all your cube-map normalizations and use high-res textures/normal maps.

As far as the gloss map thing goes, I use it to mask my specular highlights. Say I have a texture of a birck wall with sections of metal in it. In the gloss map (which is just the alpha channel of the texture) I have black for all the areas of brick, and white where there is metal. When the lighting is done, the specular is masked out for the brick parts and only the metal parts get shinny. Looks quite cool actually. As S1CA said, I can also see how it can be used for giving a similar effect to environment maps. As far as I understand the environment map is a texture which contains the surrounding environment. You render it (with correct transformations) over polygons (say water or really reflective metal) to have them reflect the surrounding environment. With the gloss map you can make it so that only parts of an object reflect the environment, or have different "shades" of reflectiveness.

The thing I''m really interested in is how Carmack has set up his shaders and passes for a "full" per-pixel light. This is how I do it:

-One pass for the whole scene, rendering with only ambient and emissive lighting

then for each light:
-Render the stencil shadows for that light into stencil buffer

-One pass for distance attenuation (for point lights)

-One pass for diffuse lighting (or diffuse bump mapping, whichever you like to call it)

-One pass for specular lighting.

Note that for the three above lightings, I only renderer the polygons which are effected by that particular light. Still, that''s a lot of passes. The thing that annoys me the most is that I was excatly one instruction short in the pixel shader, of combining the diffuse and specular passes. And for some reason that one extra pass really effects performance. There is really so much you can do with 8 instructions int pixel shader 1.1

At the moment (Haven''t really optimised much, and the stencil shadows aren''t fully functional) having more than 2 per-pixel lights in a small area gives bad frame rates

Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster
If it pushed 20 M flat-shaded polygons per second, it''d look like crap.


Actually, the reason textures were used in the first place were to emulate higher polygon counts. Once you reach a high enough polygon count that there is about 1 poly drawn per pixel, textures and bump maps do not matter.

Of course the catch is that we run games now at such a high-res that the polygon count would have to be pretty high. Maybe if everyone would just be happy at 320x200 again, we can forget about all those pesky textures.

Share this post


Link to post
Share on other sites
Taulin, in theory maybe. But then you''d have to come up with some wacko anti-alias system because there''d usually be hundreds or thousands of polygons occupying one screen pixel (as soon as things go a little farther away or are in steeper angle). Then you''d get tremondous pixel-popping artifacts if you didn''t have 64x64 FSAA at least. With textures, one can just use mipmaps and anisotropic filtering and be done with it .

Share this post


Link to post
Share on other sites
Why do they have that high system requirements? Why don´t id let the player choose how he/she want´s to have the graphics?

____________________________________________________________
Nothing dosen´t exist. Does it?

Share this post


Link to post
Share on other sites
I believe that one of the tricks they use to speed things up (don''t know the name) is something like this:

They turn off all fancy pixel effects and drawing to the screen and start rendering just plain triangles, with the depth buffer active. Once this pass has happened, they have a perfect depth buffer.

The real pass just does depth buffer checks and thus any overdraw is eliminated because it is already a ''perfect'' depth buffer.

The reason that this is actually an optimisation is because of the amount of stuff which goes on on a per-pixel level. Unless you are doing intensive stuff per-pixel then this will just slow you down.

Of course, this is all from memory from a message board posting somewhere else, so the actualy correctness of it may be lacking. It is still an interesting idea though.

Trying is the first step towards failure.

Share this post


Link to post
Share on other sites
ragonastick you are absolutely right. Here is what happens:

In order to get the stencil shadows working, you need to have all the depth information, already in the depth buffer. So basically you first HAVE TO draw the entire scene, but only with ambient lighting (ie no per-pixel effects).

As you said you can take this to your advantage later. Because the depth information is already there, you first turn off writing to depth buffer (don''t need it anymore). You also set the depth test to EQUAL, which means all the per-pixel effect are done only for the visible pixels. This is quite clever, and as I mentioned "free" because you had to fill the depth buffer for stencil shadows anyway.

It is also the reason (I belive) why games like DOOM III will be much more dependent on fill-rate of the video card than on the number of polygons it can push per second. Switching from say 640x480 to 800x600 will probably give you more of a performance hit, than increasing the geometry detail from low to max.

Then again maybe not. I should really try the leaked demo, but I want to wait for the full thing

Share this post


Link to post
Share on other sites
Now i noticed a few people saying that Doom III wont sell because of its high specs. Think ahead, by the time it is released im sure that GF4's and Radeon's are relatively cheap, along with P4's and Athlon XP's. Also, there will be new technology out there that will make their performance double say a radeons FPS.

So think.

Ol'-School all da way

[edited by - AntilogicHyper on November 9, 2002 10:29:34 PM]

Share this post


Link to post
Share on other sites
id has changed tactic over end-user hardware specifications , but i don''t think there''ll be a big problem . Since most games under developement need significantly faster hardware than the existing one .

Share this post


Link to post
Share on other sites
This is kind of off-topic, but didn''t he say that doom III would be on Xbox? now it can run >40 fps for 800x600 with xbox hardware, I''d think it''d run much better on most of our machines.

I remember downloading one of his speech in which he talked about wanting to put more passes rather than push up the polygon numbers. interesting stuffs. If anyone wants that MP3 I can probably put it online.

Share this post


Link to post
Share on other sites