Difference between revisions of "FlightGear Newsletter September 2012"

From FlightGear wiki
Jump to: navigation, search
(Summarize random building changes)
Line 11: Line 11:
 
Shortly after the 2.8 release, a number of users reported severe memory growth issues related to a new feature: [[Random Buildings]].
 
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.
+
This was a side-effect of the way in which the buildings were created during tile loading. Stuart has now completely changed the way in which random buildings are generated and displayed to reduce the memory occupancy by using a shader-based scheme similar to random trees.  You should now see significantly lower memory occupancy (500 - 2GB less depending on area and density) when running with random buildings enabled.
 
+
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 vectorThis 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 ===

Revision as of 04:50, 18 September 2012

Magagazine.png
Welcome to the FlightGear Newsletter!
Please help us write the next edition!
Enjoy reading the latest edition!


We would like to emphasize that the monthly newsletter can not live without the contributions of FlightGear users and developers. Everyone with a wiki account (free to register) can edit the newsletter and every contribution is welcome. So if you know about any FlightGear related news or projects such as for example updated scenery or aircraft, please do feel invited to add such news to the newsletter.

Development news

Note to all developers: Please also copy your newsletter additions to the changelog of the upcoming release: Changelog_3.0.0.

Random Buildings

Shortly after the 2.8 release, a number of users reported severe memory growth issues related to a new feature: Random Buildings.

This was a side-effect of the way in which the buildings were created during tile loading. Stuart has now completely changed the way in which random buildings are generated and displayed to reduce the memory occupancy by using a shader-based scheme similar to random trees. You should now see significantly lower memory occupancy (500 - 2GB less depending on area and density) when running with random buildings enabled.

Project Rembrandt

Canvas System

High Level Architecture

FlightGear On Android

Mailing list digest

(by far the easiest option to populate the newsletter with contents is copying/pasting stuff from the forum and the mailing list or the git logs)

Usability Improvements

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 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.

The about dialog in FG 3.0 with extended graphics information

Forum digest

Git digest

Getting involved as a programmer

Please see Howto:Start core development

Release ChangeLog

This section lists changes committed this month that will be available in the next release, these will be copied to the release changelog shortly before a release (for each month), so that we hopefully get a comprehensive list of new features.

Interview with a contributor (Thorsten Renk)

In each edition we have an interview with a contributor. Suggestions for possible questions are available on interview questions, you are invited to come up with new questions and interview ideas obviously! Anyone is free to write an interview (with him-/herself or others) for next month's newsletter! If you'd like to help interview a contributor or get interviewed, please do consider adding yourself to the list of interview volunteers! To keep this going and less awkward, we are currently trying to come up with the convention that former interviewees become next month's interviewers.

  • How long have you been involved in FlightGear?

Since late 2009.

  • What are your major interests in FlightGear?

In the broadest sense, modelling of the environment. I've started out modelling clouds and weather, then as I discovered shaders I've also included dust, haze and light scattering effects, and of late I am into improved ways of texturing the terrain.

All these areas are related, so it's actually pretty powerful if the same person knows how to affect all of them - for instance, on a rainy day, we not only see an overcast cloud layer, but also the light beneath the clouds is dimmed, the sunrise has a different color hue, the ground is wet and hence darker than usual and there may be water on the ground. Being able to do all these things with the same environment model is pretty cool.

  • What project are you working on right now?

Procedural texturing, i.e. computing the texture mix to be displayed on the terrain inside the shader code - this allows for effects which would be impossible to achieve with the standard way of assigning textures due to the huge memory footprint.

  • What do you plan on doing in the future?

Who knows? I have plenty of things I would like to do and in principle know how to do - the problem is just making them run fast enough. It's pretty amazing how fast a graphics card can crunch numbers, but there are limits eventually. And basically every day, looking out of the window and observing the richness in detail on a real sky, I see how inadequate even our most advanced shading models really are. It's amazing how nature solves all the rendering equations in real time.

  • Are you happy with the way the FlightGear project is going?

Mostly. I know many people think FlightGear should have a project structure which works more like a commercial project, i.e. with clearly defined project goals and well-defined tasks. Rather, it is a somewhat anarchic collection of different individual projects merged together, often with multiple ways to solve the same problem (we support as many as four different ways to generate clouds for instance) which makes it not always easy for new contributers in need of a feature. But, coming from a research environment, I actually feel quite at home with such a development model - science works the same way, and for instance, while having several independent ways of doing the same thing can be seen as a waste of resources, it can also be seen as a feature - we explore many different ways of doing things which helps us find the best solution.

What I don't like is that there is often a lot of friction - for instance 3-D modellers feel underappreciated since most of the project decisions are made by the coders, there's an ongoing controversy between scripting space (Nasal) and C++ coding, and there are contributors of world scenery vs. custom scenery creators. While some level of discussion seems useful to me, related discussions often reach a point which I find no longer productive.

  • What do you enjoy most about developing for FlightGear?

The same thing Tolkien enjoyed about writing 'The Lord of the Rings' - the possibility to do subcreation. The visible FlightGear scenery is a world to explore, and this world is directly and visibly influenced by code I write. I can place myself high up in the air, look down and wave my mouse - and a whole layer of clouds appears. I get to decide what color the sunrise has. That's pretty fascinating as far as that goes.

And actually, I've always enjoyed flying through clouds in flight simulators - in the early ones, they were just so bad, but now I can make them just the way I've always wanted them to be. Flying between two scattered cloud layers is still one of my favourite activities.

  • Are there any "hidden features" you have worked on in FlightGear that new users may miss?

Plenty. Several I decided not to release since they are too tricky to control, so flags switch them off. For instance, there's a working model for wave lift in the Advanced Weather code, but there is no code to automatically place it (that's much more tricky to develop), so the wave needs to be placed by hand with a suitable line of Nasal. There are experimental cloud layer definitions which are just too expensive to render on a normal system. Many things I just try, and when I find no good way of implementing them, they stay in the code in a de-activated mode.

  • What advice can you give to new developers who want to get started on their first aircraft/new feature/Nasal script?

Be patient. The world doesn't revolve around you, but good work is recognized eventually.

Many people seem to expect that the FlightGear development community is just waiting for their contribution and jump to fill every requirement. But every developer has his own agenda, and the way things actually work is by convincing people that spending their time to support another project is a good idea. For instance, demonstrating that a project is feasible is a good idea before expecting help.

I know it looks pretty unwelcoming if someone wants to contribute and needs to go a long way before getting help. On the other hand, I know the other perspective of investing a lot of work into someone's project, just to see the other person disappear and all that work being lost. So I understand much better that established developers want to see that someone is serious about what he proposes to do before they jump in.

More questions are being collected here: Interview questions.

Stay tuned for next month's interview, featuring FlightGear contributor XXXXXXXX

Snapshot releases

Every now and then, easy-to-install development snapshots are created (usually, twice montlhy). These snapshos depict a recent state of the development version of FlightGear. By using them users can test out features that will be included in the upcoming release. Testers are encouraged to file bugs at the issue tracker.

The snapshot can be download via the links at the bottom of this page: http://www.flightgear.org/download/. Updates and feedback can be found at the forum.

Translators required

En.gif The FlightGear Wiki still needs help for translating it into various languages. If you are interested in making the FlightGear Wiki multi-language then start at Help:Translate.
De.gif Das FlightGear Wiki benötigt immer noch Hilfe bei der Übersetzung in verschiedene Sprachen. Wenn Du Interesse daran hast, das FlightGear Wiki Mehrsprachig zu machen, dann fang doch mit Help:Übersetzen an.
Nl.gif De FlightGear Wiki kan nog steed hulp gebruiken bij het vertalen van artikelen. Als je interesse hebt om de wiki meertalig te maken, raden we je aan om een kijkje te nemen bij Help:Vertalen.

Nasal for newbies

New software tools and projects

FlightGear addons and mods

In the hangar

All the way back in May 2011, we addopted a new status-rating system for aircraft. So far, only a few have actually been rated, as can be seen in the list 'hockenberry' set up at Google Docs. If you're an aircraft developer and your aircraft is/are not on the list, please consider rating their status. All you'll need to know/do is described at Formalizing Aircraft Status. If you'd just like to get started contributing to FlightGear, this would also seem like an excellent way to get started.

New aircraft

Updated aircraft

Liveries

Scenery corner

OpenStreetMap license change completed

On September 12, OpenStreetMap (OSM) completed its long expected license change. From now on, OSM data is licensed under the Open Database Licence.

Tools

It is now possible to update the geographical data of static models using our webtools, just like you are now used to to with the shared objects. You just have to select the object corresponding to the 3D model, and then click on "update".

Airports

Aircraft of the month

Airport of the month

Screenshot of the month

Suggested flights

Aircraft reviews

Wiki updates

New articles

<DynamicArticleList>

 type=new
 count=10

</DynamicArticleList>

New aircraft articles

<DynamicArticleList>

 type=new
 count=10
 categoryRoot=Aircraft

</DynamicArticleList>

Most popular newsletters

<DynamicArticleList>

 type=hot
 count=5
 categoryRoot=FlightGear Newsletter

</DynamicArticleList>

Community news

FlightGear on YouTube

New tutorials and screencasts

Forum news

Multiplayer

Virtual airlines

FlightGear events

Useful links

And finally ...

Contributing

One of the regular thoughts expressed on the FlightGear forums is "I'd like to contribute but I don't know how to program, and I don't have the time". Unfortunately, there is a common mis-conception that contributing requires programming and lots of free time. In fact, there are a huge range of ways to contribute to the project without needing to write code or spending days working on something.

For ideas on starting to contribute to FlightGear, you may want to check out: Volunteer.

To learn more about how the project works, please see this short essay written by Thorsten.

Call for volunteers

  • The Flightgear On Android team is looking for testers
  • The Target4Today team is looking for volunteers to help improving FlightGear's combat support
  • The OpenRadar project is looking for a new maintainer.
  • The FGFSPM (FlightGear Package Manager) is looking for a new maintainer.

Did you know