Changelog 2.10

Revision as of 13:37, 17 December 2012 by Hooray (talk | contribs) (adding more stuff - based on the git logs (git log -SCanvas))
This changelog is a draft.

This changelog is currently being written for the FG 3.0 release - FG 3.0 has not yet been released! But starting to write the changelog early, should make it much easier to come up with a comprehensive list of changes.


FlightGear 3.0.0 ChangeLog

The FlightGear development team is happy to announce the v3.0.0 release of FlightGear, the free, open-source flight simulator. This new version contains many exciting new features, enhancements and bugfixes. New features in this release include an experimental renderer supporting real-time lighting and shadows, and improved terrain rendering.

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.0.0 for free from FlightGear.org

FlightGear - Fly Free!

Some of the major changes include:

Aircraft Checklists

Aircraft typically have a large number of checklists, covering almost every phase of flight. Previously, aircraft authors have added checklists to the help text for the aircraft. This is a bit unwieldy. To improve matters, there is now an Aircraft Checklists dialog under the Help menu specifically designed to organize and display checklists. Aircraft authors can create new checklists easily without having to worry about how they will be displayed. See Aircraft Checklists for details.


Initial work on dynamic subsystem creation

James has added initial code to work on dynamic subsystem creation, so that subsystems become create-able and removable from commands. Only some subsystems are supported so far, since many have non-default constructors or other complexities (see FlightGear Run Levels for further details). With this, change, it's now possible to dynamically add and remove the traffic-manager at runtime, for example:

 fgcommand( "add-subsystem", props.Node.new( { "subsystem": "traffic-manager", "name":"traffic-manager", "do-bind-init":1}) );

The idea is to improve this further so that more and more subsystems in FlightGear can be optionally toggled on/off at runtime, which should help facilitate other ongoing efforts, like the FGCanvas project for example - ultimately, this will help make FlightGear become more configurable and scalable, but also better usable for other purposes, such as distributed (multi-machine) setups-so that a single binary can be easily used for different purposes.

In addition, it will be much easier for developers to do regression testing and benchmarking once subsystems can be completely disabled, which is another long-standing feature request (see FlightGear Headless), that should also simplify release preparations.


Aircraft operations

AI system

  • AI tankers can now be found using the HUD target marker.

AI Traffic

Atmospheric Light Scattering

Atmospheric light scattering is an alternative rendering framework, containing its own set of effects and shaders focusing on rendering realistic environment-dependent fog and light computations for clouds and terrain. The simulation includes

  • Rayleigh, Mie and diffuse multiple scattering of light in the atmosphere, on haze and on clouds
  • a volumetric ground fog simulation
  • realistic ambient and diffuse light curves for sunset and sunrise conditions measured from a large collection of photographs
  • a simple moonlight illumination model

Together with Advanced Weather, it functions as an integrated environment simulation in which the individual elements mutually influence each other. For instance

  • clouds and winds are influenced by the distribution of terrain elevation
  • prevailing winds, terrain slopes and stability of the lower atmosphere determine the shape of visible clouds
  • cloud layers and haze influence color and intensity of light reflections
  • winds influence wave patterns on water
  • light at sunrise and sunset is position and altitude dependent, allowing for phenomena such as Alpenglow or brightly illuminated high-altitude clouds while the ground is dark

For more powerful graphics cards, the framework includes procedural terrain texturing, including features such as

  • terrain slope dependent non-tiling texturing
  • hires close-up texturing effects with up to 10 cm detail resolution and dynamically added bumpmap for low-level flight
  • terrain appearance changes with user-controlled environment, terrain may appear wet and covered in puddles, dry and dusty, moss-overgrown or covered in a snow-layer of adjustable thickness, all of which respect terrain slope where appropriate.


Flight dynamics

Navigation Database

Scripting (Nasal)

  • The "flightplan" Nasal extension function has been improved, which makes it possible to retrieve a hash representation of the flight plan stored in the route manager. With these changes in place, it is possible to directly show a SVG image for each waypoint and connect them using OpenVG paths.


NavCache

  • Navigation data is cached and only rebuilt when you install new data. This results in lower memory consumption and faster startup.

Environment

  • The weather configuration GUIs have been combined and rationalized into a single Weather GUI, making it easier to select a nice VFR day, or a difficult CATIII approach.
  • Random Buildings memory occupancy has been improved significantly, making this feature available to more users.

Usability

Improving FlightGear's usability has been a focus for a number of developers for this release. Changes include:

  • A new tool allowing joystick configuration in-sim, making it easier for new users to configure their joysticks as they wish and get flying!
  • The Nasal Console has been improved to support copy/paste, making Nasal script development easier.
  • The About dialog now includes additional system information, and the ability to copy information to the clipboard, making remote diagnosis of users problems faster and more straightforward.
  • The Select Airport option now displays an overhead view of the selected airport, allowing users to preview their new location, and making it easier to choose the correct runway or parking position.
  • We have added an integrated documentation browser so that users can more easily browse all the documentation available in the base package.

Canvas System


The Nasal API wrappers for the Canvas system have been committed to $FG_ROOT, so that people no longer need to manually load the required modules. Furthermore, the fully scriptable Canvas 2D drawing system in FlightGear 3.0 has now support for:

  • lazy updating/rendering to improve performance in situations where a texture doesn't need to be redrawn
  • creating GUI windows (not just widgets, but also windows - which can be used for popup menus or menubars)
  • native copy/paste via 2 new Nasal extension functions, see Howto:Clipboard access using Nasal
  • nested canvases, where a canvas may contain images created by another canvas texture Howto:Using raster images and nested canvases
  • window stacking
  • raster images (vector images were already supported)
  • improved event handling GUI events using osgGA
  • a new DOM-based event handling system
  • the canvas system has been generalized and refactored such that it can now be found in SimGear, so that it can be more easily reused by other projects (no longer FG specific).
  • in addition, a completely new Nasal/C++ bindings system was added (currently only used by the Canvas system)

Support for nested canvases will make it possible to also load canvas textures into other canvases, so that you can, for example, easily load an instrument into a GUI dialog, or even use GUI widgets in MFD instruments, which is a feature based on real avionics, i.e. as used in modern airliners like the A380 or the 787 - which are based on the ARINC661 standard.

Nested canvases also make it possible for people to easily implement GUI tools using the Canvas system, for example a GUI instrument or panel editor can be entirely implemented in scripting space now, without touching any C++ code. Similarly, GUI widgets could also be created in a WYSIWYG-fashion, too - so that even a dialog editor or full GUI builders can be built using the Canvas system.

In addition, Tom has also implemented support for window stacking in 08/2012. Check out the demo video below, which demonstrates how "nested" canvases and window stacking works:

Missing features, and features currently under development, are listed at Missing Canvas Features


Interface

  • System messages on startup are available in eight languages, just like the in-sim menu.

Highlighted new and improved aircraft

Project infrastructure

Visual effects

  • The Rembrandt renderer has been extended with a couple of post-processing filters:
    • Night vision including amplification grain and restrained field of view
    • Cinema effect including:
      • Vignetting
      • Color shift, with Sepia as default value
      • Radial distortion (barrel and pincushion distortion, with scale compensation)
      • Lateral chromatic aberration (purple fringing)
      • Film wear simulation

Other

  • Additional joysticks and rudder pedals are supported out-of-the-box:

Bug fixes

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