View Single Post
Old 07-27-2004, 05:56 AM   #47 (permalink)
bltzkriegmcanon
Holy Knight of The Alliance
 
Location: Stormwind, The Eastern Kingdoms, Azeroth
Okay, so I may have been wrong about what it's gonna take to run Doom3 at it's highest mode. From no source closer than the mouth of id itself, Robert Duffy, one of the programmers at id, from his .plan file:
Quote:
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.
For those who want it, a link
__________________
What do you say to one last showdown?
- Ocelot, Metal Gear Solid 3

The password is "Who are the Patriots?" and "La-Li-Lu-Le-Lo." "La-Li-Lu-Le-Lo." Gotcha.
- The Colonel and Snake, Metal Gear Solid 3
bltzkriegmcanon is offline  
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360