                    ************************************
                     LATITUDE BANDS & SEASONS IN FS2000
                                    AND
                            THE 'TREES' LIBRARY
                    ------------------------------------
                      An explanatory note accompanying
                       Release 2 of the Trees Library
                                    by
                               Gerrish Gray
                                 2000-12-14
                    ************************************

The Microsoft Terrain SDK for FS2000 makes reference to three factors 
affecting the appearance of scenery in different locations at different 
times of the year

  *  seasons
  *  seasonal ground textures
  *  latitude bands

There are two main scenery types in the Flight Simulator system where 
these seasonal effects are important

  *  texturing of the mesh terrain ground surfaces
  *  texturing of other visual scenery and objects - 'section 9' scenery 
     etc. (e.g trees)

As we shall see, FS2000 presently uses different, and somewhat conflicting, 
schemes for applying seasonal effects to these two scenery types.  The new 
mesh terrain scenery has a more realistic application of seasons than the 
older, rather simplistic, system inherited from previous versions of Flight 
Simulator and still used in FS2000 for 'section 9' visual scenery.

Proper seasonal effects are vital when modelling trees.  The new 'Trees' 
object library has its own solution, described in the final part of this 
note - this is *** ESSENTIAL READING *** for all scenery designers.


SEASONS
=======

Flight Simulator has previously used four seasons to determine seasonal 
effects in scenery, namely Winter (WI), Spring (SP), Summer (SU) and Fall 
(FA).  A global variable, accessible to scenery designers (offset 0x06F8), 
enables BGL code to detect the current season and respond appropriately 
with seasonal effects.  Strangely, the set of values used by this global 
'season' variable do NOT automatically allow for the reversal of seasons 
in the Southern hemisphere and must therefore be interpreted differently 
depending on which hemisphere the scenery lies in :-

          ============================================
          Table 1. Values given by global variable 6F8
          ============================================
           6F8    Northern    Southern    Start date/
          Value   hemisphere  hemisphere       day no.
          -----   ----------  ----------  ------------
            0     winter      summer      Dec 22 / 356
            1     spring      fall        Mar 19 /  79
            2     summer      winter      Jun 21 / 152
            3     fall        spring      Sep 23 / 266
          ============================================

Note that the seasons start and end on fixed dates independently of the 
scenery location.  Even the Equator and the North/South poles have the same 
four seasons in the FS world!

The FS2000 SDK identifies a fifth season, Hard Winter (HW), representing 
snowy winter conditions.  This fifth season occurs in the mesh terrain 
surface texture effects, but has NOT yet been implemented in the 'section 
9' visual scenery scheme or the global variable at offset 0x06F8.

BGL_TEXTURE2/LoadBitmap()
-------------------------
The new BGL_TEXTURE2 command, referenced as LoadBitmap() in SCASM source 
code, includes a set of flags that allow scenery designers to load bitmap 
textures with automatic seasonal effects.  To use these flags successfully 
bitmaps must have the suffix "_sp", "_fa", or "_wi" added to their names 
for winter, spring, and fall seasonal textures (the 'root' name with no 
suffix is used for the default/summer texture).  The SDK suggests that a 
fifth flag, corresponding to the "_hw" suffix, can be used to load 'hard 
winter' textures, but this functionality does NOT appear to be implemented 
in the present FS2000 scenery engine.  The author has confirmed by testing 
that use of the 'HW' flag with the BGL_TEXTURE2 command does NOT select 
"_hw" textures under any detectable circumstances.

A typical LoadBitmap call in SCASM might look something like
        LoadBitmap( 0 SFW6 E0 64 64 64 "mytex.bmp")
and would load the correct seasonal texture from a set of bitmaps named 
"mytex.bmp", "mytex_sp.bmp", mytex_fa.bmp, and mytex_wi.bmp.


LATITUDE BANDS
==============

The Terrain SDK mentions a system of five 'latitude bands', ranging from B1 
(equatorial) to B5 (arctic), related to the texturing of elevated mesh 
terrain.  This system does not appear to have been implemented at the 
present time in FS2000.  Latitude band B2 is presently used to cover the 
whole world.

However, this projected latitude band system is NOT related to seasonal 
effects, which are dealt with separately as described below.  Instead, we 
can postulate that 'latitude bands', if and when implemented (in a future 
release of Flight Simulator?), will allow different texture sets to be 
applied to the mesh terrain at different latitudes, which makes sense 
(note in particular the 'desert' dilemma with present texture sets, such 
as the excellent replacement set by Lennart Arvidsson).


SEASONAL GROUND TEXTURES
========================

Seasonal effects are applied to the texturing of the terrain mesh, quite 
independently of the projected latitude band system, through the use of 
textures with the five suffices "sp", "su", "fa", "wi" and "hw", as can be 
seen by examination of the texture bitmaps in the folder at path
                  <FS2000>\scenedb\world\texture
(Note that these bitmaps are all tagged as belonging to latitude band B2).
A sixth suffix, "lm" denotes night-time 'light masks').

This five-season ground texturing scheme is applied independently of the 
traditional four seasons described under the preceding SEASONS heading.  
Unlike the SEASONS scheme, the algorithm applied is sensitive to latitude.  
In 'equatorial regions', between latitudes 32 degrees N and 32 degrees S, 
there are NO seasonality effects.  Outside this band up to five different 
seasons are used with season start-end dates varying with latitude until 
one reaches Arctic/Antarctic latitudes where there is permanent 'hard 
winter'.  In sub-arctic latitudes the fifth, snow & ice, 'hard winter' 
season can last up to nine months of the year, whilst in more temperate 
latitudes it does not occur at all.

This is a far more realistic scheme than the older rigid 4-season system 
still used for other parts of the scenery.


SEASONAL EFFECTS IN THE "TREES" LIBRARIES
=========================================

Apart from the ground texture, there is no more important element in visual 
scenery for creating seasonal effects than trees.  Traditionally, scenery 
designers for Flight Simulator have used the fixed 4-season feature to 
incorporate different textures for the different seasons of the year.

With FS2000 this has lead to some anomalies.  The new mesh terrain ground 
texturing has a more realistic scheme for seasonal effects than the older 
approach still used for 3D objects.  New scenery projects built with 
FS98, and older, tree macros often have seasonal effects that are 'out of 
synch' with seasonal changes in the appearance of the surrounding terrain.

The new 'Trees' library objects use sophisticated internal coding to 
overcome these deficiencies and exhibit more realistic seasonal changes.  
To trigger this behaviour correctly, the scenery designer must set  
'Hemisphere' and 'Latitude Band' parameters in the Trees SDK macros.

The Hemisphere parameter should be set to 0 for the Northern hemisphere, 
1 for the Southern hemisphere.
 
The Latitude Band parameter uses the scheme mentioned in Microsoft's 
Terrain SDK with bands 1 (equatorial/tropical) to 4 (sub-arctic).  No 
provision is made for band 5 (arctic) as no trees grow in the permanent 
frost conditions of the Arctic/Antarctic wastes!  See Table 2 below.

Finally, there are also subtle individual variations in the built-in 
seasonal behaviour of different tree types to further add to the realism.

=========================================================================
Table 2. Latitude Bands for use with 'Trees' library objects and API's
=========================================================================
Lat.                                                              Plant
Band   Title     Seasons                                        Hardiness
(1)                                                             Zones (2)
---- ----------  ---------------------------------------------  ---------
 1   Tropical    No seasonal effects.  Also used for some        10 - 11
                 grasses and the special 'dead' shrubs/trees
                 that have the same non-seasonal appearance
                 at any latitude.

 2     Mild      Standard FS 4-season pattern with no 'hard'      7 - 9
                 winter snow effects.

 3    Colder     Normal FS 4-season pattern but with 'hard'       4 - 6
                 winter snow effects for two months.

 4   Sub-arctic  A five-month 'hard' winter, and shortened        1 - 3
                 spring & fall (autumn).
-------------------------------------------------------------------------
NOTES:
(1) Account should be taken of altitude (eg. mountain terrain above the 
    snow line), as well as latitude, when choosing the Band.
    *IMPORTANT* Not all tree types are available in all Bands. It is the
    scenery designer's responsibility to select appropriate tree types
    for the band in use, as detailed in the Trees_#.txt files.  Misuse
    will lead to 'Missing Object ...' error messages when opening the
    scenery in Flight Simulator.
(2) See accompanying file HardZone.txt for an explanation of 'Plant 
    Hardiness Zones'.  The values given are only approximate ranges and
    should not be regarded as a rigid rule.  This data on plant hardiness
    zones is included only as a guide to the selection of trees.  There
    is nothing compulsory about it and designers are free to 'plant'
    trees from any band or hardiness zone in any part of the world
    (providing appropriate settings are used in the design tool!).
=========================================================================

Individual Variation
--------------------
Within this basic framework, some tree types are coded so as to exhibit 
minor seasonal variations, such as a shortened spring flowering season 
(more realistic than the excessive 3-month FS spring) or a two-stage fall
(autumn) with an intermediate colour change.  These provide further 
'naturalism' to the finished scenery. (Note, however, that this feature 
is NOT implemented in the basic generic tree set 'Trees_0', and will only 
be found when using the more specialised 'Trees_A' etc add-on libraries).


Gerrish Gray
Dec 2000
mailto:gerrish.gray@wimborne-dorset.fsnet.co.uk
