Changelog 3.2

From FlightGear wiki
Revision as of 16:02, 12 October 2014 by T3r (Talk | contribs) (Major enhancements in this release)

Jump to: navigation, search
This changelog is a draft.

This changelog is currently being written for the FlightGear 3.2 release. To see what is being worked on, check out Changelog 3.2. Feel free to help! If you are aware of any FlightGear related changes, please add them to the changelog.
It's a good idea to check the newsletters since the last release, and the git commit history. To view the changelog for the most recent release, please see Changelog 3.0. We also encourage people to help by translating the changelog and appreciate all contributions, however please keep in mind that this changelog is not yet final!

Upcoming FlightGear Changelog

The FlightGear development team is delighted to announce the v3.2 release of FlightGear, the free, open-source flight simulator. This new version contains many exciting new features, enhancements and bugfixes. Highlights in this release include ...

Founded in 1997, FlightGear is developed by a worldwide group of volunteers, brought together by a shared ambition to create the most realistic flight simulator possible that is free to use, modify and distribute. FlightGear is used all over the world by desktop flight simulator enthusiasts, for research in universities and for interactive exhibits in museums.

FlightGear features more than 400 aircraft, a worldwide scenery database, a multi-player environment, detailed sky modelling, a flexible and open aircraft modelling system, varied networking options, multiple display support, a powerful scripting language and an open architecture. Best of all, being open-source, the simulator is owned by the community and everyone is encouraged to contribute.

Download FlightGear v3.2 for free from

FlightGear - Fly Free!

Breaking Changes

Major enhancements in this release

Surface Light Effects & OpenSceneGraph 3.2

Stuart committed a change that brings surface lights, including VASI/PAPI/taxi/runway etc. into the xml-defined Effects framework. Kudos to Tim Moore for his original Effects work - it made it very straightforward to enhance with support for point sprites and a custom texture generator required.

The relevant effect is data/Effects/surface-lights.eff. It should allow development of ALS and Rembrandt variants.

Stuart also replaced some OSG color/normal binding calls that were removed in OSG3.2.0, apparently because they were slow. So, if your build fails, please check you've got a recent OSG build installed.


  • Reset & re-init is merged and now enabled
  • A segfault related to scripted Nasal fgcommands (like used in joystick and other bindings) has been fixed ticket #1397
  • YASim now has versioning support. The YASim FDM now checks a version tag in it's configuration file to eventually provide backward compatibility.
  • A text-to-speech system based on flite+hts_engine has been implemented.
  • ATIS messages, previously hard coded in C++, are now generated based on customizable XML configuration files. Their audio now gets generated by the new text-to-speech system.
  • Windows dependencies have been updated
  • The integrated Map dialog now uses an azimuthal equidistant projection, for better representation in polar regions and across the International Date Line.
  • A new internal web server (aka httpd) based on mongoose httpd has been added. It supports various AJAX requests, a screenshot server, a property tree browser and much more.
  • A web browser based moving map has been added using the new AJAX capabilities of FlightGear

Aircraft Modeling


  • The JSBSim flight dynamics model now has support for ground effects like bumpiness, solid-ground detection and adjusting of friction factors. Additionally, bogey type contact points sink in non-solid surfaces, making it no longer possible to ride on water.

Atmospheric Light Scattering

Atmospheric Light Scattering (ALS) is one of FlightGear's three rendering frameworks, with the aim of providing an integrated simulation of the interaction between weather, light and the environment.

Additions to ALS in version 3.2 include:

  • an experimental framework to render cloud shadows on the ground (requires Advanced Weather)
  • a substantial extension of cloud layer visibility using impostor techniques to 150 km
  • a new agriculture effect allowing to render fields without tiling artifacts
  • a new forest effect to simulate managed forest, varying tree size by patch
  • sparkle and fog effect on runway lights
  • much improved visual appearance of rock faces

Environment Rendering

  • EarthView, a simple orbital rendering engine based on projecting a textured sphere into the scene. By default, EarthView uses low resolution textures, however using hires textures e.g. from the NASA Visible Earth project very realistic results from altitudes above 100 km can be achieved.
  • New deciduous and needle tree textures with much improved visuals
  • New regional texture definitions for Ireland, Alaska/Northwest territories and US Southwest

Performance As a side effect of a fixed bug, a huge performance boost with respect to frame rate can be seen on some machines. The implementation of a Uniform-Cache for shader-effects has reduced the CPU workload significantly.


  • AIModels use PagedLOD
  • Optimise NavCache airport query
  • osg::Switch for masking scenery rendering
  • Torsten's metar work, newradio, mongoose httpd
  • HTTP: improve handling of connection errors
  • Windows installer has been reworked
  • Windows installer creates 3 news directories pre-configured in FGRun:
    • {user}\Documents\FlightGear\Aircraft
    • {user}\Documents\FlightGear\TerraSync
    • {user}\Documents\FlightGear\Custom Scenery


  • Windows users are now able to use the scroll wheel in dialog lists


Canvas System

FlightGear's fully scriptable 2D rendering system now includes improved APIs for creating maps and navigation displays amongst many other improvements. People no longer need to have programming experience to add a working ND to their aircraft, it can now be all done by copying and pasting 30 lines of text and customizing a few properties. The so called MapStructure back-end handles efficient updating of all ND layers transparently. Also, maps can now be mostly customized, including custom styling (colors, fonts, symbols etc).

  • Tom has pushed an update to git (simgear) which removes a lot of unneeded OpenGL state changes for Canvas paths. Depending on the GPU/driver this can lead to quite a noticeable performance improvement. For example, he was able to get from ~120ms down to ~45ms [1].
  • The MapStructure back-end used by the NavDisplay now supports symbol instancing, so that performance is improved
  • MapStructure-based layers can now be customized and styled
  • Tom added support for button/modifiers (mouse handling) [2]
  • CanvasImage now supports the http:// protocol for dynamically retrieving raster images. See the renamed src attribute (file is now deprecated).
  • As part of the ongoing effort on Unifying the 2D rendering backend via canvas, we have started re-implementing the integrated Map dialog using Nasal & Canvas instead of C++ 80}% completed
  • Custom event handlers can now be registered.
  • Canvas Layout Engine
  • Canvas-based dialog for downloading aircraft Aircraft Center

Nasal Scripting

  • getprop()/setprop() arguments (those that form a path) can now be numeric to specify a index, so:
getprop("canvas/by-index", "texture", 1, "name");
is now the same as:
(see merge request 54 and actual commit)
  • A new fully-interactive Nasal GUI console based on Canvas has been added: Interactive Nasal Console
  • the hard-coded flight path history subsystem which samples aircraft position, which was previously only accessible to C++ code, has now been exposed to scripting space by Tom so that people can easily access the system and reuse the data for their own purpoes (e.g. for creating an instructor console). The first use-case will involve the new Canvas based Map dialog which will be 100% scripted by then.
var hist = aircraft.history(); debug.dump(hist.pathForHistory(50));
  • cppbind: Nasal ghosts can now support arbitrary setters/getters for when members are not mapped to a C++ member/method.
  • Language enhancements
    • Bitwise operators (|, &, ^, ~, |=, &=, ^=)
    • Support for octal, decimal and hexadecimal numbers in literals as well as in strings


Highlighted new and improved aircraft


Bug fixes A serious bug has prevented FlightGear version 3.2 being released on time. Identified by the clumsy name "crash in SGPropertyNode::fireValueChanged", this bug clearly was a release blocker and it took a lot of effort to identify the cause for the crash. Finding a solution was even harder but was finally accomplished and presented the nice side-effect of a noticeable performance boost.

  • See our bugtracker for an extensive, yet incomplete, list of the bugs fixed in this release.