AGN (FSX): Difference between revisions

From FSDeveloper Wiki
Jump to navigationJump to search
m (Reverted edits by MichaelCox (talk) to last revision by BASys)
 
(20 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{:Ambox-Content-WIP}}
{{Infobox-Applicable-FSVersion
{{Infobox-Applicable-FSVersion
| FSXI = false
| FSXI = false
Line 11: Line 9:
}}
}}


This document describes the FSX format for autogen (AGN) files. This description is not yet complete, so feel free to add more information if you have any.
This document describes the FSX format for autogen (AGN) files.


== Sections ==
== Sections ==
Line 37: Line 35:


Valid values for percentage are from 0x00 (0%) to 0x14 (100%).
Valid values for percentage are from 0x00 (0%) to 0x14 (100%).
=== GBTE ===
This section contains the name of the texture to use for the generic buidlings. The texture name is stored without extension and the length seems to be a multiple of 4.
=== RHTE ===
This section contains the name of the texture to use for the row houses. The texture name is stored without extension and the length seems to be a multiple of 4.


=== GBLD ===
=== GBLD ===


Contains building information. This section contains one or more GBLR sections.
Contains building information. This section contains one or more [[#GBLR|GBLR]] sections.


==== GBLR ====
==== GBLR ====
Line 61: Line 67:
=== PREG ===
=== PREG ===


Contains vegatation information. This section contains one or more PRDE sections.
Contains vegatation information. This section contains one or more [[#PRDE|PRDE]] sections.


==== PRDE ====
==== PRDE ====
Line 78: Line 84:
   single y
   single y


The x and y coordinates are given as offset from the top left of the LOD13 square (range 0 till 1).
The x and y coordinates are given as offset from the top left of the LOD13 square (range 0 till 1). The first and last vertex of the polygon have to be the same (so the polygon has to be closed).


=== VGRG ===
=== VGRG ===


Contains information about pre-FSX style rectangular vegetation regions. This section contains one or more VGRE sections.
Contains information about FSX style rectangular vegetation regions. This section contains one or more [[#VGRE|VGRE]] sections. The type of vegetation is defined by a GUID.


==== VGRE ====
==== VGRE ====


   GUID vegetation type
   GUID vegetation type
For each rectangle:
  float X position of first point
  float Y position of first point
  float X offset to second point
  float Y offset to second point
The x and y coordinates are given as offset from the middle of the LOD13 square (range -0.5 till 0.5).
=== VGRD ===
Contains information about the FS2004 vegetation definition.
  int vegetation class 1
  int vegetation class 2
  int percentage vegetation class 1 (0-100)
  int maximum density
  float minimum height class 1
  float maximum height class 1
  float minimum height class 2
  float maximum height class 2
=== VGRO ===
Contains information about FS2004 style rectangular vegetation regions. The type of vegetation is defined in the [[#VGRD|VGRD]] section.


For each rectangle:
For each rectangle:
Line 114: Line 146:
=== AGN2 ===
=== AGN2 ===


Contains information about library objects. Contains one or more A2GE sections.
Contains information about library objects. Contains one or more [[#A2GE|A2GE]] sections.


==== A2GE ====
==== A2GE ====
Line 128: Line 160:
   float X direction to second point
   float X direction to second point
   float Y direction to second point
   float Y direction to second point
Optional:
   float X offset to third point
   float X offset to third point
   float Y offset to third point  
   float Y offset to third point  
Line 135: Line 170:
=== PBLD===
=== PBLD===


Contains information about polygon buildings. Contains one or more PBDE sections.
Contains information about polygon buildings. Contains one or more [[#PBDE|PBDE]] sections.


==== PBDE====
==== PBDE====
Line 154: Line 189:
The x and y coordinates are given as offset from the top left of the LOD13 square (range 0 till 1).
The x and y coordinates are given as offset from the top left of the LOD13 square (range 0 till 1).


== LOD 13 Geographical Location  ==
The geographical location of the LOD13 square associated with the AGN file is encoded in the file name.<br/>
The file name is in the format : xxxxxan.agn, where the xxxxx part, with a length of 15, is made of the following digits: 0,1,2 and 3
=== Encoding the LOD13 geographical location in the file name ===
Let's say that the upperleft position of the LOD13 square is:<br/>
Latitude: N45.51<br/>
Longitude: W73.38<br/>
<br/><br/>
This corresponds to the QMID square U=7278, V=4049, Level =15  (Remember that QMID Level = LOD Level + 2)<br/>
We then convert the U and V values in binary format:<br/>
<pre>
U = 7278 = 1110001101110
V = 4049 =  111111010001
</pre>
However, for the V value, we replace the '1' with '2'<br/>
<pre>
So V = 4049 = 222222020002
</pre>
Finally we add U + V with their respective binary format
<pre>
U: 1110001101110
+
V:  222222020002
=
  1332223121112
</pre>
If needed, we left-pad the result with zeroes to have a length of 15
<pre>
001332223121112
</pre>
So the resulting AGN file will be : 001332223121112an.agn.<br><br>
The reason the length is 15 is because the maximun U value for LOD13 is 24575 which has a binary value of 101111111111111  (15 characters)
=== Decoding the LOD13 geographical location from the file name ===
Let's say the file name is 001332223121112an.agn<br/>
We extract the numerical part to compute the U and V values (QMID Level is always 15)<br/>
To get the U value, we replace the '3' with '1' and '2' with '0'<br/>
To get the V value, we replace the '1' with '0' and the '3' and '2' with '1'<br/><br/>
<pre>
  001332223121112
U: 001110001101110b = 7278d
V: 000111111010001b = 4049d
</pre>
So the agn file corresponds to the QMID square (u=7278, v =4049, l=15)<br/>
Once we have the u and v values, the upperleft coordinates of the square are:<br/>
<pre>
LongitudeDeg = u * 0.0146484375 - 180
LatitudeDeg = 90 - v * 0.010986328125
</pre>
[[Category:Terrain Design]]
[[Category:Terrain Design]]
[[Category:File_Formats]]
[[Category:File_Formats]]
[[Category:Autogen]]

Latest revision as of 07:39, 4 March 2016

This document describes the FSX format for autogen (AGN) files.

Sections

The AGN file uses the RIFF format (like MDL files), this means that the file consists of different sections. Each section starts with a four character label, followed by the length of the section in bytes (this length without the header itself).

The main RIFF section itself has one additional parameter, this is a four character string that indicates the type of RIFF AGN file. For an FSX AGN file the value should always be AGNX.

The following subsection show more details about the content of these different sections.

VERS

Contains versions information about the AGN file.

 int32 version (normally 1091777331)

GBDD

Contains information about autogen generic buildings

 int32 percentage of 1 and 2 floor buildings (normally 10)
 int32 percentage of 3 to 5 floor buildings (normally 10)
 int32 percentage of 6 to 8 floor buildings (normally 10)
 int32 percentage of 9 to 12 floor buildings (normally 10)

Valid values for percentage are from 0x00 (0%) to 0x14 (100%).

GBTE

This section contains the name of the texture to use for the generic buidlings. The texture name is stored without extension and the length seems to be a multiple of 4.

RHTE

This section contains the name of the texture to use for the row houses. The texture name is stored without extension and the length seems to be a multiple of 4.

GBLD

Contains building information. This section contains one or more GBLR sections.

GBLR

Contains information about Generic Buildings.

 GUID roof type (will use default roofs, if 0)

For each Generic Building:

 float X position of first point 
 float Y position of first point
 float X direction to the second point
 float Y direction to the second point
 float X offset of third point
 float Y offset of third point 

The x and y coordinates are given as offset from the middle of the LOD13 square (range -0.5 till 0.5).

PREG

Contains vegatation information. This section contains one or more PRDE sections.

PRDE

For vegatation polygon. Contains:

 GUID vegatation type

For each polygon:

 int number of vertices

For each vertex:

 single x
 single y

The x and y coordinates are given as offset from the top left of the LOD13 square (range 0 till 1). The first and last vertex of the polygon have to be the same (so the polygon has to be closed).

VGRG

Contains information about FSX style rectangular vegetation regions. This section contains one or more VGRE sections. The type of vegetation is defined by a GUID.

VGRE

 GUID vegetation type

For each rectangle:

 float X position of first point
 float Y position of first point
 float X offset to second point
 float Y offset to second point 

The x and y coordinates are given as offset from the middle of the LOD13 square (range -0.5 till 0.5).

VGRD

Contains information about the FS2004 vegetation definition.

 int vegetation class 1
 int vegetation class 2
 int percentage vegetation class 1 (0-100)
 int maximum density
 float minimum height class 1
 float maximum height class 1
 float minimum height class 2
 float maximum height class 2

VGRO

Contains information about FS2004 style rectangular vegetation regions. The type of vegetation is defined in the VGRD section.

For each rectangle:

 float X position of first point
 float Y position of first point
 float X offset to second point
 float Y offset to second point 

The x and y coordinates are given as offset from the middle of the LOD13 square (range -0.5 till 0.5).

ROWH

Contains information about row houses. The amount of houses is the length of the section divided by 24.

For each row house:

 float X position of first point
 float Y position of first point
 float X direction to second point
 float Y direction to second point
 float X offset to third point
 float Y offset to third point 

The x and y coordinates are given as offset from the middle of the LOD13 square (range -0.5 till 0.5).

AGN2

Contains information about library objects. Contains one or more A2GE sections.

A2GE

Contains information about library objects.

 GUID library object guid

For each library object:

 float X position of first point
 float Y position of first point
 float X direction to second point
 float Y direction to second point

Optional:

 float X offset to third point
 float Y offset to third point 

The x and y coordinates are given as offset from the middle of the LOD13 square (range -0.5 till 0.5). The coordinates describe the bounding box, the actual library object is placed in the center of it.

PBLD

Contains information about polygon buildings. Contains one or more PBDE sections.

PBDE

 GUID building type

For each building:

 int32 1 (seems always to be 1)
 float extrusion width
 int32 number of footprint vertices

For each vertex:

 single x
 single y

The x and y coordinates are given as offset from the top left of the LOD13 square (range 0 till 1).


LOD 13 Geographical Location

The geographical location of the LOD13 square associated with the AGN file is encoded in the file name.
The file name is in the format : xxxxxan.agn, where the xxxxx part, with a length of 15, is made of the following digits: 0,1,2 and 3

Encoding the LOD13 geographical location in the file name

Let's say that the upperleft position of the LOD13 square is:
Latitude: N45.51
Longitude: W73.38


This corresponds to the QMID square U=7278, V=4049, Level =15 (Remember that QMID Level = LOD Level + 2)
We then convert the U and V values in binary format:

U = 7278 = 1110001101110
V = 4049 =  111111010001

However, for the V value, we replace the '1' with '2'

So V = 4049 = 222222020002

Finally we add U + V with their respective binary format

U: 1110001101110
+
V:  222222020002
=
   1332223121112

If needed, we left-pad the result with zeroes to have a length of 15

001332223121112

So the resulting AGN file will be : 001332223121112an.agn.

The reason the length is 15 is because the maximun U value for LOD13 is 24575 which has a binary value of 101111111111111 (15 characters)

Decoding the LOD13 geographical location from the file name

Let's say the file name is 001332223121112an.agn
We extract the numerical part to compute the U and V values (QMID Level is always 15)
To get the U value, we replace the '3' with '1' and '2' with '0'
To get the V value, we replace the '1' with '0' and the '3' and '2' with '1'

   001332223121112
U: 001110001101110b = 7278d
V: 000111111010001b = 4049d

So the agn file corresponds to the QMID square (u=7278, v =4049, l=15)
Once we have the u and v values, the upperleft coordinates of the square are:

LongitudeDeg = u * 0.0146484375 - 180
LatitudeDeg = 90 - v * 0.010986328125