Connection, Framerate and Visual Tweaks
Doom 3 and Resurrection of Evil
Framerate and Visual Tweaks



We have compiled a variety of settings so you can obtain the best compromise between FPS and visual quality for your system. In order to use the tweaks you must add them to a text file called autoexec.cfg in your Doom3 'base' directory or test them at the console. See the FAQ How do I access the console? for details on how to enable the console. Make sure that you have setup your graphic card's driver options to give best performance before using these tweaks, see the Display and OpenGL Drivers section for more information.



The Magic Number - 60 FPS
Unlike previous games from id software in multiplayer you only need to achieve a steady frame rate of 60 FPS. Anything higher is simply ignored by Doom3's world update and player movement code. This will help even the playing field in multiplayer as physics will be the same on all machines. There appear to be cvars and hints in the game (#define GAME_FPS 60 and com_fixedtic) that with a mod servers could possibly alter the default tic rate, even if that were the case all players would still be forced to the server's game tic.

John Carmack of id sofware: "The game tic simulation, including player movement, runs at 60hz, so if it rendered any faster, it would just be rendering identical frames. A fixed tic rate removes issues like Quake 3 had, where some jumps could only be made at certain framerates. In Doom, the same player inputs will produce the same motions, no matter what the framerate is."



Benchmarking
You should always ignore the first benchmark result if you are not appending 'usecache' to the timedemo command. Doom3 often pauses while loading models and textures for the first time.

1) Load Doom3 using the shortcut that enables the console
2) Open the console using the ' key below ESC or press 
CTRL+ ALT+ ~ (US Keyboards) or CTRL+ALT+ ' (UK Keyboards)
3) Enter the command  timedemo demo1 usecache
4) Wait until demo has finished and note your FPS
5) Adjust your settings/tweaks and repeat steps 2 to 4 until you find the settings with the best average FPS.

To test your FPS while online type "com_showfps 1" at the console

Please make sure that you read the Display and Rendering Tweak Notes at the foot of this page. The lowest system specification I have here is a 1.8 GHZ AMD Athlon XP, Geforce4 ti4200/128/8x with 512 megabytes of system ram. Tweaks are based on best compromise / quality in the single player game for that system. 

If you are just testing make sure that you do a writeconfig DoomConfig.cfg followed by a vid_restart after setting the cvars. Once you are happy with the tweaks you must add them to a text file called autoexec.cfg in your Doom3 'base' directory 




Main Menu Options

Ultra
Each texture (diffuse, specular, normal) will be at full resolution with no compression. In a typical DOOM 3 level, this can hover around 500 megabyte of texture data. This will run on current hardware but will not fit onto a 256MB card, causing texture thrashing.  The amount of texture referenced in a given scene per frame ( 60 times a second ) can easily be 50 megabytes+. This is ideal for 512 megabyte video cards.

High quality
Uses hardware compression ( DXT1,3,5 ) for specular and diffuse textures and no compression for normal textures. This looks very very close to Ultra quality but the compression does cause some loss in quality. This is ideal for 256 megabyte video cards.

Medium quality
Uses hardware compression for all textures (specular, diffuse and normal). While this still looks good, compressing the normal maps can produce a few artifacts especially on hard angled or round edges. This is ideal for 128 megabyte cards.

Low quality
Uses hardware compression for all textures (specular, diffuse and normal) and automatically resizes diffuse and normal textures to no more than 256x256 and specular texture maps to no more than 64x64. This is ideal for 64 megabyte video cards.

 

Best Visual Compromise / FPS Compromise Config

If you are having FPS problems this is the best all round config for singleplayer, offering a good compromise between visual quality and FPS. If you wish to try more tailored configs (excellent, high, medium and low) see our Tailored Configs page or create your own using the 'Display and Rendering Tweak Notes' section at the foot of this page.

Create a text file called autoexec.cfg in your Doom3 'Base' directory and cut/paste the relevant config text.

IMPORTANT: Make sure that you let Doom3 autodetect (Options | System | Scan Hardware and Select Optimal Quality | Apply Changes) the best setting initially and then use the tweaks in your autoexec.cfg. If you do not the textures can look a little washed out/flat/half-shaded as Doom3 has not set the cvar image_useNormalCompression (and possibly others such as rendering/shading) correctly for your hardware.


Configs have now been updated to work correctly with the ' Resurrection of Evil' expansion

256 Megabyte Video Cards 
seta image_usePrecompressedTextures "1"
seta image_useCompression "1"

seta image_downSizeLimit "1024"
seta image_ignoreHighQuality "1"
seta image_downSizeBumpLimit "1024"
seta image_downSizeSpecularLimit "256"
seta image_downSizeBump "1"
seta image_downSizeSpecular "1"
seta image_downSize "1"
seta image_forceDownSize "0"
seta image_roundDown "1"
seta image_lodbias "0"
seta image_preload "1"
seta r_useCachedDynamicModels "1"
seta r_skipBump "0"
seta r_skipPostProcess "0"
seta r_skipParticles "0"

seta r_skipSpecular "0"
seta r_skipNewAmbient "1"
seta r_multiSamples "0"
seta r_shadows "0" //NOTE
seta r_useOptimizedShadows "1"
seta r_useTurboShadow "1"
seta g_projectilelights "1"
seta g_skipParticles "0"
seta g_bloodEffects "1"
seta g_decals "0"
seta g_showBrass "0"
seta g_muzzleFlash "1"
seta g_doublevision "0"
seta g_showPlayerShadow "0"
seta image_anisotropy "1"
seta image_filter "GL_LINEAR_MIPMAP_NEAREST" 

512 Megabyte Video Cards 
seta image_usePrecompressedTextures "1"
seta image_useCompression "1"

seta image_downSizeLimit "2048"
seta image_ignoreHighQuality "1"
seta image_downSizeBumpLimit "2048"
seta image_downSizeSpecularLimit "512"
seta image_downSizeBump "1"
seta image_downSizeSpecular "1"
seta image_downSize "1"
seta image_forceDownSize "0"
seta image_roundDown "1"
seta image_lodbias "0"
seta image_preload "1"
seta r_useCachedDynamicModels "1"
seta r_skipBump "0"
seta r_skipPostProcess "0"
seta r_skipParticles "0"
seta r_skipSpecular "0"
seta r_skipNewAmbient "1"
seta r_multiSamples "0"
seta r_shadows "0" //NOTE
seta r_useOptimizedShadows "1"
seta r_useTurboShadow "1"
seta g_projectilelights "1"
seta g_skipParticles "0"
seta g_bloodEffects "1"
seta g_decals "0"
seta g_showBrass "0"
seta g_muzzleFlash "1"
seta g_doublevision "0"
seta g_showPlayerShadow "0"
seta image_anisotropy "1"
seta image_filter "GL_LINEAR_MIPMAP_NEAREST" 

64 Megabyte Video Cards 
seta image_usePrecompressedTextures "1"
seta image_useCompression "1"

seta image_downSizeLimit "256"
seta image_ignoreHighQuality "1"
seta image_downSizeBumpLimit "256"
seta image_downSizeSpecularLimit "64"
seta image_downSizeBump "1"
seta image_downSizeSpecular "1"
seta image_downSize "1"
seta image_forceDownSize "0"
seta image_roundDown "1"
seta image_lodbias "0"
seta image_preload "1"
seta r_useCachedDynamicModels "1"
seta r_skipBump "0"
seta r_skipPostProcess "0"
seta r_skipParticles "0"

seta r_skipSpecular "0"
seta r_skipNewAmbient "1"
seta r_multiSamples "0"
seta r_shadows "0" //NOTE
seta r_useOptimizedShadows "1"
seta r_useTurboShadow "1"
seta g_projectilelights "1"
seta g_skipParticles "0"
seta g_bloodEffects "1"
seta g_decals "0"
seta g_showBrass "0"
seta g_muzzleFlash "1"
seta g_doublevision "0"
seta g_showPlayerShadow "0"
seta image_anisotropy "1"
seta image_filter "GL_LINEAR_MIPMAP_NEAREST" 

128 Megabyte Video Cards 
seta image_usePrecompressedTextures "1"
seta image_useCompression "1"
seta image_downSizeLimit "512"
seta image_ignoreHighQuality "1"
seta image_downSizeBumpLimit "512"
seta image_downSizeSpecularLimit "128"
seta image_downSizeBump "1"
seta image_downSizeSpecular "1"
seta image_downSize "1"
seta image_forceDownSize "0"
seta image_roundDown "1"
seta image_lodbias "0"
seta image_preload "1"
seta r_useCachedDynamicModels "1"
seta r_skipBump "0"
seta r_skipPostProcess "0"
seta r_skipParticles "0"

seta r_skipSpecular "0"
seta r_skipNewAmbient "1"
seta r_multiSamples "0"
seta r_shadows "0" //NOTE
seta r_useOptimizedShadows "1"
seta r_useTurboShadow "1"
seta g_projectilelights "1"
seta g_skipParticles "0"
seta g_bloodEffects "1"
seta g_decals "0"
seta g_showBrass "0"
seta g_muzzleFlash "1"
seta g_doublevision "0"
seta g_showPlayerShadow "0"
seta image_anisotropy "1"
seta image_filter "GL_LINEAR_MIPMAP_NEAREST"

NOTE: To fully experience the atmosphere of Doom3 you should really run with shadows
 enabled (seta r_shadows "1"), this will however lower your FPS by a significant amount.



Display and Rendering Tweak Notes
Note:
This section only contains useful cvars, if you want a more complete list see our cvars page. To experiment with / use these settings try them at the console or add them to a text file called  autoexec.cfg in your Doom3 'Base' directory.

NOTE: Some of these cvars are only suitable for multiplayer. In singleplayer you must determine if the trade off for FPS is worth losing some of the visual effects. As a guideline, faster is generally (but not always) uglier than slower =)


image_anisotropy Sets the maximum texture anisotropy if
available in the renderer. Set between 0 and 16 with the lower number being faster and the higher number being slower


image_filter Changes texture filtering used for  mipmapped images
"GL_LINEAR_MIPMAP_NEAREST" (faster)
"GL_LINEAR_MIPMAP_LINEAR" (slower)


r_shadows Enables or disables shadows, very high FPS gain with the drawback losing shadows generated by enemies and objects.

Set to 0(faster) or 1(slower) 


r_useOptimizedShadows
Determines if static shadow volumes are used

Set to 1(faster) or 0(slower) 


r_useTurboShadow Use a faster technique for generating dynamic shadows. This may cause loss of shadows on systems with older display drivers.

Set to 1(faster) or 0(slower) 


r_useDepthBoundsTest Specific to Nvidia hardware and may not be available in the current drivers. Enables UltraShadow II’s depth bounds test feature for 5x00/6x00 cards.

Set to 1(faster) or 0(slower) 


r_Multisamples Controls the amount of antialiasing.

Set to 0, 2, 4, 8, or 16 with the lower number being faster and the higher number being slower. Not all cards will support 8 or 16 settings.


image_roundDown Controls how incorrectly sized textures are resized so they are close to a power of two. The default setting of 1 means that textures will be reduced in size possibly losing some detail, a setting of 0 means that textures will be increased in size.

Set to 1(resize down/faster) or 0(resize ip/slower)


r_skipBump Controls bump mapping, can be set so that Doom 3 uses a flat surface instead of bump maps

Set to 1(faster / uglier) or 0 (slower)


r_skipSpecular Uses black for specular lighting. Specular lighting adds texture to each object and adds additional lighting to their surface. Not worth the minor FPS gain in singleplayer

Set to 1(faster / uglier) or 0 (slower)


r_skipOverlays Skip overlay surfaces on textures. Negligible FPS gain.

Set to 1(faster / uglier) or 0 (slower) 


r_skipFogLights Skip all fog lighting, negligible FPS gain.

Set to 0(slower) or 1(faster) 


r_skipPostProcess Skip all post-process rendering such as distortion on windows glass / etc. FPS gain on some systems.

Set to 0(slower) or 1(faster) 


r_skipBlendLights Skip all blending of lights, not worth the negligible FPS gain in singleplayer

Set to 0(slower) or 1(faster) 


r_skipDynamicTextures Do not dynamically create textures, can cause problems with in game videos. Best to leave at 0 for singleplayer.

Set to 0(slower) or 1(faster)

NOTE:
Leave at 0 for singleplayer


r_skipMegaTexture Controls if the lowest level texture is always used. Not worth the negligible FPS gain.

Set to 1(faster) or 0 (slower)


r_skipTranslucent Controls translucent interaction rendering such as the loading bar and UAC logos on containers. FPS gain on some systems.

Set to 1(faster) or 0 (slower)


r_skipNewAmbient Controls the rendering of special effects such as heat haze.

Set to 1(faster) or 0 (slower)


r_useCachedDynamicModels Controls dynamic model loading, if set to 1 the game will use its memory cache for models.

Set to 1(usually faster) or 0 (slower)


r_gamma Does not affect FPS, helps with brightness, do not set this too high or colours will become washed out. See r_lightscale.

Set between 1 and 1.5, adjust r_lightscale for settings high than 1.5


r_brightness Does not affect FPS, helps with brightness.

Set between 1 and 2, if brightness is still a problem use r_gamma and/or r_lightscale


r_lightscale Does not affect FPS, helps with brightness and raises the intensity of all colours. 

Set between 2(default) and 4, only use when you feel r_gamma and r_brightness have not helped.


image_lodbias Controls lod bias on mipmapped images

Range from -2 (slower / crisper) to 2 (faster / uglier)


pm_runbob
pm_runpitch
pm_runroll
pm_bobpitch
pm_bobroll
pm_bobup
pm_crouchbob
pm_walkbob


Controls 'bobbing' up/down/side movement of player. Can help if you get motion sickness

Set each of the bob cvars to 0 to disable bobbing
image_downSizeBump
image_downSizeBumpLimit 
Controls resizing of textures for bump maps. Helpful if your video card has less than 256 megabyte of video ram

Set image_downSizeBump to 0(disabled) or 1(enabled)

Set image_downSizeBumpLimit higher(slower) or lower(faster) 

256 megabyte video cards
seta image_downSizeBumpLimit "1024"

128 megabyte video cards
seta image_downSizeBumpLimit "512"

64 megabyte video cards
seta image_downSizeBumpLimit "256"


image_downSizeSpecular
image_downSizeSpecularLimit 
Controls resizing of textures for specualr highlights. Helpful if your video card has less than 256 megabyte of video ram

Set image_downSizeSpecular to 0(disabled) or 1(enabled)

Set image_downSizeSpecularLimit higher(slower) or lower(faster) 

256 megabyte video cards
seta image_downSizeSpecularLimit "256"

128 megabyte video cards
seta image_downSizeSpecularLimit "128"

64 megabyte video cards
seta image_downSizeSpecularLimit "64"


image_downSize
image_downSizeLimit
Controls resizing of standard textures. Helpful if your video card has less than 256 megabyte of video ram

Set image_downSize to 0(disabled) or 1(enabled)

Set image_downSizeLimit higher(slower) or lower(faster) 

256 megabyte video cards
seta image_downSizeLimit "1024"

128 megabyte video cards
seta image_downSizeLimit "512"

64 megabyte video cards
seta image_downSizeLimit "256"


image_forceDownSize Forces resizing of textures to those specified in image_downSize*. May not be worth the FPS gain in singleplayer 

WARNING - Setting this to 1 in patch 1.2 (Resurrection of Evil) or above causes artifacts such as green/orange/blue textures.

Set to 0(slower) or 1(faster)


ui_showGun Shows or hides your on screen gun model.
Set to 1(slower) or 0(faster)


image_useCache
image_cacheMegs
image_cacheMinK
Controls memory set aside for temporary loading of full-sized precompressed images and files.

WARNING - When set incorrectly this can cause Doom3 to crash at startup or cause instability/graphical artifacts in game. Particularly when loading maps such as Delta Labs 4 and Resurrection of Evil's Phobos 3. If you are having problems at map start try setting image_useCache to 0, you must restart the game to enable the change

Set cache megs to a higher value if you have 512 megabytes or more of system RAM. Guideline is 1/6 to 1/4 of your system RAM.

Set image_cacheMinK to 2048. This can be set lower than 2048 when image_useCache is set to 1 but may cause Doom3 to crash.

Set image_useCache to 1 to enable background load image caching

512 Megabytes of RAM
seta image_cacheMegs "96"
seta image_cacheMinK "2048" // NOTE

768 Megabytes of RAM
seta image_cacheMegs "256"
seta image_cacheMinK "2048" // NOTE

1 Gigabyte+ of RAM
seta image_cacheMegs "384" 
seta image_cacheMinK "2048" // NOTE

NOTE: You can leave image_cacheMinK at its default if you are not setting image_useCache to 1


image_useCompression Determines if textures are used compressed. 

Set to 0 (uncompressed, high quality)
Set to 1 (compressed, slight loss of quality)

Important: Only set to 0 if you have over 256 megabytes of video ram.


image_useNormalCompression Determines how normal textures are compressed.  

Set to 1 for lower quality/smaller/faster 256 compression

Set to 2 for higher quality/larger/slower rxgb compression 

NOTE: ATi 9x00 series or before should use a setting of "1"


image_ignoreHighQuality
Controls high quality settings on materials. Can give a minor FPS gain in singleplayer 

Set to 0(slower) or 1(faster)


com_videoram
Holds the last detected amount of video ram. Check this setting in game at the console, if it is incorrect you may wish to set this to the correct amount of video ram.

Example if you have a 256 megabyte card and com_videoram shows 64 you could try setting this to 256


com_fixedtic
Controls the games tic rate. Defaults to 0, setting this to -1 will remove the 60 FPS cap for singleplayer.


g_bloodEffects Controls blood splats, sprays and gibs

Set to 0 (faster) or 1 (slower)


g_decals Control if decals such as bullet holes, burns on walls etc. are shown

Set to 0 (faster) or 1 (slower)


g_showBrass Controls if animation of ejected shells from weapons is shown.

Set to 0 (faster) or 1 (slower)


g_skipFX Controls if additional in game graphic effects are used. 

NOTE: This will have the side effect of causing your HUD to be hidden.

Set to 1 (faster) or 0 (slower)


g_skipViewEffects
Controls damage and other view effects

NOTE: This will have the side effect of causing your HUD to be hidden.

Set to 1 (faster) or 0 (slower)


g_projectileLights
g_skipParticles
r_skipParticles
Control if projectiles such as fireballs, etc. create dynamic lights or particles when fired (unconfirmed)

Set g_projectileLights to 0(faster) or 1 (slower)

set g_skipParticles and r_skipParticles to 1(faster) or 0 (slower). Do not alter r_skipParticles for singleplayer.


g_doublevision Controls if your vision is affected when you take damage.

Set to 0 (no doublevision) or 1 (doublevision)


g_muzzleFlash Controls muzzle flashes when you or the enemy fires a weapon.

Set to 0 (faster) or 1 (slower / more realism)


g_showPlayerShadow Controls your player shadow

Set to 0 (faster) or 1 (slower / more realism)

Contact Us | SavageUK | UpsetChaps
All Rights Reserved. Copyright © 2004-2007 Requ!em