Changelog 3.2

From FlightGear wiki
Jump to navigation Jump to 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

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.

Core

  • 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 versioning support for maintenance fixes (TorstenD)
  • FLITE TTS support
  • Windows dependencies have been updated

Aircraft Modeling

JSBSim

  • ground effects (see newsletter 02/2014)

Atmospheric Light Scattering

Atmospheric Light Scattering (ALS) is one of FGs 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

Performance

Misc/Uncategorized

  • 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
  • FGCamera (external addon, not yet reviewed/committed as of 03/2014)
  • 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

Usability

  • Windows users are now able to use scrollwheel in dialog


Internationalization


Scenery


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.

  • 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 [2].
  • Hooray is working on adding shader support to Canvas 30}% completed
  • Gijs is currently working on additional projections as part of ticket #550
  • 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) [3]
  • 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
Canvas dialog showing the prototype for an Aircraft Center for directly installing/managing aircraft from within FlightGear, an upcoming feature scheduled for FlightGear 3.2, currently being developed by TheTom and Zakalawe

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:
getprop("canvas/by-index/texture[1]/name");
(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.
Usage:
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.

Documentation

Highlighted new and improved aircraft

Tuned autopilot and improved instrument stack for the Cessna337G Skymaster.

Other

Bug fixes

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