PDA

View Full Version : Doom 3 "High" requires 256mb card or better?


Seoulstriker
07-27-04, 09:34 AM
Name: Robert A. Duffy
Email:
Description: Programmer
Project:
-------------------------------------------------------------------------------
July.26.2004
------------

I've seen quite a few posts in the forums about "Ultra" quality and why we don't set this by default out of the box. I thought I would clarify a few of the reasons and also take the time to mention some of the hardware and software we found incredibly useful during the development of DOOM 3.

To put things in perspective, most production levels in DOOM 3 contain more media assets than all of Quake 3: Arena. When we started working on the memory foot print, our goal was a 256MB system. In most cases loading up an area of the game on a 256MB system works fine, the problems arise when you start to transition from one area to the next ( successive map loads ). Memory fragmentation starts to really work against us and it ultimately made it just not feasible for a reasonable play experience to support 256MB.

Two basic options make up the quality levels, sound diversity and image fidelity.

Sound diversity is effectively how many sounds we support per sound shader for a given "sound". There may be for instance, 7 different "bullet striking the wall" sounds for a given bullet. In low quality, we only use one sound for this vs randomly choosing between one of the seven available. When we started on memory optimization, most levels used between 80 and 100 megabytes of sound data. We made the choice to move to .OGG for quite a few sounds which effectively removed the problem for us.

Image fidelity is dependent on what quality level we load the textures at.

In Ultra quality, we load each texture; diffuse, specular, normal map at full resolution with no compression. In a typical DOOM 3 level, this can hover around a whopping 500MB of texture data. This will run on current hardware but obviously we cannot fit 500MB of texture data onto a 256MB card and the amount of texture data referenced in a give scene per frame ( 60 times a second ) can easily be 50MB+. This can cause some choppiness as a lot of memory bandwidth is being consumed. It does however look fantastic :-) and it is certainly playable on high end systems but due to the hitching that can occur we chose to require a 512MB Video card before setting this automatically.

High quality uses compression ( DXT1,3,5 ) for specular and diffuse and no compression for normal maps. This looks very very close to Ultra quality but the compression does cause some loss. This is the quality that for instance the PC Gamer review was played in.

Medium quality uses compression for specular, diffuse, and normal maps. This still looks really really good but compressing the normal maps can produce a few artifacts especially on hard angled or round edges. This level gets us comfortably onto 128MB video cards.

Low quality does everything medium quality does but it also downsizes textures over 512x512 and we downsize specular maps to 64x64 in this mode as well. This fits us onto a 64MB video card.

One thing of note on the normal map compression is that generally speaking if you DXT a normal map you get really crappy results. NVIDIA hardware supports palettized compression which yields good compression and normal maps retain hard and round edges really well. Unfortunately this compression does a poor job in other cases and you end up getting splotchy areas. ATI does not support the palettized compression so we needed a better solution. ATI had done some research on various methods of normal map compression and we ended swapping the red and alpha ( which is zero in the case of a normal map ) channels. This effectively allows the compression to do a much better job and is just one extra instruction in the fragment program to move the alpha channel into the red channel. The bottom line on what happens on each card is as follows.

All modern NVIDIA and all ATI hardware use the compressed normal maps in Medium and Low qualities with the swizzled components.
NV10/20 hardware ( GF4MX and GF3 ) uses palettized normal maps in Medium and Low qualities.

Another question I have had multiple emails about, yes the game is capped at 60fps for normal game play. For render demos, like what was used for the HARD OCP stuff, we run those at full tilt which is why you will see > 60fps.


For the curious, here is a list of software/hardware we found useful during the development of DOOM 3.

Incredibuild by Xoreax.
Visual Assist by Whole Tomato Software
Alienbrain by Avid ( formerly NXN )
Visual Studio by Microsoft

DOOM 3 was developed mostly on Dell and/or Alienware computers. Falcon also sent us a kick ass system that has been Tim's primary play system through most of the project.

The art team used a wide variety of tools ( they probably use other stuff too but this is what comes to mind )

Maya
Lightwave
ZBrush
3D Max
Photoshop

We saw a few bumps in the road during the project, we had a multiple ( simultaneous ) drive failure in our primary development server which effectively trashed the raid system and was not recoverable. This resulted in building a two IDE drive raid system on a Saturday morning so the team could keep working. So all of DOOM 3 development was housed in an old dev system with a $79 RAID card driving two 100GB drives for about a week. The end result of this was we went ahead and built two identical RAID 1/0 systems ( about a half a terabyte each ). This has been the configuration for the last 18 months or so.

We made the move to Alienbrain about two thirds into the project. It was a big change for everyone as no one but the programmers were used to having to "check something out" to work on it. Overall this was a big win for the project as it centralized everything into one application from an asset/code standpoint. Alienbrain like any major software system has a few gotchas but has performed very well and sustained our RAID running entirely out of drive space multiple times.


I hope everyone enjoys the game.


So my 5900 128 can't run at high? :(

Well, hopefully medium looks decent. I was probably going to run it at medium anyways to get that 50FPS. :)

GamerGuyX
07-27-04, 09:37 AM
Where have you been? People have been talking about this for awhile.

Phoking
07-27-04, 11:41 AM
Where have you been? People have been talking about this for awhile.

well that .plan update just came out yesterday :rolleyes:

GamerGuyX
07-27-04, 11:51 AM
well that .plan update just came out yesterday :rolleyes:

True. But people have been speculating about this forever. It just seems like old news to me. :type:

jAkUp
07-27-04, 11:53 AM
So does that mean Ultra quality will be playable on my system? Just slowish at some parts?

Zeno
07-27-04, 12:10 PM
So does that mean Ultra quality will be playable on my system? Just slowish at some parts?

As long as there's a way to override their detected quality mode, it should work. It is possible to upload more textures to OpenGL than there is texture memory on the graphics card. However, whenever you look at something that has a texture applied to it that is not on the card at the time, the frame rate will take a nose dive for a second until that texture is swapped onto the card.

Forcing the GPU go to main memory for a texture gives similar results as having your CPU go to the hard drive for data (virtual memory paging).

DarthBinky
07-27-04, 12:49 PM
How does nVidia's SLI config work into all of this? If the Ultra High Quality needs a 512 MB card for the sake of "perfect" smoothness, would two 256 MB cards in SLI be able to handle it? Just curious (not that I'd be able to afford such a setup when they're available).

Zeno
07-27-04, 12:53 PM
How does nVidia's SLI config work into all of this? If the Ultra High Quality needs a 512 MB card for the sake of "perfect" smoothness, would two 256 MB cards in SLI be able to handle it? Just curious (not that I'd be able to afford such a setup when they're available).

No, it wouldn't help. SLI has to duplicate the data on each card, then each card renders 1/2 the pixels. SLI only helps with fill rate and maybe AA performance. Not with vertex throughput or memory.

DaveW
07-27-04, 05:24 PM
Atleast you don't have a (64 meg) Xbox.

MUYA
07-27-04, 08:00 PM
How does nVidia's SLI config work into all of this? If the Ultra High Quality needs a 512 MB card for the sake of "perfect" smoothness, would two 256 MB cards in SLI be able to handle it? Just curious (not that I'd be able to afford such a setup when they're available).

With NV's SLI, even though u will have two cards with 256MB memory on board for a total for 512MB, the setup will still limited a usable 256 MB of memory. The two card's on board memory mirror each other in what they store in texture data etc or something that each card needs to render that scene. Makes sense, as both cards will work some part of the scene, therefore both cards need the same data. U should read up some of the SLI previews to get more info.

gorebrush
07-28-04, 04:20 AM
I've not read much about this new SLI from nvidia, but i'm willing to guess that it'll be very very similar to the SLI that was implemented on Voodoo2 cards some years ago. I remember SLI, I used to have 2 x Creative 12Mb Voodoo2 cards, and remembering being able to play Unreal flawlessly at 1024x768 on a P2-266@400. Man those were good days :D

MUYA
07-28-04, 04:47 AM
In fact NV's SLI is different from Voodoo's Scan line Interleaving. NV's SLi is scalable something something. What that means means nV uses propriety method in their drivers to dynamically balance out a load in term of percentage to the 2 GPUs depending on the complexitity of the scene ie bottom 40% of the scene to one GPU and top 60% to the other GPU etc etc.

gorebrush
07-28-04, 05:45 AM
scalable...

so if I had 3 cards....

or 4....

majortom
07-28-04, 08:10 AM
i think this is great. i love the fact that we've gone back to the days where a game can bring even the best system down to its knees. it gives everyone a reason to look forward to the newest graphics card or mobo or etc just to be able to play that game with just a bit higher setting. dont you guys remember being ecstatic playing quake or half life at 800x600 at 60fps? (maybe it was just me. well, it was a big deal for me ...shutup! my comp sucked!). now everyone's bitching about how they can play far cry at ONLY 200 fps with 4aax8af at 16x12 with all bells and whistles on or some crap like that. this game will humble you!

ReDxKiNG
07-29-04, 12:11 AM
"We did not test the 9700, but we did test 9500, 9600 and 9800 so I know where your card is going to land."

"Your best playable settings are likely going to be Medium Quality at 800x600 with all advanced options turned on. These settings would be VERY SMOOTH in terms of framerate. In fact, it is going to be downright fast. Just use the “com_showfps 1” command at the DOOM 3 console to bring up your framerate counter to watch it. "

"I would expect that with the 9700 you have a very good chance at playing DOOM 3 at High Quality 1024x768 and still having solid performance with all the eye candy turned on. I don’t know how important high frame rate is to you, but I am going to guess this is where you will be most comfortable playing. "

"We found that extra memory (above 512MB) on the motherboard did allow for some smoother transitions where textures need to be loaded. You could even turn on Ultra quality to give it a look buy I think the system hitching from loads would be unbearable in the game. "

"That said, DOOM 3 is VERY forgiving in terms of resolution. 640 looks like 1024 and 1024 looks like 1600 in terms of what we are used to in 3D gaming, or at least that is what I felt. Also, we found that most of the time, forgoing AA would allow us to keep a level of resolution above what we would get with AA turned on. So we opted for higher resolution without AA in almost all of our tests besides the very high-end systems. "

"I hope that helps you out Dig. Let me know if we got close to being right. The cookies rock, thanks again. "

"EDIT: Let me add that moving to High Quality Textures turns on 8XAF as well. So that may be a bit more than the 9700 can bear. A 9800Pro did High Quality at 1024x768 with no problems on a 3200+. 9500Pro did 800x600 at Medium. So you will be in the middle somewhere."

Thats from http://www.beyond3d.com/forum/viewtopic.php?t=14359&postdays=0&postorder=asc&start=80&sid=717bbdf4cfe3949f979dc8c5f3e40fff

This is good news for me as im on a 9700pro(overclocked to 9800pro speeds) and its good news for others on 9700pros worried that their cards wont cut it :fanboy: and yes im from Rage3d :)

Intel17
07-29-04, 07:18 PM
Better looking than FarCry, and far more scalable :)


Good job id!

Knell2
07-29-04, 07:29 PM
I sense a low-K NV40 with 512 MB and higher core/ram clock speeds coming!!!!

Seoulstriker
07-29-04, 07:34 PM
Sweet. Apparently Doom 3 can do High quality without 256mb of onboard memory! :nanahump:

(check hard|on)

Riptide
07-29-04, 08:00 PM
I sense a low-K NV40 with 512 MB and higher core/ram clock speeds coming!!!!
When? Next summer maybe? :p

They kinda need to make the current one available before bothering with a refresh. ;)