Tech Support Blog

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Thursday, 9 August 2007

So Why Doesn't X-Plane Look Like This?

Posted on 07:19 by Unknown
Every now and then someone sends us this:

http://www.xtremesystems.org/forums/showthread.php?t=117500

The question is of course, why doesn't X-Plane look like that yet?

Now there's a lot of reasons why flight simulators don't look like first person shooters...you can definitely optimize any game content for a specific viewpoint -- X-Plane's lack of constraints on the camera position (you can put the camera quite literally ANYWHERE on the Earth at any time of day, atmospheric condition, and orientation) means that there are going to be views that don't look so hot. And the global scope of X-Plane means that we have to focus on quantity to a certain extent over quality. (If we made KSBD look totally awesome and didn't ship any state but California in global scenery, where would we be.)

I've been working lately on pixel shaders and lighting...when you look at those shots, the total integration of a number of great lighting effects is responsible for a lot of the look. But...I think there's a more fundamental issue that pixel shaders and carefully made content wouldn't address.

Simply put, X-Plane's LOD system isn't scalable enough.

In order to get images that look that good you need to put a huge amount of detail up close near the camera, where the user can see it, but not put that detail in the background. (Imagine if every tree in those scenes was done in the detail of the foreground - the polygon count would be unmanageable.)

But X-Plane's scenery SDK (the interface by which scenery content is specified to X-Plane, in other words, "the file formats") lacks really strong LOD capabilities.
  • The terrain mesh is fixed - you can use LOD to eliminate overlay details, but you can't actually simplify terrain.
  • The cost of LOD in objects is high enough to prohibit really gradual LOD. No morphing is provided.
  • Textures are mipmapped but loading is not variable, so our VRAM budget doesn't benefit from LOD and locality of textures in X-Plane space.
  • Generated geometry (roads, trees, etc.) don't have any LOD except "eliminate whole feature".
  • There is no far view of 3-d clouds.
  • Airport layouts are tessolated at only one complexity.
I could go on and on...the bottom line is, X-Plane's rendering model is very static.

Why did we do that? Well, it seemed like a good idea at the time. In particular, recalculating LOD is very expensive on the CPU and at the time we had only one core. Recalculating LOD would cost more in lost fps than it would benefit in offloading the GPU. So we went for static meshes that we could blast out to the card "real fast".

What you might not know about those screenshots is what kind of hardware it's running on:

http://www.gameklip.com/v/1606/

Yep...four cores, and overclocked by over a ghz. (I can only speculate that shortly after the clip ends the machine caught on fire. :-) In a multicore environment we can apply additional CPU resources to dynamically rebuild the environment to increase the "LOD range" (difference between the near and far view).

In fact, we already started to do that! In X-Plane 830 we modified the sim to build 3-d content (roads, forests, etc.) on a second core while flying, instantiating only the close ones. This saved RAM and improved the overall performance of the sim, and it increases our LOD range.

(Even if something isn't drawn, it has a cost just to exist - by saying that things that are really far away don't even exist we improve performance.)

As you can see from the above list, there's still a lot to do on the LOD front. But the scenery system is continually growing - new features for the various primitives and improvements to the engine will let us continue to improve sim efficiency.
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in file formats, inside x-plane, performance, scenery system | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Developer Hardware
    So...just how awesome is my main development machine? Not that awesome. Periodically users ask me what my setup is. Usually the user wants...
  • That's one biiiiig polygon
    Something I'm seeing now that WED is in beta: airport layouts with the entire taxiway structure made from one really complex polygon. I...
  • Caught With My Pants Down
    My friends say I have become a technological curmudgeon...whenever a new gadget or device or operating system comes out, I just grumble abo...
  • Who Am I?
    This week we've seen an increase in questions from new users, potential customers (both in the consumer and professional spaces) and thi...
  • Mirrored Normal Maps
    Normal maps in X-Plane 940 have a funny property: if you flip the normal map horizontally or vertically, the bumps change direction. Things...
  • What is a panel region?
    X-Plane 9 introduces a new OBJ feature: panel regions. The basic idea is this: In X-Plane 8 you could use the 2-d panel as a texture in you...
  • The Future of WED
    WED 1.0 has gone RC . The on ly change from beta 5 is that I have the latest manual changes from Tom (including Cormac's illustrations ...
  • The 3-d Panel Is Not Always Necessary
    There is no need to use the 3-d panel if you only want 3-d cockpit. That might be the most counter-intuitive statement in the entire univers...
  • OS X 10.6.3 Performance
    OS X 10.6.3 is out. Besides adding a bunch of OpenGL extensions*, it looks like vertex performance is improved on nVidia hardware. My quic...
  • Bad Alloc Crashes in 920 - Bad Timing
    I just received a series of reports today that certain converted scenery will cause X-Plane to crash with a "bad alloc" error. Ba...

Categories

  • absurdly cute
  • Air Traffic Control
  • aircraft
  • Android
  • animation
  • announce
  • cockpits
  • documentation
  • drivers
  • file formats
  • global scenery
  • Goofy Screenshots
  • hacks
  • hardware
  • hobbies
  • inside x-plane
  • installer
  • ipad
  • iphone
  • legal
  • localization
  • modeling
  • off topic
  • palm pre
  • panels
  • performance
  • plugins
  • political
  • scenery system
  • tools
  • X-Plane 10
  • XSquawkBox

Blog Archive

  • ►  2011 (12)
    • ►  February (1)
    • ►  January (11)
  • ►  2010 (111)
    • ►  December (4)
    • ►  November (4)
    • ►  October (10)
    • ►  September (9)
    • ►  August (12)
    • ►  July (8)
    • ►  June (4)
    • ►  May (13)
    • ►  April (13)
    • ►  March (11)
    • ►  February (12)
    • ►  January (11)
  • ►  2009 (130)
    • ►  December (16)
    • ►  November (11)
    • ►  October (6)
    • ►  September (16)
    • ►  August (12)
    • ►  July (11)
    • ►  June (9)
    • ►  May (5)
    • ►  April (10)
    • ►  March (9)
    • ►  February (9)
    • ►  January (16)
  • ►  2008 (147)
    • ►  December (18)
    • ►  November (10)
    • ►  October (7)
    • ►  September (11)
    • ►  August (15)
    • ►  July (9)
    • ►  June (14)
    • ►  May (9)
    • ►  April (14)
    • ►  March (13)
    • ►  February (6)
    • ►  January (21)
  • ▼  2007 (100)
    • ►  December (17)
    • ►  November (13)
    • ►  October (13)
    • ►  September (9)
    • ▼  August (17)
      • Why Don't the Cars Drive Backward?
      • Dual Core? Definitely
      • Image Formats and File Extensions
      • The case for DDS
      • What Doesn't Get Compressed?
      • Texture Compression Is Your Friend
      • Spankings
      • No more scenery in the Resources/Earth nav data fo...
      • WED beta 2
      • Split Beziers Part 3: A Workaround
      • Split Beziers Part 2: The X-Plane 860 Bug
      • Split Beziers Part 1: What's a Split Bezier
      • Another Confession - Exclusion Zones
      • So Why Doesn't X-Plane Look Like This?
      • That's one biiiiig polygon
      • Scenery Tools and Compatibility
      • WED Lives!!
    • ►  July (7)
    • ►  June (4)
    • ►  May (6)
    • ►  April (9)
    • ►  March (2)
    • ►  February (3)
Powered by Blogger.

About Me

Unknown
View my complete profile