Saturday, 30 March 2013

Terrain modifications and water effects

So I managed to add many different water features across Jersey Island without any problems, including being able to correct any slight geo-referencing problems.  Water is flat though, so each of the water polygons needs to have the same elevation data for each of its vertices.

That obviously created a problem, in that the mesh I am using (being fairly low resolution) varied quite considerably from reality in terms of relevant spot heights for water features.  The practical effect introduced by FSX when it tried to render these water flattens was some wierd terrain issues.  Sometimes I got bumps, ridges, humps and depressions.

I embarked on a look a little deeper into terrain and how it is rendered within FSX, to be able to more easily fix these.  This post is a condensed summary of many things I've learned.

What I intended was to use a series of sloped flatten polygons to modify the wierd terrain around my water features so that they seamlessly blended into the background terrain.  I already knew that it was possible to do sloped flattens from within SBuilderX, as I've used them before when I played around with improved a motorway junction, but I hadn't used them to significantly alter general terrain.

Here are some key points and the lessons I've learned...

1. FSX generates terrain based on your slider settings and the detail contained within the terrain bgl.  So obviously, there can be wildly different settings across every possible users machines.  This makes it very difficult to create terrain modifications that will display without significant differences on other user's PCs.
  • Know how detailed the background terrain bgl you are intending to modify is, in terms of what LODs (level of detail) it contains information for.
  • Understand the relationship between LOD, QMID etc
    • There's a very good description in the thread at FSDeveloper here. (Post31)
2. Knowing the LOD you're working with allows you to determine what QMID grid size you will want to work with in SBX, and also let's you make a better decision as to what slider settings you want to use to create terrain mods.

3. Creating polygonal and triangular flattens in SBX is remarkably easy.  You just set the altitudes for the vertices and the type of polygon in the properties.

4. Knowing what altitudes to specify though is a little tougher!  You need to use some strategy to determine where the vertices of your polygons will go.  Usually selecting field boundaries or obvious points of reference seems to work well and once you've started somewhere the flow of triangles and polygons continues fairly logically and obviously.

5. You already know the altitudes for around half the vertices because they are the same height as the water feature.  So we need to know what the outlying vertice altitudes should be at the selected reference points which form the outside of the sloped polygons where they meet the existing terrain.

The last point foxed me for a while.  I tried to guestimate the correct altitudes then compile the bgl, copy it to the right location, re-start the flight and rebuild the scenery config to view the results.  It took ages and ages to get right and I rapidly lost any drive to do more.

That is, until I found a solution!  SBX can connect to FSX, which I knew already...

There is a useful utility called TCalcX which also connects to FSX via Simconnect and can read out the terrain altitude at any given point.  It is available here.

All you need do is pause FSX, put it in slew mode, then connect TCalcX (just click connect!) and lastly right-click on the vertice you are interested in using SBX and select 'fly aircraft here'.

TCalcX will then tell you what the current terrain height is at that point and you can copy and paste that to the vertice altitude in SBX to get a seamless fit.

For better results you can closely align the vertices in SBX to the selected QMID grid displayed there, which apparently reduces further any rendering defects through FSX.

With this in mind, it's now relatively easy to create sloped flatten polygons in SBX to modify the underlying terrain in pretty much any way you want.

An example is below.  I modified the terrain around this dam just north of the airfield so that it is displayed much more accurately.