For those after higher IQ or higher performance, hopefully these settings will help.
Starter - general recommendation:
DX9 Vista - better performance (this may vary from system to system)
DX9 XP - best performance (this may vary from system to system)
AA - 2X
Vsync - Optional, performance loss is marginal (this may vary from system to system)
Note that for the settings below, while a lot of users report that moving from Ultra High to Very High, makes no noticeable image impact, you should also remember that the majority them can actually hurt performance on high end systems, if you do not use the maximum available setting.
Real Trees - Very High (Max) A setting of Medium or lower results in static, non moving trees. High to Very High seems to have no IQ difference or performance difference.
Fire - Very High (Max) Using High instead of Very High seems to affect the color grading and particle density of the flames, though it's very hard to see the difference. Performance seems irrelevant.
Physic - Very High (Max) I haven't figured out the extent of this parameter. I imagine in battle situations, a lower setting may improve performance for some people, but this hasn't been the case for myself.
Vegetation - Very High (Max) Performance and IQ between Very High and High seems irrelevant.
Shading - Ultra High (Max) Performance and IQ between Ultra High and Very High seems irrelevant.
Terrain - Ultra High (Max) Performance and IQ between Ultra High and Very High seems irrelevant.
Geometry* - Very High Performance between Ultra High and Very High can result in a difference of a few to several frames. I cannot see a loss in IQ
Post - High (Max) Performance between High and Medium seems irrelevant, as does IQ.
Texture - Ultra High (Max)Performance and IQ between Ultra High and Very High seems irrelevant.
Shadow* - Very High Performance between Ultra High and Very High can result in a difference of a few to several frames. I cannot see a loss in IQ
Ambient - High (Max)** Performance between High and Medium seems irrelevant, as does IQ.
*Using Geometry and Shadows at Very High, can be a frame boost over five to ten frames for some systems, and is highly recommended as a quick fps gain at no image quality loss.
** Ambient is locked at "high" in DX10.
Console commands and parameters:
Gfx_ClusterLODScale 0.7 [Default 0.8] A lower setting results in less sprites 'popping' into view, and/or they load at farther distances, so it's less noticeable. Slight IQ increase here when in motion, without a performance hit.
Gfx_HemiQuality 1 [Default is based off your in-game video settings.] You should hardly be able to tell between a setting of 2 (Highest quality) and 1 (Medium quality), but you gain a frame or two.
Gfx_KillLODScale 0.9 [Default is 1] This will show you some more detail on objects(primarily) from a distance. 0.9 should have no performance hit, and give you a the same IQ as 0.8-0.5 (anything lower is wasted frames).
Gfx_LeavesShadowRatio 1 [Default is 0.5] This will increase the density of the shadows around trees and the shadows cast by trees on everything. The higher the value the better the IQ. Performance impact is 0.
Gfx_LODScale 0.5 [Default is 1] This will increase the 'plushness' of all sprites, textures and objects whether up close or at a distance. The lower you set it, the better IQ. A setting of lower than 0.5 is not recommended.
Gfx_RealTreesLODScale 0 [Default is 1] This is an odd parameter. The higher you set it numerically, the thinner and less dense trees become. But frames improve, however moving to "0" increases IQ AND frame rate in some conditions, but others, you lose a frame or two.
Gfx_SunShadowRange1* 30 [Default is 8] This controls the bulk quality of shadows and the texturing filter. If you notice, by default the filtering line can easily be seen when moving towards objects or terrain. That ugly filtering line that turns low resolution into high resolution. Setting this to 30 should give you enough of a distance, that you won't have to worry about that again. Performance loss is minimal, a few frames if that.
Gfx_SunShadowRange0* 14 [Default is 4] This is the base shadow setting, that works in conjuction with ShadowRange 1. Think of it as a 'fine tuning' parameter. If you've set your ShadowRange1 to 30, you may notice that there's still a slight filtering layer in motion. Even though it's not as heavy as the previous one, you can tighten up the shadows LOD range and quality even more, by raising this variable's value. However, the higher you go, the worse the quality of close range shadows become. I wouldn't go over 12 or 14. Performance loss is less than ShadowRange1.
Gfx_SunShadowRange2 160 [Default is 80] This second (technically third) sun shadow variable, controls how far into the distance an object's shadows are cast based on the sun's position. I.e. the higher the value, the more landscape shadows you will see(quality based on distance is determine by ShadowRange0 and ShadowRange1 only)A setting of 160 increases IQ, with minimal FPS loss.
Gfx_TerrainLODScale 0 [Default is 1] This will allow textures on distance objects, primarily mountains, to be increased. Performance loss should be less than two frames for high end GPU users.
*I believe both of these parameters also control the filtering line when the sun is not around; i.e. at night time etc.
The use of DX 9, VHigh shadows, VHigh geometry and 2xAA will net you a considerable performance boost, and then you can turn around and spend some of it on the increased IQ with the settings above.
I also run it with Vsync.
Or if you're insisting on using DX10, 4xAA, Ultra shadows, Ultra geometry, or some combination of IQ enhancing parameters, and/or you just need better performance, you can reverse some of these previously mentioned parameters:
Gfx_ClusterLODScale 1 or 2 [Default 0.8] This will cause more sprites to show up while in motion(like grass getting more dense) but from default to 1 shouldn't be killer on your eyes if you're ok with the game under stock conditions. If you're desperate, try 2, and see if it's acceptable or not in regards to IQ. FPS gain at a level of 2, should be at least five or more FPS.
Gfx_HemiQuality 0 [Default is based off your in-game video settings.] You will see more of an IQ loss between 0 and 1 than you did with 1 and 2. The performance gain will scale relatively the same as moving from a level of 2 down to 1, so expect about three to four frames at a setting of 0.
Gfx_KillLODScale 1.5 or 2 [Default is 1] You will lose some object draw and slight texture reduction at a distance, but for most this might be fairly acceptable given the fast paced action of the game in which they don't notice such things. You should gain a few frames.
Gfx_LeavesShadowRatio 1 [Default is 0.5] As mentioned above, this will not affect performance, so it's up to you.
Gfx_LODScale 1.5 or 2 [Default is 1] This is probably the most noticeable feature in terms of IQ and performance. Moving above default of 1, can result in noticeably cheaper quality objects and textures, but should provide several frames depending on how far you take it.
Gfx_RealTreesLODScale 0 or 1 [Default is 1] As mentioned above this is an odd parameter, some might truly get better performance at a setting of 0, which gives the best viewing quality. I'd leave it at 1 or 0.
Gfx_SunShadowRange2 60 [Default is 80] If you don't worry about mid-range to distant shadow draw from objects, you can decrease this from 80 down to 60, to pick-up a few frames. Going to 40 or less makes a noticeably negative IQ difference.
Gfx_TerrainLODScale 1 [Default is 1] Leaving this at default of 1 should be enough. The gains from anything over 1 seem too minimal to be worth it, unless you don't mind the game looking fairly awful.
As a word of warning, when you are adjusting the settings in the console, sometimes the game can 'flake' out, and when you enter a new command, it will drop to desktop with a black screen then come back. This is not supposed to happen. Every change should happen in real time. If you get thrown back and forth between the desktop, stop, exit the game and try it again.
If you are content with a batch of settings, you can setup a configuration file and tell the game to load it from the console.
Make a new .txt file in your Far Cry 2 user folder, which is My Games for both Xp and Vista. You can name it whatever, let's say "IQ.txt"
Place the commands inside the file and do not use the "=" sign between the variable itself and the numerical value. I.e. gfx_LODScale 0.5 not gfx_LODScale=0.5
When you run the game, open the console with the tilda key "~" and type Exec IQ.txt
At this point I haven't figured out how to force the game to load with these settings automatically, whether from the configuration file or some other means.
Lastly, sorry I don't have any 'lesser' systems to run the game on, to see how these settings effect it. Most of my testbed and backup machines are in pieces at this time. Feel free to give them a whirl and report back.