In the driving view thread a couple of people mentioned that they use wheels-only view to increase their framerates. This actually surprised me because I would think that two circular wheels would use more polys than the relatively low resolution dashboards in LFS. So, I did a few tests to see just how much different settings affected frame rates.
I tried this on a machine I had handy (not the rig I normally use to play). Specs are as follows: Athlon XP 1700, 480MB RAM, nVidia GeForce2 on-board video (32MB). All tests run at 1024x768x16bpp @ 75Hz. All tests were done using the "benchmark.spr" replay found on the LFS benchmark site.
Note that these numbers are what *I* got. Every system is different and you may get slightly different results depending on where your bottleneck is (RAM, processor speed, video card speed, video card memory, etc). Obviously the bottleneck on this machine is the on-board video card. I have no doubt that with a half decent video card this machine's frame rates would quadruple or more.
Cockpit view - LFS Standard Settings:
Frames: 974 - Time: 103283ms - Avg: 9.430 - Min: 5 - Max: 16
Cockpit - Wheel, no driver:
Frames: 998 - Time: 103273ms - Avg: 9.663 - Min: 5 - Max: 16
Cockpit - no wheel, no driver:
Frames: 1002 - Time: 103390ms - Avg: 9.691 - Min: 5 - Max: 16
As you can see, turning off the wheel and driver in cockpit view made no effect on the minimum or maximum fps and only gave a <.5 fps difference on average. So, turn off the wheel/driver if that's your preference, but don't expect a frame rate boost.
Wheels only view:
Frames: 1875 - Time: 103364ms - Avg: 18.139 - Min: 8 - Max: 41
This is quite obviously a very large jump in frame rate. The average frame rate is about double while the max frame rate is over double what the cockpit view gave. It's interesting to note that the frame rate seemed least affected when there were lots of cars around, but when the track was clear up ahead the frame rate really shot up. I don't understand this. I would think that drawing the tires should logically require more horsepower than drawing the cockpit.
Cockpit - no wheel, no driver, LOD set to minimum:
Frames: 1331 - Time: 103540ms - Avg: 12.854 - Min: 7 - Max: 19
Cockpit - no wheel, no driver, LOD min, wheels/tires/flags/rubber set to all:
Frames: 1390 - Time: 103451ms - Avg: 13.436 - Min: 7 - Max: 20
For these tests I went back to cockpit view but turned Level Of Detail to minimum. For the second test I set the listed options to "all" (which means those things aren't drawn). These were set to "mirror" by default. The LOD option made a fair difference, but turning on simple wheels, no flags, no rubber, etc. only gave a <1 fps increase. It's my opinion that turning off wheels/tires/flags/rubber is not worth it. The game looks graphically much worse while giving a negligible increase in frame rate. Again, this seems strange since having wheels drawn adds a ton of polys that must be rendered.
Cockpit - as above with mirrors disabled:
Frames: 1906 - Time: 103460ms - Avg: 18.422 - Min: 10 - Max: 29
Finally, something other than wheels-only view that made a significant difference. Average frame rate is double what it was with the default cockpit settings, but it's only ~30-50% higher than the above settings (LOD and wheels/tires/etc were left turned down, as above).
Benchmark minimum settings:
Frames: 2100 - Time: 103406ms - Avg: 20.308 - Min: 10 - Max: 31
These numbers represent the "minimum" cfg.txt that comes with the LFS benchmark. Again, this is only a slight increase over the above test (only 2fps gain on average) even though virtually every single graphical option was turned to minimum or completely off. Running in this mode looked, quite frankly, *awful*. It's quite obvious that many of the grahical options have a huge effect on eye candy while not having much effect at all on frame rate.
Benchmark maximum settings:
Frames: 765 - Time: 103275ms - Avg: 7.407 - Min: 5 - Max: 13
These numbers represent the "maximum" cfg.txt that comes with the LFS benchmark. I knew this would give poor frame rates, but wanted to have a baseline anyway. It's interesting to note that with EVERYTHING enabled and set to high, the average frame rate and min/max frame rates are very near to the standard settings that LFS ships with.
Benchmark maximum settings w/wheels view:
Frames: 1484 - Time: 103230ms - Avg: 14.375 - Min: 6 - Max: 29
This was probably the most interesting test of all. I used the "max" settings above, but used wheels-only view instead of cockpit. Despite having all of the graphical options maxed out, this view gave results very similar to the "minimum" settings. In other words, you could run wheels-only view with graphical options maxed out, or you could run cockpit view with graphics on minimum and get approximately the same frame rate. As much as I hate wheels-only view, this is probably going to be a no-brainer for most folks.
In conclusion I would have to say that based on my testing the three things that make the most difference to frame rate are as follows:
1) Wheels only view. Changing to this view can basically double your frame rate over cockpit view.
2) Mirrors. Turning off mirrors can give a significant increase in frame rates. However; I don't recommend this as you really have no other way to know how close other cars are to yours without constantly looking around.
3) Level of Detail (LOD). This also seems to give a decent boost, especially when there are a lot of cars on screen, so long as they're not all close to your own car. It helps very little off the starting line or when you have to drive through a pile-up.
I have a few questions that hopefully one of the devs can answer, and one suggestion that might offer an easy way to increase frame rates.
Question: Why does wheels view make such a huge difference in frame rate? The cockpit would seem to have fewer polygons and very little in the way of textures (assuming wheel/driver are turned off). Also, the dash doesn't have to be turned and animated like the wheels. Are the wheels still being "drawn" in cockpit view even though they can't be seen? Is there anything that can be done to address this so that cockpit view is faster and more efficient?
Suggestion: The LOD option appears to work using distance. Closer cars are drawn using a high number of polys, full textures, etc. while far away cars use fewer polys and low res textures. It might be better to change LOD based on frame rate, rather than distance. I noticed when doing the replays that LOD made virtually no difference right off the starting line or through the first turn or two because all of the cars are so close together. Since the cars are close together they get drawn fully. Unfortunately, this is exactly the circumstance where most people need the extra fps. I think you'd get a significant frame rate boost if you based LOD on frame rate. Using a system like this you could have a max and min frame rate. When the rate dropped below minimum, LOD would drop slightly. When the rate went above max the LOD would raise. This would, of course, be an option just as LOD is now. I think this would offer a much better user experience and could significantly increase frame rates early in the race.
Thanks to everyone who bothered to read this whole thing.
(edited for grammar and to remove some uncessary info from the fraps logs)
I tried this on a machine I had handy (not the rig I normally use to play). Specs are as follows: Athlon XP 1700, 480MB RAM, nVidia GeForce2 on-board video (32MB). All tests run at 1024x768x16bpp @ 75Hz. All tests were done using the "benchmark.spr" replay found on the LFS benchmark site.
Note that these numbers are what *I* got. Every system is different and you may get slightly different results depending on where your bottleneck is (RAM, processor speed, video card speed, video card memory, etc). Obviously the bottleneck on this machine is the on-board video card. I have no doubt that with a half decent video card this machine's frame rates would quadruple or more.
Cockpit view - LFS Standard Settings:
Frames: 974 - Time: 103283ms - Avg: 9.430 - Min: 5 - Max: 16
Cockpit - Wheel, no driver:
Frames: 998 - Time: 103273ms - Avg: 9.663 - Min: 5 - Max: 16
Cockpit - no wheel, no driver:
Frames: 1002 - Time: 103390ms - Avg: 9.691 - Min: 5 - Max: 16
As you can see, turning off the wheel and driver in cockpit view made no effect on the minimum or maximum fps and only gave a <.5 fps difference on average. So, turn off the wheel/driver if that's your preference, but don't expect a frame rate boost.
Wheels only view:
Frames: 1875 - Time: 103364ms - Avg: 18.139 - Min: 8 - Max: 41
This is quite obviously a very large jump in frame rate. The average frame rate is about double while the max frame rate is over double what the cockpit view gave. It's interesting to note that the frame rate seemed least affected when there were lots of cars around, but when the track was clear up ahead the frame rate really shot up. I don't understand this. I would think that drawing the tires should logically require more horsepower than drawing the cockpit.
Cockpit - no wheel, no driver, LOD set to minimum:
Frames: 1331 - Time: 103540ms - Avg: 12.854 - Min: 7 - Max: 19
Cockpit - no wheel, no driver, LOD min, wheels/tires/flags/rubber set to all:
Frames: 1390 - Time: 103451ms - Avg: 13.436 - Min: 7 - Max: 20
For these tests I went back to cockpit view but turned Level Of Detail to minimum. For the second test I set the listed options to "all" (which means those things aren't drawn). These were set to "mirror" by default. The LOD option made a fair difference, but turning on simple wheels, no flags, no rubber, etc. only gave a <1 fps increase. It's my opinion that turning off wheels/tires/flags/rubber is not worth it. The game looks graphically much worse while giving a negligible increase in frame rate. Again, this seems strange since having wheels drawn adds a ton of polys that must be rendered.
Cockpit - as above with mirrors disabled:
Frames: 1906 - Time: 103460ms - Avg: 18.422 - Min: 10 - Max: 29
Finally, something other than wheels-only view that made a significant difference. Average frame rate is double what it was with the default cockpit settings, but it's only ~30-50% higher than the above settings (LOD and wheels/tires/etc were left turned down, as above).
Benchmark minimum settings:
Frames: 2100 - Time: 103406ms - Avg: 20.308 - Min: 10 - Max: 31
These numbers represent the "minimum" cfg.txt that comes with the LFS benchmark. Again, this is only a slight increase over the above test (only 2fps gain on average) even though virtually every single graphical option was turned to minimum or completely off. Running in this mode looked, quite frankly, *awful*. It's quite obvious that many of the grahical options have a huge effect on eye candy while not having much effect at all on frame rate.
Benchmark maximum settings:
Frames: 765 - Time: 103275ms - Avg: 7.407 - Min: 5 - Max: 13
These numbers represent the "maximum" cfg.txt that comes with the LFS benchmark. I knew this would give poor frame rates, but wanted to have a baseline anyway. It's interesting to note that with EVERYTHING enabled and set to high, the average frame rate and min/max frame rates are very near to the standard settings that LFS ships with.
Benchmark maximum settings w/wheels view:
Frames: 1484 - Time: 103230ms - Avg: 14.375 - Min: 6 - Max: 29
This was probably the most interesting test of all. I used the "max" settings above, but used wheels-only view instead of cockpit. Despite having all of the graphical options maxed out, this view gave results very similar to the "minimum" settings. In other words, you could run wheels-only view with graphical options maxed out, or you could run cockpit view with graphics on minimum and get approximately the same frame rate. As much as I hate wheels-only view, this is probably going to be a no-brainer for most folks.
In conclusion I would have to say that based on my testing the three things that make the most difference to frame rate are as follows:
1) Wheels only view. Changing to this view can basically double your frame rate over cockpit view.
2) Mirrors. Turning off mirrors can give a significant increase in frame rates. However; I don't recommend this as you really have no other way to know how close other cars are to yours without constantly looking around.
3) Level of Detail (LOD). This also seems to give a decent boost, especially when there are a lot of cars on screen, so long as they're not all close to your own car. It helps very little off the starting line or when you have to drive through a pile-up.
I have a few questions that hopefully one of the devs can answer, and one suggestion that might offer an easy way to increase frame rates.
Question: Why does wheels view make such a huge difference in frame rate? The cockpit would seem to have fewer polygons and very little in the way of textures (assuming wheel/driver are turned off). Also, the dash doesn't have to be turned and animated like the wheels. Are the wheels still being "drawn" in cockpit view even though they can't be seen? Is there anything that can be done to address this so that cockpit view is faster and more efficient?
Suggestion: The LOD option appears to work using distance. Closer cars are drawn using a high number of polys, full textures, etc. while far away cars use fewer polys and low res textures. It might be better to change LOD based on frame rate, rather than distance. I noticed when doing the replays that LOD made virtually no difference right off the starting line or through the first turn or two because all of the cars are so close together. Since the cars are close together they get drawn fully. Unfortunately, this is exactly the circumstance where most people need the extra fps. I think you'd get a significant frame rate boost if you based LOD on frame rate. Using a system like this you could have a max and min frame rate. When the rate dropped below minimum, LOD would drop slightly. When the rate went above max the LOD would raise. This would, of course, be an option just as LOD is now. I think this would offer a much better user experience and could significantly increase frame rates early in the race.
Thanks to everyone who bothered to read this whole thing.
(edited for grammar and to remove some uncessary info from the fraps logs)