Doom 3 Tweak Guide



Graphics Settings

r_renderer”x”. x specifies the rendering path to be used. Doom 3 features several hardware specific rendering paths, although it initially will detect the most appropriate path to use in the game. As such you shouldn’t need to alter this setting. For informational purposes though I’ll include them anyway – arb, arb2, nv10 (GeForce), nv20 (GeForce 3) and r200 (Radeon 8500). There is also an additional best option which indicates that the game detected and set the best rendering path to use.

r_brightness “x”. x sets the brightness level in the game. By default this value is set to 1 and using a higher value (Up to 2.0 using the Menu) will improve the brightness level, though set too high and the colours may start appearing washed out. Setting this to lower values (Down to 0.5 using the Menu) can conversely lose detail in the image as you may not be able to see it.

r_gamma “x”. x specifies the RGB colour intensity level to be used during the game. By default this is also set to 1. As with r_brightness the same rules apply, too high a value will wash out the image and too low will make it too murky, 0.52.0 is also a good guideline here.

r_lightScale “x”. x sets the intensity factor for light sources in Doom 3. This provides an interesting way to enhance/improve lighting conditions in Doom 3. The images beneath illustrate the effect this can have with varying values.


r_lightScale “1”

r_lightScale “2”

r_lightScale “3”

r_lightScale “4”

r_lightScale “5”


As you can see, this provides a useful way of improving brightness in the game. Although, as you can see, it can also easily darken the image too much, or wash out the image on the other hand. This defaults to 2. This doesn’t adversely (or beneficially) affect frame rate so adjust the scale as you see fit.

r_displayRefresh “x”. x determines the monitor refresh rate be used in Doom 3. Unlike previous id Software engines, Doom 3 has a limited frame rate of 60, so setting x to beyond 60 will does not mean you can achieve higher frame rates. It can however reduce eyestrain, so I would still recommend setting x here to whatever the maximum refresh rate your monitor is capable of at the resolution you intend to use. For most users maximum would be defined as 85100 so as not to unnecessarily strain your monitor.

r_swapInterval “x”. x sets the EXT_swap_control mode, essentially V-sync. V-sync limits the highest possible frame rate to your Monitors refresh rate at any resolution (Doom 3 by default also has it’s frame rate capped to 60, as covered earlier). Setting x to 1 will enable V-sync and provides best image quality (As there should be no visible tearing associated with it being disabled) and no controller lag should occur either, though the maximum frame rate will be limited as described earlier. 0 will disable V-sync in, which can perceivably improve performance (Frames are rendered as fast as they can be regardless of refresh rate), although you may experience image tearing and/or input device/controller lag as a result. If your Graphics card allows you to control Triple Buffering then enable it if you choose to enable V-sync and disable it if V-Sync is disabled for best performance.

r_aspectRatio “x”. x specifies the aspect ratio that Doom 3 is displayed at. 0 indicates a 4:3 display, 1 a 16:9 display and 3 a 16:10 display. The majority of users out there will be using a standard 4:3 display so you won’t need to change this unless you have a widescreen display.

r_finish “x”. Setting x to 1 forces the use of the glFinish function. You shouldn’t require this so set it to 0 instead for optimal performance.

r_mode “x”. x specifies the resolution to be used in Doom 3. Options available being as follows:





Use Custom resolution




















Should you go with a custom resolution (-1) then you set that custom resolution with the 2 variables -  r_customHeight “x” and r_customWidth “x”.

r_useIndexBuffers “x”. Setting x to 1 enables the use of the ARB_vertex_buffer_object OpenGL extension for storing index data in Video memory. This can provide improved performance with supported Graphics cards and I’d recommend setting this to 1 to see if this is the case. Though set this to 0 should your Graphics card have a low amount of Video memory, or if you see no increase or decrease in frame rate.

r_useVertexBuffers “x”. Setting x to 1 enables the use of the ARB_vertex_buffer_object OpenGL extension for storing vertex data in Video memory. This can provide improved performance with supported Graphics cards and I’d recommend setting this to 1 unless you have a low end Graphics card (Which more than likely will also have a low amount of video memory and would be better used for storing textures instead), in which case change it to 0 or if experience problems after enabling it.

r_vertexBufferMegs “x”. x specifies the amount, in MBs, of video memory allocated to ARB_vertex_buffer_object, by default, 32MB. If you set both of the previous options to 0 you can ignore this option. You should leave this alone if you have a Graphics card with less than 128MB video memory, although if you have 256MB video memory then you might want to consider raising this up to a dozen or so MBs (48) for improved performance.

r_shadows “x”. 1 of Doom 3’s most notable features is the extensive use of stencil shadow volumes. Setting x to 0 disables the real-time casting of dynamic stencil shadow volumes, which does detract from the game immersion although can improve performance rather nicely on many Graphics cards. Setting this to 1 enables their use, which enhances game immersion. The following images illustrate shadows in the game.


r_shadows “0”

r_shadows “1”

As you can see, the use of shadows adds some extra depth to models in the game (Particular when the light source changes/moves) and unless you’re running on a very slow system I’d recommend setting this to 1 to enjoy the game as it was meant to be.

r_useShadowCulling “x”. Setting x to 1 enables culling of shadows from partially hidden light sources, which provides improved frame rate. Setting this to 0 might provide technically more accurate shadowing although unless you have a very fast system there’s no real reason to do so.

r_useShadowProjectedCull “x”. Setting x to 1 enables the discarding of triangles in shadow, which provides improved performance as the stencil shadows are black (and thus won’t be seen anyway). Setting x to 0 disables this and isn’t recommended.

r_useDepthBoundsTest “x”. If your Graphics card supports NVIDIA’s UltraShadow II, setting x to 1 will enable support for depth bounds testing which will provide optimal performance. If your Graphics card doesn’t support this feature then set x to 0. NVIDIA claims some improvement, but it might require unreleased drivers. It's not a big deal one way or another as John Carmack said.

r_useTurboShadow “x”. Setting x to 1 enables the use of infinite projection with W technique for dynamic shadows, which provides optimal performance. Should you encounter problems with shadows try setting this to 0 instead.

r_useOptimizedShadows “x”. Setting x to 1 enables the use of dmap generated static shadow volumes for improved performance. You shouldn’t need (Or want) to set this to 0.

r_useTwoSidedStencil “x”. Setting x to 1 enables the use of the EXT_stencil_two_side OpenGL extension for providing 2-sided stencil testing. This can improve the performance of rendering stencil shadow volumes (Lowering the number of passes needed for updates). Set this to 0 if your Graphics card doesn’t support this feature.

r_useShadowVertexProgram “x”. Setting x to 1 enables the use of vertex hardware on the Graphics card to perform shadow projection. This will provide optimal performance as the work need not be done by the CPU. Setting this to 0 will be necessary for Graphics card lacking Vertex hardware, although this will only effect performance, there should be no image differences.

r_skipInteractions “x”. Setting x to 1 bypasses rendering light interacting with surfaces. This essentially makes the game s nice shade of black. The following images illustrate this in the game.


r_skipInteractions “0”

r_skipInteractions “1”


Just when you thought Doom 3 couldn’t get any darker… There’s no real reason to do this as the game will be unplayable. Leave this set to 0 at all times.

r_useStateCaching “x”. Setting x to 1 avoids redundant state changes in OpenGL calls. This is recommended for best performance. 0 disables this and isn’t recommended (nor necessary).


Go to next page !

Get weekly updates on new
articles, news and contests
in your mail!