Where do I begin?
Well, it’s a hard problem to solve, but you probably figured that out since we haven’t tried to create sloped runways yet. There are a couple of considerations that make it hard. Number one, we ship the world…all of it…all 24,000 airports that we get data on. That’s a lot of data! Number two, the data we get isn’t so great and comes from a bunch of different sources that don’t always agree with each other. The two data sets most important to this issue are DEM (Digital Elevation Model) and AFD (Airport and Facility Database).
Let’s take DEM. It’s a regular grid of elevation data at varying levels of granularity, based on the source. In Flight Simulator our DEM resolutions varies from 30m to 1km. We use different sources to control data size and quality. (Many people supposedly ‘in the know’ would suggest we use the new SRTM data obtained by the Space Shuttle for everything. Unfortunately this data has lots of problems due primarily to oblique radar imaging.)
Now let’s consider the AFD data. We get data from three primary sources: Jeppesen, the FAA and NGIA (formally NIMA; through its DAFIF product). What data we get varies based on the source, as does its quality. For instance, for many airports we only get a single elevation for the ARP (airport reference point). On the other hand, for some airports we get precise latitude, longitude and altitude data for each end of each runway—but that’s as good as it gets.
The first major hurdle is getting these data to play nice with each other. It is exceedingly rare that the DEM and AFD data agree precisely. This could be due to differences in the survey timing, technique or datum used. It could also be that ARP is not very close to the runways. And some airport data is just plain wrong. This is particularly true in the
But let’s say for a minute that you had perfect data (or were willing to take creative license—i.e., hand edit it—in order to make this work. The next struggle is with the complexity of the generated terrain mesh. Note: If you’ve taken computer graphics 101 you can skip ahead.)
Almost all 3D images displayed on a computer are created using massive numbers of connected triangles (a.ka. polygons). The more triangles you have the smoother the generated image will appear. (Those of you who indulged in role playing games with multifaceted dice as kids will appreciate this. A 20-sided die looks much ‘rounder’ than a 4-sided one.) However, the more triangles you have the more work the computer has to do. So at some point replicating a nicely sloped surface would require *a lot* of triangles.
At this point I can hear you saying, “So what? With today’s beefy GPUs that should be no problem.” Perhaps, but pure mesh complexity is only half the issue. The other half has to do with how you subdivide the terrain and airport polygons.
To illustrate, consider the simplest of cases: a single runway contained completely within a single DEM cell. If you’re not familiar with how DEM works, consider a square, 30 meters on each side. Each corner of the square has a value indicating its height relative to a fixed point (sea level in most cases). If those four values are different the surface of the square will be sloped. So far, so good. Plop a runway somewhere on the surface and you’re good to go. (Well, not quite. What if the data—which is usually full of errors, remember—produces a severe slope? Good luck taxiing on that!)
Now, expand the surface to two collinear squares with the runway spanning the common edge. You now have 6 elevations values. What does the runway look like? Depending on the elevation differences it would not be pretty—probably something like two boards laid over a sawhorse— but you could add more triangles to smooth it out. But now add a crossing runway and some taxiways—and expand the overall area to a few hundred grid cells. Are you getting the picture? You’ll end up with something that—worse case—looks like the world’s largest skateboard park. In practice you would hope the data wasn’t *that* bad but consider all of this complex segmentation has to be done at runtime. We could cheat and pre-compute everything but what would happen if someone swapped out the DEM?
That’s the bulk of the problem (at least as I see it, but I’m not the terrain developer and he might have a different spin). Things like getting aircraft to react correctly already basically work now. (What, you mean you’ve never gone off-roading in the Cessna?) The last thing I’ll mention (it was also mentioned in the thread) is the problem of getting buildings and other objects to stay grounded. If you’ve ever seen a 3D object on a slope (check out
So to summarize, we’d also dearly like to have sloped runways and we have some ideas how to make it work. We just need to find time to do it. (Then again, it has been a long time since we shipped FS2004.)