Changelog 2.10: Difference between revisions

2,761 bytes removed ,  17 January 2013
Significant re-structuring and re-writing
(Significant re-structuring and re-writing)
Line 1: Line 1:
{{Draft|changelog|This changelog is currently being written for the FG 2.10.0 release - FG 2.10.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. }}
{{Draft|changelog|This changelog is currently being written for the FG 2.10.0 release - FG 2.10.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 2.10.0 ChangeLog==
==FlightGear 2.10.0 Change Log==


The FlightGear development team is happy to announce the v2.10.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.
The FlightGear development team is happy to announce the v2.10.0 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 improved usability, better terrain rendering and a fully scriptable 2D rendering system.


Founded in 1997, FlightGear is developed by a worldwide group of volunteers, brought together by a shared ambition to create  
Founded in 1997, FlightGear is developed by a worldwide group of volunteers, brought together by a shared ambition to create  
Line 15: Line 15:
FlightGear - Fly Free!
FlightGear - Fly Free!


=== Some of the major changes include: ===
=== Major Enhancement in this release ===


'''Initial work on dynamic subsystem creation'''
'''Improved modularization'''
 
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:
 
<syntaxhighlight lang="php">
fgcommand( "add-subsystem", props.Node.new( { "subsystem": "traffic-manager", "name":"traffic-manager", "do-bind-init":1}) );
</syntaxhighlight>
 
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'''
* Several aircraft have been equiped with virtual checklists, making use of a new [[Aircraft Checklists|checklist dialog]].
 
'''AI system'''
* AI tankers can now be found using the HUD target marker.
 
'''AI Traffic'''


Architecture improvements introduced in this release mean that subsystems such as the traffic manager may be stopped and re-started dynamically within a simulation session.  In future releases it is expected that more and more subsystems will support this function, making FG more scalable, and more flexible for distributed multi-machine simulators.


'''Atmospheric Light Scattering'''
'''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
[[Atmospheric light scattering]] is an alternative rendering framework, using exceptionally realistic environment-dependent fog and light computations for clouds and terrain. The simulation includes the following lighting models.
 
* Rayleigh, Mie and diffuse multiple scattering of light in the atmosphere, on haze and on clouds, for more realistic atmospheric lighting.
* Rayleigh, Mie and diffuse multiple scattering of light in the atmosphere, on haze and on clouds
* Volumetric ground fog simulation, so fog varies in thickness both horizontally and vertically.
* a volumetric ground fog simulation
* Realistic ambient and diffuse light curves for sunset and sunrise conditions, making evening flights more realistic.
* realistic ambient and diffuse light curves for sunset and sunrise conditions measured from a large collection of photographs
* Improved night VFR flying due to a moonlight illumination model.
* 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
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
* 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
* prevailing winds, terrain slopes and stability of the lower atmosphere determine the shape of visible clouds
Line 56: Line 36:
* 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
* 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
For more powerful graphics cards, the framework includes procedural terrain texturing, including features such as the following.
* Non-tiling slope dependent terrain texturing, so scenery looks more featured but with fewer tiling artefacts.
* High resolution close-up texturing effects with up to 10 cm detail resolution and dynamically added bumpmap for low-level flight and better depth perception
* Environmental effects such as terrain wetness (including puddles), dustiness, mossiness, and snow cover. All adjustable by the user and respecting the terrain slope where appropriate.


* terrain slope dependent non-tiling texturing
''' Improved performance, reduced memory occupancy '''
* 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.


Startup time and memory occupancy has been reduced by the implementation of a cache of navigation data.  Further memory occupancy reductions have been made by improved random buildings.  Frame-rates have been improved when using 3D clouds, particularly in overcast conditions.


 
''' Usability '''
'''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:
Improving FlightGear's usability has been a focus for a number of developers for this release. Changes include:
Line 88: Line 52:
* 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 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.
* 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.
* In-sim checklists have been introduced for a number of aircraft.
* An in-sim documentation browser is included, so users can more easily browse all the documentation available in the base package.
* The weather configuration UIs have been combined and rationalized into a single Weather UI, making it easier to select a nice VFR day, or a difficult CATIII approach.
* AI tankers can now be found using the HUD target marker.
 
''' Internationalization '''
 
FlightGear continued to benefit from contributions from across the globe.
* The FlightGear Manual is now included in both English and French
* System messages on startup are available in eight languages, just like the in-sim menu.
 
''' Scripting (Nasal) '''
 
The "flightplan" Nasal extension function  has been improved, making it possible to retrieve a hash representation of the flight plan stored in the route manager.  It is now possible to directly show a SVG image for each waypoint and connect them using OpenVG paths.


'''Canvas System'''
'''Canvas System'''


( The "canvas" system is FlightGear's fully scriptable 2D rendering system, which makes it possible for users to easily create new instruments, HUDs and even dialogs and custom GUI widgets using FlightGear's built-in scripting language [[Nasal]]. The Canvas can also be used for the creation of complex glass cockpit displays like navigational displays and other MFDs - none of this requires writing C++ code or rebuilding FlightGear from source, it can all be done by editing text files using a conventional text editor )
The "canvas" system is FlightGear's fully scriptable 2D rendering system, which makes it possible for users to easily create new instruments, HUDs and even dialogs and custom GUI widgets using FlightGear's built-in scripting language [[Nasal]]. The Canvas can also be used for the creation of complex glass cockpit displays like navigational displays and other MFDs.
 
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 2.10.0 has now support for:


Canvas improvements in this release include:
* lazy updating/rendering to improve performance in situations where a texture doesn't need to be redrawn
* 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)
* creating GUI windows, including popup menus or menubars
* native copy/paste via 2 new [[Nasal]] extension functions, see [[ Howto:Clipboard access using Nasal]]
* native copy/paste via 2 new [[Nasal]] extension functions
* nested canvases, where a canvas may contain images created by another canvas texture [[Howto:Using raster images and nested canvases]]
* nested canvases, where a canvas may contain images created by another canvas texture
* window stacking
* window stacking
* raster images (vector images were already supported)
* raster images (vector images were already supported)
* improved event handling GUI events using osgGA
* improved event handling GUI events using osgGA
* a new DOM-based event handling system  
* 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.
'''Rembrandt'''


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.
* The [[Project Rembrandt|Rembrandt renderer]] has been extended with a number of post-processing filters:
 
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:
 
{{#ev:youtube|llVaasTEf44}}
 
Missing features, and features currently under development, are listed at [[Canvas Widgets#Missing_.2F_Todo|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 [[Project Rembrandt|Rembrandt renderer]] has been extended with a couple of post-processing filters:
** Night vision including amplification grain and restrained field of view
** Night vision including amplification grain and restrained field of view
** Cinema effect including:
** Cinema effect including:
Line 135: Line 91:
*** Lateral chromatic aberration (purple fringing)
*** Lateral chromatic aberration (purple fringing)
*** Film wear simulation
*** Film wear simulation
'''Highlighted new and improved aircraft'''
TODO


'''Other'''
'''Other'''
* Additional joysticks and rudder pedals are supported out-of-the-box.
* Additional joysticks and rudder pedals are supported out-of-the-box.


'''Bug fixes'''
'''Bug fixes'''
* See [http://code.google.com/p/flightgear-bugs/issues/list?can=1&q=Milestone%3D2.10.0 our bugtracker] for an extensive, yet incomplete, list of the bugs fixed in this release.
* See [http://code.google.com/p/flightgear-bugs/issues/list?can=1&q=Milestone%3D2.10.0 our bugtracker] for an extensive, yet incomplete, list of the bugs fixed in this release.


[[Category:FlightGear changelogs]]
[[Category:FlightGear changelogs]]