Jump to content

Sign in to follow this  
JerryG

Comments about the blurries from an ACES developer

Recommended Posts

There has been much concern about the display of lower-than-normal resolution textures on the terrain in Flight Simulator, a condition often called "the blurries". I am a software engineer on the ACES team at Microsoft and my primary area of responsibility is the terrain engine, so I'd like to give my take on the "the blurries." The views expressed in this posting are my own and don't necessarily reflect those of Microsoft.During the development of Flight Simulator X (FSX), we observed the following conditions that could cause the blurries:1. Inadequate CPU resources being allocated to the terrain texture loader, causing high-resolution textures to load very slowly, leaving low-resolution textures on the terrain.2. Exhaustion of video memory, causing high-resolution mipmaps to be dropped in favor of lower-resolution mipmaps.3. Poor bilinear, trilinear, or anisotropic filtering parameters, causing overaggressive mipping of textures viewed at oblique angles, such as distant terrain near the horizon.Now I'd like to address each one of these problems in turn.1. Inadequate CPU resources for the terrain texture loader. The symptom of this problem is increasingly blurry terrain textures the further and faster you fly. When you slow down or stop, high-resolution textures eventually appear after some delay. This is probably the more traditional and most frequent cause of the blurries people have seen in Combat Flight Simulator 2 (CFS2), Flight Simulator 2002 (FS8), and Flight Simulator 2004 (FS9). This problem was caused by the scheduler for background tasks in the FS engine putting too much emphasis on maintaining high and even frame rates and not enough emphasis on preventing a backlog of background work, such as loading terrain textures.To reduce this cause of the blurries, we reworked how Flight Simulator's scheduler prioritizes background tasks in FSX. Now much more CPU time is devoted to loading scenery data, including terrain textures, at the expense of somewhat lower frame rates. These changes occurred after the beta and demo builds went public, so you'll have to wait until the final version of FSX becomes available before seeing the improvement. In my opinion, this change has mostly solved this cause of the blurries, although the scenery loader can still get behind at extremely low frame rates (less than 10 fps) or at very large airspeeds (faster than 600 knots). There are several ways to adjust how much CPU time FS devotes to loading scenery and textures. The easiest way is to set the target frame rate slider to a value that your machine can consistently achieve. The lower you set the slider, the more CPU time is diverted from rendering to loading data. Another thing you can do is to modify the following variable in FSX.CFG:[MAIN]FIBER_FRAME_TIME_FRACTION=0.33This variable determines the amount of CPU time given to loading scenery data as a fraction of the time spent rendering. For example, the default value of 0.33 means that for every 3 milliseconds spent rendering, FS will give 1 millisecond to the scenery loader. If necessary, you can use a larger value to devote more time to loading. Or, if you don't have a problem with the blurries and you want slightly higher frame rates, then you can use a smaller value. Again, this variable is only available in the final release version of FSX and is not available in the beta or demo.2. Exhaustion of video memory.I recently posted about this in another thread on AvSim entitled "Blurries still there :(". If a particular scene requires more video memory than your video card has available, the Flight Simulator graphics engine has no choice but to remove some of the highest resolution mipmaps from video memory to save space, leaving only lower-resolution mipmaps for rendering. This usually appears as a sudden change. One moment, all the textures in the scene are sharp and full-resolution and suddenly everything becomes more blurry. It can also get progressively worse over several frames as FS works to fit more textures into video memory.There are several ways to combat this problem. a) If you are running at a very high screen resolution, lower it slightly to free up additional video memory. :( Some video cards use lots of video memory for anti-aliasing, so try turning it off. c) Turn down the setting of the "Global Max Texture Size" slider. d) Lower the setting of the AutoGen and scenery complexity sliders. e) Reduce the setting of the terrain texture resolution slider. f) Turn down the amount of AI traffic.3. Poor filtering settings.Unfortunately, not all video cards and drivers respond the same way when Flight Simulator interacts with Direct3D to set up bilinear, trilinear, or anisotropic filtering. This means that in spite of our best efforts, the texture filter on your video card may not be set up to perform optimally. This can result in textures looking excessively blurry when viewed at an oblique angle. To fix this, try each of the different filter modes (bilinear, trilinear, anisotropic) to see if any of them perform better. If not, then try overriding Flight Simulator's filter settings with the settings in your display driver. You can do this with ATI and NVIDIA drivers by clicking on the ATI or NVIDIA icon in the tray next to the clock on your desktop and making the appropriate selections.I hope everybody finds this information useful.Cheers,Adam

Share this post


Link to post
Share on other sites
Guest dpc

Adam, Thanks for the great info. Much appreciated when developers come in to the forums and let folks know what's going on.Dave

Share this post


Link to post
Share on other sites

Thanks Adam.I am sure that this post might help many people around the world after the release of FSX.

Share this post


Link to post
Share on other sites

Thanks again for the great info Adam. Hopefully this will help many set up FSX to their satisfaction when we get the retail version.

Share this post


Link to post
Share on other sites
Guest tango_d

Hey Adam,Great info - in the 'true spirit' of working / co-operating with the community, this will really help everyone for sure !!:-beerchug STICKY please - 'Tips & Tricks forum - FSX' ThanksEddyNorth Wales - UK

Share this post


Link to post
Share on other sites

Thank you Adam, that is some great info, now I have a better understanding, of how things work for flight simulator.

Share this post


Link to post
Share on other sites

First time that we see a developer posting in these columns! Well done! This must be appreciated and supported. Thanks again Adam for explaining to us the workings of FSX. Now I am really looking forward for the product to reside on my PC.Stelios

Share this post


Link to post
Share on other sites

Hmm. It looks like the message editor eats any text in square braces. In my original post, the FIBER_FRAME_TIME_FRACTION variable should be in the MAIN section of FSX.CFG. Like so:[MAIN]FIBER_FRAME_TIME_FRACTION=0.33Sorry about that,Adam

Share this post


Link to post
Share on other sites

Adam,Thanks for the posting.For everyone reading, this is just a portion of the presentation Adam gave at the AVSIM conference, and for those that were unable to attend, lots of other useful information on scenery, terrain, and textures was presented by Adam.I suggest that for the next conference, AVSIM & Microsoft explore the possiblity of developing a podcast or other means for recording the presentations and presenting them on the internet for the benefit of developers and users that are not able to attend events (within legal limitations, copyrights, etc.).Bruce

Share this post


Link to post
Share on other sites
Guest JohnEGPF

HI AdamThanks for your post, very informative read.It would seem the way texture updating is handled has changed a lot from FS9.After downloading the demo I was amazed at the difference capping frame rate made to seeing sharp clear ground textures in the FSX demo.In FS9 ,especially in photoreal scenery as with UK VFR scenery as an example, flying with unlimited framerate made huge difference with regard to ground textures keeping up with the aircraft.Since trying the demo the difference the new high res textures bring to the flight sim experience is night and day.As soon as I saw the 1m texure( after lowering the water textures) I knew there is no going back.:)John

Share this post


Link to post
Share on other sites

Thanks Adam. Much appreciated.I am just wondering..if Video card manufactures would be able to use the RAM.Like If I have 4 Gigs or 8 Gigs and the OS and FSX/FS9 uses only 1.4 gigs.. could the Video Card ever use the remaining RAM? Maybe, it may not be as fast as the memory in the Video card. But it would beat going to the HD. I know its not a Fsim issue.. I was just musing. :)DX10 cards need to come with atleast 1Gig.Manny

Share this post


Link to post
Share on other sites

Adam,Thanks for making the effort to explain this. May I make a suggestion? I believe that Adrian Woods is compiling an FAQ for FSX on his blog. Would you kindly submit your post to Adrian so it can be included on his FAQ? This information is very valuable, and I would hate to see it get buried here in the forum.Best regards,Owen

Share this post


Link to post
Share on other sites
Guest abulaafia

Adam, with your permission I'd like to include that information in my upcoming FSX guide. I'll send you a copy before publication for your review. Thanks for all the professional explanations.

Share this post


Link to post
Share on other sites
Guest CWD

>c) Turn down the setting of the "Global Max Texture Size" slider.Here's something that really ought to be changed in FSX in my opinion. The "global max texture size" slider controls the aircraft textures as well as the scenery. You can't turn it down for better performance without also degrading the textures of your plane, it seems. You should be able to control the max scenery texture size independently of the aircraft.

Share this post


Link to post
Share on other sites

Bruce,Good idea. The plan is to put my presentation on fsinsider.com in the next few weeks. One of the reasons for the delay is that I'm a slacker on vacation right now. :-)-Adam

Share this post


Link to post
Share on other sites

Manny,Applications can set up some system memory as "AGP memory" that can be shared by the CPU and the GPU, but I think it's usually a much smaller amount than 1 GB. Vista/DX10 is supposed to have a much better GPU memory manager, but we have yet to see it in action. We'll know more in the next few months hopefully.Cheers,Adam

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...