- Messages
- 412
- Country
Since there aren't many terrain specific changes between FSX and Flight, I'll just go over the differences here. Terrain is the area I know the least about so some of this is an educated guess.
DEM:
Everything is the same as FSX as far as I know and you can even drop DEM from FSX straight into Flight with no modification.
Land Class:
Flight still uses worldlc.bgl for mapping what areas of the world use a specific land class, however this file is now using a 16 bit per pixel format instead of 8 so more land classes are possible. For now you can use the ContentConverter from the toolkit to convert FSX version to Flight using an undocumented option:
ContentConverter test /i:<input bgl> /o:<output bgl>
Water Class:
This is the same as FSX as far as I know.
LCLookup:
This file has changed in Flight to include the stuff that used to be in terrain.cfg (terrain.cfg is gone now). One of these files is specified for each scenery.cfg generally, and support falling back to another lclookup.bgl. I added support for compiling an xml file into an lclookup bgl for Flight:
SceneryCompiler /i:<Input xml path> /o:<output lclookup bgl path>
You can also convert the FSX lclookup and terrain.cfg to the Flight format using ContentConverter:
ContentConverter lclookup /c:<terrain.cfg path> /i:<input bgl> /o:<output bgl>
Vector:
In Flight we added a bezier spline vector type which is used for the new Vector Scenery system (bridges, elevated highways, marinas, rock walls, edges of wharfs, etc). Other than that the format should be the same. I believe Orion and Brandon have been able to just take vector data from FSX and drop it into Flight, but I'm not sure.
Aerial:
The raster layers in the aerial\photo-real bgls was changed to 32 bit per pixel instead of 16. Support for a detail lookup map was also added (see below for details).
Light Maps:
Light maps were changed from "night" maps in FSX to a more standard version of a light map, which is basically an additive light that is added to the lighting calculation in the shader. They are generally lower res and don't have any specific detail of the surface they are applied to. This allows dynamic lights to light up the terrain at night without getting the grey texture problem in FSX.
Detail textures:
Flight added support for detail textures to the terrain. There is a shared texture atlas that has 256 different slots for tiling detail textures. These are blended into the base terrain texture for the high LODs. To support this, Flight added a detail lookup texture which is an 8 bit per pixel indexed texture that specifies which of the 256 slots to use for each square meter of a terrain texture (both LC and aerial)
Cliff textures:
Flight added the notion of cliff textures which are textures that are applied to near-vertical surfaces instead of stretching the default LC or aerial over it. There are a bunch of settings in lclookup to contorl for each land class which cliff texture is applied, at what angles it is applied and at what scale.
Autogen:
The format of the agn files has changed slightly for Flight. Mostly by removing of features that are no longer supported (row houses are gone, autogen 1 buildings have been repalced with "procedural buildings"). Other than that the agn are the same. The autogen annotation repositories are still functionally the same design as before, but the format have changed quite a bit. Most of the changes are to facilitate sharing functionality across the different autogen types, and support for seasonalization across all autogen and scenery.
The autogen annotation repositories now ultimately reference a material variation instead of an MDL. This is the same for vegetation as well. All vegetation shares the same model which consists of three planes similar to FSX, but with a much improved shader. The model is 1m x 1m x 1m and is scaled to the proper size based on the instance data. The vegetation uses a texture atlas of the various trees and bushes, and the instance data also contains an index of the texture slot to use as well as some other data. The procedural buildings replace all forms of autogen 1\generic building from FSX. I think in the end I combined 3-4 different building rendering systems into a single system with the functionality of all of them (but much better performance). The building geometry is specified in .model files in a specific structure. The building is divided into 5 parts (basement, bottom floor, mid floor(s), top floor, roof). These sections are annotated via the vertex color of the geometry, and scaled to fill a 1m x 1m x 1m cube in the mode. In the shader these sections are rotated, positioned, sized, textured, and colored based on the properties in the instance data. This allows a massive amount of varition in the look of the buildings, but still allows all buildings of a similar shape to be rendered in a single draw call. I can go into more detail of the creation of new autogen assets in an autogen specific post. For most of the scenery stuff you are doing the built in content is probably good enough to start off with.
Scenery Objects \ Procedural Buildings:
This is mostly the same as FSX, although LibraryObjects reference a material variation or seasonal variation id instead of a .mdl. Some types of SceneryObjects have bene removed (effects, windsocks,m beacons). You should be able to accomplish those via regular scenery objects with animations. LIbraryObjects can also point to material variations for autogen vegetation so it is possible to place autogen as scenery, and they get rendered with the rest of the autogen (ie. very fast). There is a new type of palcement for the procedural buildings that functions in the same was as autogen palcements, so they also get rendered very fast. In Flight the placements are stored on the level 15 QMID (1km) in the obx instead of 11 (16km) in order to match the autogen, so OBX from FSX won't work in Flight as is. You can use the SceneryCompiler.exe in the toolkit to convert placement xml to obx bgl. The format of the xml is mostly the same as FSX with some differences:
LibraryObjects:
- Scale must be 1.0 (no scaling in Flight). If the scale is not 1.0 Flight will fail to load the file.
- Name references a .materialVar or .seasonVar
Effect:
- Are not supported at the root level, but may be attached to the attachpoint of a LibraryObject
Windsock:
- Gone. Replaced with animating LibraryObject
Beacon:
- Gone. Replaced with animating LibraryObject
ProceduralBuilding example (addition):
DEM:
Everything is the same as FSX as far as I know and you can even drop DEM from FSX straight into Flight with no modification.
Land Class:
Flight still uses worldlc.bgl for mapping what areas of the world use a specific land class, however this file is now using a 16 bit per pixel format instead of 8 so more land classes are possible. For now you can use the ContentConverter from the toolkit to convert FSX version to Flight using an undocumented option:
ContentConverter test /i:<input bgl> /o:<output bgl>
Water Class:
This is the same as FSX as far as I know.
LCLookup:
This file has changed in Flight to include the stuff that used to be in terrain.cfg (terrain.cfg is gone now). One of these files is specified for each scenery.cfg generally, and support falling back to another lclookup.bgl. I added support for compiling an xml file into an lclookup bgl for Flight:
SceneryCompiler /i:<Input xml path> /o:<output lclookup bgl path>
You can also convert the FSX lclookup and terrain.cfg to the Flight format using ContentConverter:
ContentConverter lclookup /c:<terrain.cfg path> /i:<input bgl> /o:<output bgl>
Vector:
In Flight we added a bezier spline vector type which is used for the new Vector Scenery system (bridges, elevated highways, marinas, rock walls, edges of wharfs, etc). Other than that the format should be the same. I believe Orion and Brandon have been able to just take vector data from FSX and drop it into Flight, but I'm not sure.
Aerial:
The raster layers in the aerial\photo-real bgls was changed to 32 bit per pixel instead of 16. Support for a detail lookup map was also added (see below for details).
Light Maps:
Light maps were changed from "night" maps in FSX to a more standard version of a light map, which is basically an additive light that is added to the lighting calculation in the shader. They are generally lower res and don't have any specific detail of the surface they are applied to. This allows dynamic lights to light up the terrain at night without getting the grey texture problem in FSX.
Detail textures:
Flight added support for detail textures to the terrain. There is a shared texture atlas that has 256 different slots for tiling detail textures. These are blended into the base terrain texture for the high LODs. To support this, Flight added a detail lookup texture which is an 8 bit per pixel indexed texture that specifies which of the 256 slots to use for each square meter of a terrain texture (both LC and aerial)
Cliff textures:
Flight added the notion of cliff textures which are textures that are applied to near-vertical surfaces instead of stretching the default LC or aerial over it. There are a bunch of settings in lclookup to contorl for each land class which cliff texture is applied, at what angles it is applied and at what scale.
Autogen:
The format of the agn files has changed slightly for Flight. Mostly by removing of features that are no longer supported (row houses are gone, autogen 1 buildings have been repalced with "procedural buildings"). Other than that the agn are the same. The autogen annotation repositories are still functionally the same design as before, but the format have changed quite a bit. Most of the changes are to facilitate sharing functionality across the different autogen types, and support for seasonalization across all autogen and scenery.
The autogen annotation repositories now ultimately reference a material variation instead of an MDL. This is the same for vegetation as well. All vegetation shares the same model which consists of three planes similar to FSX, but with a much improved shader. The model is 1m x 1m x 1m and is scaled to the proper size based on the instance data. The vegetation uses a texture atlas of the various trees and bushes, and the instance data also contains an index of the texture slot to use as well as some other data. The procedural buildings replace all forms of autogen 1\generic building from FSX. I think in the end I combined 3-4 different building rendering systems into a single system with the functionality of all of them (but much better performance). The building geometry is specified in .model files in a specific structure. The building is divided into 5 parts (basement, bottom floor, mid floor(s), top floor, roof). These sections are annotated via the vertex color of the geometry, and scaled to fill a 1m x 1m x 1m cube in the mode. In the shader these sections are rotated, positioned, sized, textured, and colored based on the properties in the instance data. This allows a massive amount of varition in the look of the buildings, but still allows all buildings of a similar shape to be rendered in a single draw call. I can go into more detail of the creation of new autogen assets in an autogen specific post. For most of the scenery stuff you are doing the built in content is probably good enough to start off with.
Scenery Objects \ Procedural Buildings:
This is mostly the same as FSX, although LibraryObjects reference a material variation or seasonal variation id instead of a .mdl. Some types of SceneryObjects have bene removed (effects, windsocks,m beacons). You should be able to accomplish those via regular scenery objects with animations. LIbraryObjects can also point to material variations for autogen vegetation so it is possible to place autogen as scenery, and they get rendered with the rest of the autogen (ie. very fast). There is a new type of palcement for the procedural buildings that functions in the same was as autogen palcements, so they also get rendered very fast. In Flight the placements are stored on the level 15 QMID (1km) in the obx instead of 11 (16km) in order to match the autogen, so OBX from FSX won't work in Flight as is. You can use the SceneryCompiler.exe in the toolkit to convert placement xml to obx bgl. The format of the xml is mostly the same as FSX with some differences:
LibraryObjects:
- Scale must be 1.0 (no scaling in Flight). If the scale is not 1.0 Flight will fail to load the file.
- Name references a .materialVar or .seasonVar
Effect:
- Are not supported at the root level, but may be attached to the attachpoint of a LibraryObject
Windsock:
- Gone. Replaced with animating LibraryObject
Beacon:
- Gone. Replaced with animating LibraryObject
ProceduralBuilding example (addition):
Code:
<SceneryObject instanceId="{62092C37-A390-4418-9DA4-502FFEEC2B98}" lat="35.97114167" lon="-114.85872222" alt="0.00000000F" altitudeIsAgl="TRUE" pitch="0.00000000" bank="0.00000000" heading="0.00000000" imageComplexity="VERY_DENSE" >
<ProceduralBuilding materialVariation="{97B1B8FF-76E0-43BA-91FD-ACC91F0A0E80}" colorVariation="-1" sizeX="50.00000000" sizeZ="50.00000000" sectionHeight0="3.25000000" sectionHeight1="0.00000000" sectionHeight2="3.25000000" sectionHeight3="-3.25000000" textureSlotIndex0="-1" textureSlotIndex1="-1" textureSlotIndex2="-1" textureSlotIndex3="-1" />
</SceneryObject>