At FlightSimCon 2016, in Hartford, CT, I had the chance to present with Misha Cajic. Our topic of choice was how to plan, start, and most importantly finish a scenery project. Most of our advice came from personal experience, mixed with seeing obstacles other flight simulation developers have had.
With the recent release of Prepar3D v3.3 brought a surprise change, not all FS2002 ground polygons worked anymore. Many had flashing textures, missing layers, or otherwise created issues. The official support for FS2002 ground polygons was dropped during the Prepar3D v2.x release period, and has been unsupported through the entire life of Prepar3D v3. However, up until now they simply worked as they did before with a few tweaks required.
What are FS2002 ground polygons?
A ground polygon is the common term for the 3D model that represents the runway, taxiway, apron, and other hard surfaces at an airport. They are not necessarily limited to these areas, some include grass, dirt paths, and more. They differ from other 3D models like buildings and aircraft because of their two dimensional nature. Ground polygons are comprised of several (or many) layers of polygons stacked on top of each other to form the end result. One of the best tutorials showing this layering is written by Bill Womack.
Graphical engines often struggle to properly render polygons that are in very close proximity, in the flight simulation world we most commonly recognize this as flashing textures, where two textures seem to fight to display at once. The common term for this is z-fighting. The initial solution for these issues was put out in the Flight Simulator 2002 SDK, where display layers could be defined and the simulator would display them in the correct order, with no z-fighting issues. This solution remained through FS2004, FSX, and Prepar3D v1. Ground polygons could also be developed through other methods, using newer techniques and avoiding these display layers. Often alternatives are used to create ground polygons with more advanced materials such as normal maps and specular maps, which are not supported by the FS2002 method.
Why is this an issue now?
In Prepar3D 2.x, a new addition to the SDK was made that allowed for making ground polygons outside of the FS2002 layering method. It was created to bring ground polygons up to date with the new DirectX 11 graphics pipeline. FS2002 ground polygons continued to work without issue, and often times were easier and better documented. Fs2002 ground polygons are now beginning to create issues in the latest version of Prepar3D and look to be on their way toward both official and now complete deprecation.
What are the steps for making a native Prepar3D ground polygon?
It is honestly, not very hard. If you have figured out the behemoth of making an FS2002 ground polygon, then the Prepar3D format is not much harder. The official documentation can be found in the Prepar3D SDK under Modeling Materials. Here is a step by step on implementing this, and retaining your FSX BGL exports at the end.
This guide assumes you have created ground polygons for FSX previously, and are either looking to convert an existing model or make a new one using native format.
Open your model in 3DS Max using the Prepar3D v2.x+ SDK.
Open the Material Editor and select one of the textures in your ground polygon model. Scroll down to the “Material Alpha Test” section and set the z-bias value. This value can be any integer between -1 and -50. -1 is the lowest display priority and -50 is the highest. Referring back to Bill Womack’s ground polygon tutorial, the base tiling asphalt layer would be -1, runway markings -2, cracks & details -3, and noise overlay -4.
Two additional material settings must be set also, under “Enhanced Parameters” set “No Z Write” and “No shadow”. These two settings flag the material to be rendered using the new z-bias settings.
Additional remarks on P3D ground polygons, I have found that ensuring all vertices are set to 0.0m on the z-axis in 3DS Max prevents flickering. Previously ModelConverterX flattened out models but this does not seem to work anymore.
Export as normal, and open the model in ModelConverterX’s ground polygon wizard. Check that your negative z-bias values are preserved in the “layer” column. I use the following settings under the options:
Slice polygons (100 meter)
Optimize reference point location
Prevent autogen exclusion
To export for FSX, I simply create a new Ground Polygon Wizard save file, and convert the negative offset values to positive values. Use normal FSX export settings and all of the extra material settings for Prepar3D will be stripped away upon export.
Other differences between FS2002 ground polygons and Prepar3d
Prepar3D ground polygons do not support seasonal variations like FS2002 ground polygons. To create these variations, like snow in winter, multiple ground polygons must be created. To switch the variants the ground polygon must be manually changed by the user outside the simulator, changed using a control panel interface outside the simulator, or changed dynamically with an external module.
In exchange for this loss you get more advanced material settings, better performance and lower memory usage, and have a better guarantee that your scenery will continue to work as Prepar3D progresses.
Comments and questions
If you have further questions or want a point clarified please reach out and email me