Changelog 2.10: Difference between revisions

3,760 bytes removed ,  18 September 2012
Summarize some of the changes
(Summarize some of the changes)
Line 28: Line 28:


'''Random Buildings'''
'''Random Buildings'''
 
- Random Buildings memory occupancy has been improved significantly, making this feature available to more users.
Shortly after the 2.8 release, a number of users reported severe memory growth issues related to a new feature: [[Random Buildings]].
 
Unfortunately, the buildings are generated when the tiles are loaded, and it is this that causes the memory occupancy problems rather than visibility itself (subject to big view ranges causing the loading of more tiles).  Aggressively limiting the maximum available visibility range might help, if it's causing more tiles to be loaded, but it is very dependent on the amount of Urban and Town terrain.
 
For performance reasons, all the buildings within a tile are a single object currently. The memory capacity could be addressed by changing the implementation to something closer to the trees, where a (relatively) small number of buildings are instantiated at different locations.  I don't know what this would do for performance though.
 
Stuart has now managed to get a prototype running using an instantiation of a shared geometry rather than a huge single object per tile.
 
So far the results are promising.  Stuart's standard test is at KSFO with the c172p, waiting until the intial set of tiles is loaded with standard weather conditions (e.g. no excessive visibility). With random buildings switched off  FG uses ~1GB memory.  With v2.8.0
random buildings, it's 2GB.  With instantiated buildings at present it is 1.5GB.
At KLAX, it's down even further, from 2.7GB to 1.6GB. So far, without any frame-rate impact.
 
This work is now checked into next/master.  You'll need an updated simgear and data to see any effect.
 
Basically, the design has been altered to use a scheme very similar to that of the random trees, where there are a small number of buildings created, and then instantiated multiple times.
 
The technique relies on a vertex shader, as the final position and rotation of the building are passed in on the gl_Color vector.  This in turn has meant that I've been forced to create new version of various vertex shaders.  It might be possible to clean that up by having a new parameter to existing shaders indicating that position/rotation information is in gl_Color
 
There are three known regressions from the previous implementation:
* The reflection map appears to be broken, and is currently switched off. (this might be because the binormal or tangent are not being calculated correctly.)
* The buidings do not cast shadows in Rembrandt, though other objects _do_ cast shadows on the buildings. I don't know the reason for this.
* At high building densities and certain angles of view, one can see gaps in the building placement where the edges of the scenery triangles go.  This is unfortunately inevitable, as we have less sizing information during placement.
 
You should now see significantly lower memory occupancy (500 - 2GB less depending on area and density) when running with random buildings enabled.  This will obviously be available in the next FG release as well.
 
 
Feedback/comments appreciated as always.
 


'''Project Rembrandt'''
'''Project Rembrandt'''
Line 75: Line 47:


'''Environment'''
'''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.
As most readers will be aware, FG supports two weather models - Basic Weather which represents METAR data directly, and Local Weather which models weather more realistically, with more variation. In 2.8.0 these were configured separately using different UIs. Stuart Buchanan and Thorsten Renk have been working on unifying the user interfaces to provide a more user-friendly and consistent interface.


'''Usability'''
'''Usability'''
 
Improving FlightGear usability has been a focus for a number of developers for this release. Changes include:
A further usability enhancement has been made by Stuart Buchanan to allow configuration of joysticks through a GUI in-sim. Instead of configuring a joystick using XML, users can now change joystick bindings within the simulator - no XML knowledge required. The updated joystick configuration takes effect immediately. This work is also available in git, and should make it much easier for new users (or those with joysticks unknown to FG) to get flying.
* 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 built-in [[Nasal Console]] has been updated to also add native copy/paste support, a feature that got implemented as part of the ongoing [[Canvas]] effort (see  [[Howto:Clipboard access using Nasal]] for details ). This feature makes it now possible to easily copy/paste snippets of code FlightGear, without having to use the "dump" feature.
* 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.
[[File:Nasal-console-3.0.png|500px|The Nasal console in FG 3.0 with copy/paste buttons ]]
 
In addition, the "about" dialog has also been slightly updated so that it now shows a handful of OpenGL-related parameters, this info should make it easier for people to provide useful issue reports, especially related to their system's graphics support. For this very purpose, the dialog box has now also support for copying this info to the clipboard or simply take a screen shot that users can post on the forums.
 
[[File:About-dlg-3.0.png|350px|The about dialog in FG 3.0 with extended graphics information ]]
 


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