Crysis Tweak Guide
[Page 10] Advanced Tweaking (Pt.3)
Performance / System Commands
Note: most graphics-based commands covered further below have an impact on performance, but below are the commands which primarily have an impact on general game performance, or are designed for altering general system configuration.
r_VSync [0,1] - This setting controls Vertical Synchronization, or VSync. By default VSync is disabled in Crysis for maximum performance, but if you wish to enable VSync, set this option to 1, or force it via your graphics card's control panel when using the latest drivers. If you do decide to use VSync, make sure to also enable the d3d9_TripleBuffering setting to prevent a drop in performance.
Update: As of the 1.1 Patch you can now adjust VSync directly within the in-game options by using the VSync check box - see page 5 for details.
d3d9_TripleBuffering [0,1] - If set to 1, enables Triple Buffering, which is recommended for performance reasons if you have Vertical Sync enabled. If Vsync is not enabled, there is no need to enable this option, as it uses additional Video RAM for no real benefit. Note that this only works under DX9 mode, so if using DX10 mode, see the link just above for other methods of forcing Triple Buffering.
r_Height [value] - This command controls the height of your screen resolution in pixels, and when combined with the r_width command, can be used to set a custom resolution if you wish.
e_particles_thread [0,1] - Determines whether the particle system - if enabled - is threaded or not. This should always be set to 1 on a system with a multi-core CPU to provide optimal performance, as it prevents additional slowdowns during explosions and combat. In fact this is one of the reasons why Crysis doesn't suffer from major slowdowns during the highly detailed explosions on multi-core systems (system).
e_vegetation_static_instancing [0,1] - If set to 1, this command appears to enable instancing of static vegetation by the game engine, which may improve performance on your system by reducing the work involved in rendering multiple identical objects (system).
es_OnDemandPhysics [0,1] - Appears to control the way in which entities have physics applied to them. While I saw no real impact when altering this option, I do note that the help text says the default is 1 (on), when in fact the actual value I had was 0, so enabling this may give you some performance (system).
e_hw_occlusion_culling_objects [0,1] - This option enables hardware Occlusion Culling. Occlusion testing is a way for the game to detect what is not visible to the user and hence not waste power drawing it. Enabling this option may result in a performance improvement depending on your system, as it appears to shift the occlusion testing procedure for objects entirely to your graphics card hardware. A similar explanation applies to the e_hw_occlusion_culling_water command (system).
e_precache_level [0,1] - If set to 1, each level is loaded up beforehand to a significant extent, resulting in longer level loading times and greater memory usage, in return for a potential drop in any in-level stuttering. However stuttering is generally not a major issue in Crysis due to its streaming on-demand approach, so this option shouldn't necessarily be changed. Note that if you want to disable texture streaming to prevent in-level streaming pauses, see the r_TexturesStreaming setting on the next page.
e_stream - There are several commands starting with e_stream. If set to 1, they enable the streaming system for their relevant components. It is generally not recommended that this be altered unless you're running on a low-memory system, since streaming can reduce memory usage but may increase stuttering (system). Again, see the r_TexturesStreaming setting if you just want to enable/disable texture streaming.
gpu_particle_physics [0,1] - If set to 1, appears to enable the processing of particle physics on the GPU (graphics card). Since the particle system is already threaded (see e_particles_thread), this setting will likely only improve performance on systems with single-core CPUs and fast graphics cards (system).
r_MultiGPU [0,1,2] - This option controls whether Crysis enables additional overhead for rendering on multi-GPU systems (i.e. SLI and CrossFire setups). If set to 0 - which is the optimal setting for single-GPU systems - it disables multi-GPU support; if set to 1 it enables multi-GPU support for both SLI and Crossfire; if set to 2 it attempts to auto-detect if a multi-GPU setup is present (system).
r_GeomInstancing [0,1] - This setting determines whether hardware Geometric Instancing will be used or not. All graphics cards supported by Crysis can use hardware geometric instancing, and in theory enabling it can improve performance, but in my testing I didn't find any real difference with this option enabled or disabled, so experiment to see if it makes a difference on your machine.
Note: Almost all these commands have an impact on performance, but because their main impact is on altering the graphics and visual atmosphere of the game, they're in this section. To make it easier to follow, I've also created sub-groups for particular areas of graphics which the commands affect.
Character Animation and Physics
g_joint_breaking [0,1] - If set to 1, allows players to destroy most objects in the game world, such as buildings, bottles, tables, etc. If set to 0, you cannot destroy most objects (excluding vehicles) even when using Strength Mode or with grenades for example, which while it can improve performance, is a major reduction in realism and a significant gameplay disadvantage in Crysis.
ca_UseFacialAnimation [0,1] - If set to 0, disables the facial animation system, which means that all characters will always wear the same expression. This may improve performance, but it noticeably reduces realism (system).
ca_UsePhysics [0,1] - If set to 0, disables the physics system for characters. For example when shooting the enemy they will not show physical reactions, there are no ragdoll physics when thrown, and when dead they will stand up straight. This may improve performance but there will be glitches and an obvious reduction in realism (system).
g_ragdollMinTime [value] - Determines for how many seconds ragdolls (i.e. dead characters) will remain visible before being removed. Lowering this value can improve performance by removing dead bodies more quickly. Can be used in combination with g_ragdollDistance, since lowering both will result in much quicker dead body removal.
g_ragdollDistance [value] - This setting determines the range beyond which ragdolls (i.e. dead characters) start to disappear. Lowering this value can improve performance during combat by removing more dead bodies from view at the cost of realism.
ca_UseDecals [0,1,2] - Determines whether decals (marks such as bullet holes) appear on characters. When set to 0, this is disabled, which can improve performance at a minor cost in realism. To allow decals on characters, set to 1. To use an alternate method for decals, set to 2, although this appears to cause wireframe glitches to appear (system).
e_decals [0,1] - If set to 0, disables all decals. Decals are the marks covering the surfaces of objects, such as bullet holes. Disabling this option removes both dynamic decals generated by the player, as well as pre-placed static decals such as the muddy deep tyre tracks on roads. This can improve FPS, particularly during combat, at the cost of a great deal of realism.
e_decals_allow_game_decals [0,1] - If set to 0, this option only disables dynamic decals generated by characters, not static decals. Once again this can improve FPS particular during combat at the cost of realism, but it can be a better choice than turning off all decals altogether, since it leaves things like tyre tracks visible.
e_decals_life_time_scale [value] - This setting controls how long dynamic decals like bullet holes last on surfaces before they fade away. A value of 1 = 10 seconds, 2 = 20 seconds, etc. Lowering this setting can improve FPS during heavy combat.
r_MotionBlur [0,1,2,3,4,5,101,102,103,104] - This setting controls the use of Motion Blur, which is most visible when turning around in the game. Setting it to 0 disables this form of blurring and can noticeably improve FPS; 1 enables it; 3 enables it and also allows it to blur not just your view, but also blur fast moving objects in DX10; 4 enables it and allows object motion blur in DX9 mode. Each level progressively lowers FPS. Again, it should be kept in mind that to get full object motion blurring in DX9 (e.g. the blurring on the movement of your own arms), you need to set this command to 5 (which is above the Very High level), whereas it occurs at 3 in DX10 Very High mode, and you also need to also make sure q_Renderer=3 for it to work.
Update: To get motion blur in multiplayer you need to use the 101,102,103 and 104 values and insert this command into your Multiplayer.cfg file under the \Program Files\Electronic Arts\Crytek\Crysis\Game\Config directory. For example use r_motionblur=103 to get the same effect in multiplayer as r_motionblur=3 in single player.
Update 2: As of the 1.1 Patch, you can control Motion Blur using the Motion Blur setting in the in-game options. You can also control the amount of blurring - as determined by the r_MotionBlurShutterSpeed cvar below - using the slider which is below that setting in the in-game options - see the bottom of page 7 for details.
Update 3: As of the 1.2 Patch, object motion blurring has much less of a performance impact. Note also that to enable object motion blurring in DX9 mode, you need to use r_motionblur=5 now, as opposed to setting it to 4, for it to work.
r_MotionBlurShutterSpeed [value] - If motion blur is enabled, this command allows you to change the intensity of the blur effect; the higher the value, the more prominent the blurring, the lower the value, the more subtle it will be.
g_dof_ironsight [0,1] - If set to 0, disables the Depth of Field (DOF) effect which occurs when using your weapon's iron sights. This makes everything much sharper, and can improve FPS, but reduces realism for some people (system).
g_dofset_maxscale [value] - This setting, along with g_dofset_minscale, can be used to adjust the extent to which the Depth of Field effect blurs surrounding objects which are not in focus. For example setting both values =1 results in more subtle blurring around the edges, while setting both to =3 makes the blurring more prominent (system).
g_radialBlur [0,1] - If set to 0, disables the radial blur effect which occurs when objects explode near you. This can help both improve performance around explosions, and make them clearer (system).
e_dynamic_light [0,1] - If set to 0, disables dynamic lighting, which is lighting that reacts realistically with the environment. Disabling dynamic lighting has a major visual and performance impact - in effect this makes even outdoor sunny daytime scenes appear to be cloudy days, though it doesn't remove all lighting effects. The increase in FPS is significant from disabling this option (system).
e_max_entity_lights [value] - This setting controls the maximum number of lights which can affect an object at any one time. The lower the value, the less lights can illuminate an object, but the higher your FPS will be in situations where there are multiple light sources. Setting this value too low will result in visual glitches like objects appearing to flash, as multiple lights compete to illuminate an object.
r_ColorGrading [0,1] - This setting controls the special color gradation effect which is normally only implemented at the Very High Post Processing setting. It's difficult to explain in words, so you can see an animated image quality comparison of it by clicking here: Crysis_Colorgrading.gif (538KB) - note the change in color between the two shots. Importantly, this setting can noticeably affect FPS, and in fact when running at Very High, simply turning off color grading (= 0) can net a nice FPS boost without a major drop in image quality. Furthermore disabling color grading can sometimes increase general blurriness, so if you wish to sharpen things up again disable Edge AA (r_useEdgeAA=0) for both an increase in sharpness and a further boost in FPS. Finally, color grading can only be enabled properly at settings below Very High if q_Renderer=3.
r_ColorGradingDOF [0,1] - This setting appears to control the use of additional Depth of Field (DOF) effects (aside from when using iron sights) when Color Grading is enabled. Disabling this setting can improve FPS without any noticeable drop in image quality.
r_Coronas [0,1] - This setting controls the halo effect which surrounds light sources, such as torches and vehicle headlights. Disabling this setting can improve FPS in such situations, but it also noticeably diminishes the realism of the light source.
r_Flares [0,1] - If set to 0, this command disables the Lens Flare effect used in the game. However given this effect is very difficult to see in Crysis, the FPS and visual impact of this option is minimal at best.
r_Glow [0,1] - If set to 0, disables the general glow visible in areas of bright light (such as the sky), which can improve FPS. The effect is quite subtle, and the change is most noticeable when viewing bright outdoor areas from indoors. You can see an animated image quality comparison of it by clicking here: Crysis_Glow.gif (530KB).
r_HDRRendering [0,1] - This setting controls the use of High Dynamic Range (HDR) rendering. When enabled, your character's view in the game reacts more realistically to lighting, but this can also reduce FPS.
r_EyeAdaptationBase [value] - This command determines the extent to which your eyes adjust to bright light when HDR lighting is being used. The lower the value, the brighter the general surroundings will seem under bright lighting such as the sun.
r_HDRBrightOffset [value] - This setting controls the general brightness/glow of lighting in a scene when HDR is enabled. Lowering the value increases brightness, while raising it darkens the HDR effect.
r_HDRBrightThreshold [value] - Altering this command appears to change the overall glow effect of HDR lighting; lower values increase the glow.
r_HDRLevel [value] - This setting controls the overall saturation and intensity of HDR, with higher values making the HDR much more saturated and unnatural.
r_SSAO [0,1] - This setting controls Ambient Occlusion, which is an effect that can make things look more atmospheric by lighting everything more realistically, but if disabled, can noticeably improve FPS without a significant drop in image quality.
r_SSAO_amount [value] - If SSAO is enabled, then this setting controls the level of ambient occlusion - the higher the value the richer the shadowing and general atmosphere of the game world, but it may reduce FPS.
r_sunshafts [0,1] - This setting controls the additional shafts of light which appear through vegetation and any other object held up to sunlight. If set to 1, the effect will increase realism at the cost of some FPS.
r_Reflections [0,1] - This setting controls non-water reflections, such as those on glass. Setting this option to 0 will disable all such reflections, which can improve FPS at the cost of realism.
r_Refraction [0,1] - This setting controls non-water Refraction, which is the distortion effect visible when looking through certain transparent objects. Setting this option to 0 will disable refraction which can improve FPS under relevant circumstances, but may cause visual glitches on bottles for example.
q_Shader - There are a range of settings starting with q_Shader, and these can generally be altered as a group using the Shaders Quality in-game setting. However here you can alter individual shader effects using these commands, with a value of 0 = Low, 1 = Medium, 2 = High and 3 = Very High. For example, to just lower the quality of glass surfaces in the game for a potential boost in FPS, alter the q_ShaderGlass command. Note that some cvars may require that the corresponding q_shader command be set to a particular value before they can work. Typically any effects normally only visible at High or Very High may need the relevant q_shader command set to High (=2) or Very High (=3) as well before they function properly.
The next page continues the list of Crysis command variables.