Wednesday, November 30, 2011

Battlefield 3 Settings Analysis

For this blog post, i was unsure exactly what i wanted to cover. After looking back on a couple comments readers made about wanting to see more about the "individual settings" in Battlefield 3, i decided i would analyze each setting, what it does, and show the performance impact on the game in FPS.

Below is a slideshow i put together with my results. Underneath it I'll explain exactly what my findings were and also what each individual setting does to the game.





 Results

Out of the 11 settings in Battlefield 3, i catagorized the settings based on the amount of change they made on the FPS:
  • No Change: Effects Quality
  • Minimal Change: Texture Quality, Terrain Quality, Terrain Decoration, Anti-aliasing Post, Anisotropic Filter
  • Noticeable Change: Shadow Quality, Motion Blur, Ambient Occlusion
  • Significant Change: Mesh Quality, Anti-aliasing Deferred

Number of FPS Change:

Texture Quality:                 1
Shadow Quality:                 5
Effects Quality:                   0
Mesh Quality:                     9
Terrain Quality:                 1
Texture Decoration:           1
Anti-Aliasing Deferred:     13
Anti-Aliasing Post:             1
Motion Blur:                       4
Anisotropic Filter:              1
Ambient Occlusion:            5




These results obviously are them being changed alone and without any change of the other settings. If i were to have changed multiple settings at a time, they would have compounded and the FPS would be higher.

This information shows that some settings have a greater effect on the FPS than others and using this information in combination with their effect on the game (which is discussed below) a person can help tweak the settings of their game to get the BEST possible performance while also getting the BEST visual experience in Battlefield 3 and any game for that matter.




BF3's Graphics Settings Explained

This information was taken from Harry Butler's blog post titled "Battlefield 3 Performance Analysis". I could not have explained it better myself.

Texture Quality
Self explanatory this one; the higher the settings, the higher quality of the textures. The below shot, courtesy of Nvidia, demonstrates this clearly. However, in practice there’s actually very little visual difference between Ultra, High, Medium and Low, as the game will still load the Ultra textures when you’re up close. Instead, this really lets you set the level of detail; at Low you’ll notice textures popping through the different detail levels; at Ultra you won’t.

Battlefield 3 Performance Analysis
Texture Quality in Battlefield 3 - Click to enlarge


Shadow Quality
Rather than compromise on the number of shadows or remove shadows completely, even at the lowest setting BF3’s environments, vehicles, soldiers and even incidental details such as boxes still cast dynamic shadows. However, the difference between the lowest and highest detail settings concern the quality and softness of the shadows; as you can see below, at Low detail the antennae’s shadow is stark and blocky, looking like it’s been painted onto the landscape. However, at Ultra detail the shadow is much smoother and looks like it’s a part of the game world.

Battlefield 3 Performance Analysis Battlefield 3 Performance Analysis Battlefield 3 Performance Analysis Battlefield 3 Performance Analysis
L to R: Shadow Quality in Battlefield 3 on Low, Medium, High and Ultra - Click to enlarge

Effects Quality
Being honest, we struggled to find a difference between the lowest and highest settings in the Effects Quality settings; explosions, debris, smoke and clouds all looked just as good at the lowest or highest settings.


Mesh Quality
Mesh Quality has a big impact on BF3’s visuals as, like Texture Quality, it adjusts the model detail depending on its proximity to the player. It’s a subtle effect, but you can see in the below images that, as the mesh detail drops, objects further way from the player become simpler. Most obvious is the tree in the middle of the screen and the chain link fence, both of which are much simpler at Low detail than they are at the Ultra setting.

Battlefield 3 Performance Analysis Battlefield 3 Performance Analysis Battlefield 3 Performance Analysis Battlefield 3 Performance Analysis
L to R: Mesh Quality in Battlefield 3 on Low, Medium, High and Ultra - Click to enlarge


Terrain Quality and Decoration
As with Effects Quality, we saw very little difference between the lowest and highest settings for these two detail options, even on large terrain and decoration-filled maps such as Caspian Border.

Anti-Aliasing Deferred
This is standard multi-sample anti-aliasing, reducing texture creep and generally smoothing edges and removing horrible jaggies to improve image quality. BF3 supports both 4x MSAA and 2x MSAA natively, but only enables 4x at the Ultra preset.

Anti-Aliasing Post
While not true anti-aliasing, this post-process effect has a similar purpose; smoothing edges and harsh lines and generally softening the visuals without the performance impact of full MSAA. It's not as effective at reducing and smoothing jaggies, though. BF3 offers four settings of Low, Medium, High and Ultra, but as we’ll see, the performance difference between Low and Ultra is fairly minimal.

Motion Blur
Another post-process effect, this time to give a more convincing feeling of movement and motion.


Anisotropic Filter
Anisotropic Filtering (AF) is the process of enhancing the visual quality of textures when they’re viewed from sloped viewing angles, correcting texture blurring and making textures, particularly at a distance, look clearer and more defined. Oddly for a game that prides itself on outdoor environments, BF3’s Low and Medium presets set AF to just 2x and 4x respectively; we’d recommend forcing this to 16x due to the minimal performance hit and significant improvement to visual quality, particularly on large open levels.

Ambient Occlusion
Ambient Occlusion (AO) is a method of applying shading and more authentic lighting effects to models, even if they're not directly lit by a light source. BF3 supports both SSAO or soft shadow ambient occlusion, and the more modern horizon-based ambient occlusion (HBAO). While this has in the past been a largely unnoticeable effect that saps performance, BF3 makes significant use of ambient occlusion, especially in its urban environments. As the image below from Nvidia shows, at Low detail settings the windows are starkly lit, while at Medium detail with SSAO the lighting is softened and shaded. At High and Ultra settings, HBAO improves the effect, applying smooth and believable shadowing to the scene.

Battlefield 3 Performance Analysis
Ambient Occlusion in Battlefield 3 - Click to enlarge



Shiny PC Graphics in Battlefield 3

Below is a 5 part presentation that Johan Andersson, the Rendering Architect at DICE, made at GeForce LAN 6 which took place on the USS Hornet Aircraft Carrier, October 14th-16th. The presentation is titled "Shiny PC Graphics in Battlefield 3" and is focused on 5 Graphic Components: Objects, Lighting, Effects, Terrain, and Post-Processing.

I highly recommend anyone who is really interested in PC graphics and/or Battlefield 3 watch this hour long 5 part series. If you only watch one though, watch the last video. It correlates the best with my objective above and is only around 11 minutes.











As Fred Dutton summarized on his blog, this is what Andersson said in a nutshell:


Low = "lowest possible":
  • Similar visuals to consoles, lots of stuff disabled
  • Still contains the essential visuals not to be unfair in MP
  • Minimum: GeForce 8800 GT 512 MB RAM

Medium = "good performance":
  • Most important visual features enabled

High = "what the game is designed for":
  • All major features on except MSAA (if you have DX11 card)
  • Recommended: GeForce 560 TI or better

Ultra = "highest possible":
  • Intended mainly for multiple GPU machines for 60+fps
Want to know what you're missing out on if your machine can't handle Ultra mode? 

"Ultra sort of cranks things up further," explained Andersson.
"The shadows are a little bit sharper, the terrain is a little bit more tessellated. And also a big setting we have on Ultra is anti-aliasing. We use our multi-sampling there which is really memory-consuming and performance-consuming in general.
"It looks better but it's not a giant step in visual quality. So if you have a multi-GPU machine, like a dual 580 or a dual 560 for that matter, you can run Ultra at 60fps."







Darn it...

Also, one thing from this video that i learned that somewhat bothered me was the ability to show an in game FPS counter in the top right and also a performance overlay, as pictured below.

After opening the console by pressing the " ` " key which is just above the TAB key, you can type:
  • " Render.DrawFps 1 " to show the FPS counter
  • " Render.PerfOverlayVisible 1 " to show the performance overlay


I never knew this was even possible and this would have been perfect for my previous post. but oh well.

Wednesday, November 9, 2011

Then and Now: Graphics of Battlefield 3 Continued



Welcome back! I have been playing Battlefield 3 for the last few weeks and i have to say my expectations have been shattered. Battlefield 3 lived up to everything i thought it would be and more. Since i started this blog, my plans for it have been constantly changing based on my experiences, talking with Dr. Palmer, and a request from a commenter on my last post. Originally this post was going to be on other aspects of the game but i feel benchmarking Battlefield 3 in terms of its graphics is better suited.
 
 Since my last post i have since upgraded my video card in my computer to a Nvidia GTX570, a much better card to handle BF3. It worked in my favor because i now get to compare my old card to my new card, on low and high settings for my benchmark tests. This will hopefully show what having better, more up-to-date hardware, can do for your PC gaming. So for this post i will be...

  • Conducting 4 benchmark tests. Benchmarking Battlefield 3 with...
    • GTX275 on Lowest Settings
    • GTX275 on Highest Settings
    • GTX570 on Lowest Settings
    • GTX570 on Highest Settings
  • Giving a quick explanation of Anti-Aliasing, what it is, and what it does.
  • Conducting a few benchmarks that demonstrate the effects on frame rates when changing the Anti-Aliasing setting in Battlefield 3. (As inspired by nathangsxd in my last post. Thanks!






***Below are my results continued from my last post.***






NOTE: Before i start, I wanted to quickly go over something that was brought up to me in a comment from nathangsxd on my last post. He said, "are you sure that fraps maxes at at 60fps? I'm pretty sure that it can record higher frame rates than that...". This is a great comment that i should address. On the Fraps.com FAQ, it states, "You can choose the frame rate of the output movie from 25fps, 30fps, 50fps, 60fps, or a custom value up to 100fps." I didn't realize you could input a custom frame rate higher than 60fps when i started doing my tests.
So during all my tests, this is the reason the benchmark results are limited to 60fps. When i do the benchmarking without recording, my numbers are much higher, hitting well over 100fps in BF3 on the highest settings with my 570.
While this isn't representative of the computer’s ability to play the game, all my tests have this limitation, making them accurate in showing frame rate changes based on hardware and settings. Also remember that these tests are conducted while recording full 1080P video so the frame rates are lower than i get during normal gameplay.



Each section below shows the results of my 4 benchmark tests and an explanation of my results are below the images

Prediction
Finally getting to play the full retail game on my own computer, i am able to see how my PC handles it. When i had my GTX275, i couldn't play the game on the highest settings but could easily play it on the lowest. With my GTX570, i can play the game on the highest settings without any graphics lag or visual tearing.

I predict that my frame rates will be representative of my experiences, with my GTX275 having lower frame rates than my GTX570. The question is how will the 275 perform on lowest settings compared to the 570 on the highest settings. Look below to find out...






Battlefield 3: GTX275 on Lowest Settings






 
Results
 With my GTX275 on the lowest settings i was able to play the game without any issues. The average frame rate was about 42.4 frames per second, about 18 frames less than my results with Battlefield 2 on he highest settings with the same graphics card. The CPU temperature topped out around 42C and the graphics card topped out around 67C. 




Battlefield 3: GTX275 on Highest Settings





Results

 With my GTX275 on the highest settings the game was barely playable at all. I had a very difficult time flying the jet, as you can see in the video. The average frame rate was about 26.8 frames per second, much less than my results on the lowest settings with the same graphics card. The CPU temperature topped out around the same, 42C and the graphics card topped out a little higher around 74C.





Battlefield 3: GTX570 on Lowest Settings



 

Results
 With my GTX570 on the lowest settings the game performed perfectly, no issues at all. The average frame rate was about 42.7 frames per second, interestingly about the same as the GTX275 on the same settings. The CPU temperature topped out around 45C, 3 degrees higher than the 275 on both settings, and the graphics card topped out at 84C, much higher than the 275 with both settings. 




 
Battlefield 3: GTX570 on Highest Settings




Results
 With my GTX570 on the highest settings the game again performed perfectly, no issues at all and i have to say that the game looks absolutely incredible. The video doesn't do it justice. The average frame rate was about 41.7 frames per second, 1 frame less than the same card on the lowest settings. The CPU temperature topped out around 47C, 2 degrees higher than the same card on the lowest settings, and the graphics card topped out at 84C, the same as the low settings with this card. 




 
Summary of Results


 
Overall, my results matched my predictions, except for both the average frame rates of my GTX570. I expected them to be higher than that of my GTX275 on the lowest settings. What i think is happening with my results is fraps is limiting the performance of my computer due to the recording of the video while benchmarking. In hind-sight, this may have been a mistake on my part and i would have only done the benchmarking without the video recording. That would have yielded more accurate results and a better representation of my computers ability to play the game.  The tempetures for both my GPU and CPU during the 570 tests are higher than that of the 275 for two reasons:


1). With my 275, the cooler design is different. It vents out the back of the computer and is a closed system. My 570 on the other hand isan open system and vents into the computer itself, resulting in slightly higher temps for both my GPU and my CPU. 
2). I had my 275 fan set to 90% speed at all times, helping cool the card better than my 570, which had a fan speed that was automatically controlled by the computer based on temperature. 





Anti-Aliasing: Effects on Performance
 Like i said, i will be conducting a small, final test which was inspired from a comment on my last post by nathangsxd in which he said "Could you explain what settings were used in the actual game and maybe show comparisons of their results on performance? I know settings like anti-aliasing can be a pretty big performance hit when set to a high value". This inspired me to see the effects on the game when changing that setting. For those of you that don't know what Anti-Aliasing or AA is, here is a video that details it very nicely and it explains it better than i could:

 



 Below are 4 pictures. 2 show the settings being used, 1 is a screenshot with no AA, and 1 is a screenshot with AA. They have a yellow number in the top left which is showing the current FPS.



Like the video said, at my resolution it is almost impossible to see a difference  with AA on or off. But, with AA on i was getting 60 FPS and with it off i was getting 80 FPS. I increased my frame rate by 20FPS with a minimal visual impact. Thanks for the comment nathangsxd!