https://wiki.flightgear.org/w/api.php?action=feedcontributions&user=Timoore&feedformat=atomFlightGear wiki - User contributions [en]2024-03-28T21:14:56ZUser contributionsMediaWiki 1.39.6https://wiki.flightgear.org/w/index.php?title=Howto:Improve_framerates&diff=20165Howto:Improve framerates2010-03-21T09:49:46Z<p>Timoore: /* 3D Models */</p>
<hr />
<div>Anything below about 15 frames per second (fps) is close to unusable, or at least, will not be enjoyable. <br />
Additionally, the more the framerate decreases, the more other features of the simulation will suffer. The current [[FlightGear]] software architecture is such that long rendering times (slow framerates) may prevent other parts of the flight simulator, such as the autopilot, from having sufficient CPU time to respond correctly in the context of the simulation.<br />
<br />
FlightGear's framerate is influenced by various factors, including:<br />
<br />
* [[scenery]] complexity (terrain,clouds, trees, particles, random 3D objects, multiplayer/AI traffic)<br />
* [[cockpit]] complexity (2D vs. 3D)<br />
* environmental options (eg. visibility, precipitation)<br />
* [[FDM]] update interval<br />
* AI scenarios<br />
* [[aircraft]] speed (scenery paging)<br />
<br />
You can disable most features that often adversely affect framerate. Here is a collection of settings that you may change to improve your framerate. Please note that some of these will only take effect if they're specified at startup and cannot be changed after the simulation has started.<br />
<br />
=3D Models=<br />
Contrary to what many people believe, the impact of high vertex-count models on framerate is fairly minimal. In addition, for graphics hardware built after 2004 and intended for games (example: Nvidia GeForce 6 series), textures are close to, or completely, free. Today (in 2010), the major graphics bottleneck is between the CPU and the GPU. The goal in optimizing models is to store as much as possible on the GPU and reduce the number of rendering commands sent to the GPU. For graphic artists, the key things to remember are:<br />
<br />
* Reduce the number of different textures used on a model to a minimum. It's better to use a few (or one!) big textures than many little ones.<br />
* Avoid mixing textured and untextured geometry in the same model. Build the coloring into the texture map instead.<br />
* Within your modeling tool, try work with large meshes instead of groups of small meshes. I know that this can result in a very unpleasant workflow; we are working on optimizations in Flightgear that will combine mesh parts automatically.<br />
* Textures containing alpha cause various problems. In order to be rendered correctly, translucent geometry must be sorted by distance on the CPU. Furthermore, geometry is sorted on a course level (basically by mesh), so you may see various artifacts. If you have some transparent parts of a model,<br />
you should violate the first rule above and assign those parts to their own texture.<br />
* Don't assign an RGBA texture to a model that is completely opaque!<br />
<br />
=AI traffic=<br />
[[Interactive Traffic|AI-traffic]] is computer controlled traffic, which includes traffic over the [[Howto: Multiplayer|MP network]]. By turning off this function you're not able to see other aircraft. <br />
Most stuttering, or lag, in FlightGear is caused by AI traffic. Especially heavy models need quite some time to load, eg the [[Grumman F-14 Tomcat|F-14]] or the [[Rockwell B-1B Lancer|B-1B]]. Every time a new aircraft enters your local area, your computer has to load the model for that particular aircraft. The time required to read the data from the drive creates a stutter, or lag, which can range from a minor annoyance to a crash. The busier the place you fly, the more lag you'll get; eg flying around KSFO will generate more lag than a flight near EGLL, since there is more traffic near KSFO.<br />
<br />
=Operating System Specific=<br />
Many newer Linux distributions, like openSUSE 11.2, come with KDE4 as a desktop environment. While it allows some fancy desktop effects, it is known to consume enough computing power from the CPU and the graphics card to slow FlightGear down by 10 frames per second or even more. Choosing another window manager from the login screen, like xfce results in higher FlightGear performance. Setting "Compositing" to "off" in KDE4 might also help.<br />
<br />
= External links =<br />
[http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_15286 Optimizing file size, performance and streaming of 3D content]<br />
<br />
[[Category:Howto|Improve Framerates]]</div>Timoorehttps://wiki.flightgear.org/w/index.php?title=Talk:FlightGear_Git&diff=10570Talk:FlightGear Git2009-02-05T10:24:06Z<p>Timoore: </p>
<hr />
<div>= Questions =<br />
== mob access ==<br />
If this experiment is meant to become a community experience, for both developers and users, how about enabling mob access, too [http://repo.or.cz/mob.html]? There are often people that are neither core developers, nor aspire to become one, but who are technical users who'd like to more easily submit patches.<br />
While most long-term FlightGear users know about the fact that "FlightGear life" takes places on the mailing lists, many others often just end up sharing patches via the forums, sf.net patch trackers or even via IRC.<br />
So, this would be an extremely easy way for potential contributors to more easily share local modifications with fellow users, without having any effect on any of the trusted main branches or organizational burden on the project lead, so it would sort of become a "sandbox" environment with "wild" code. Core developers could more easily keep track of patches submitted this way, too.--[[User:MILSTD|MILSTD]] 07:29, 4 February 2009 (EST)<br />
<br />
The mob branch idea is intriguing, but it is so easy for anyone to set up their own forked flightgear repositories, especially on repo.or.cz, that I don't think it's necessary to enable the mob branch. It's really more useful to be able to say "pull the foo branch in my repository" than "pull my cool commit out of the mob branch."--[[User:Timoore|Timoore]] 05:24, 5 February 2009 (EST)</div>Timoorehttps://wiki.flightgear.org/w/index.php?title=FlightGear_Git&diff=10561FlightGear Git2009-02-04T09:41:30Z<p>Timoore: </p>
<hr />
<div>The Flightgear project has been experimenting with the [http://git-scm.com Git] distributed version control system as a replacement for CVS.<br />
<br />
== Git Flightgear Quickstart ==<br />
The Git repositories are at http://repo.or.cz/w/simgear.git and http://repo.or.cz/w/flightgear.git. To check out the maintenance branch of Simgear:<br />
<br />
git clone git://repo.or.cz/simgear.git<br />
cd simgear<br />
git checkout -b maint origin/maint<br />
<br />
Repeat for Flightgear:<br />
<br />
git clone git://repo.or.cz/flightgear.git<br />
cd flightgear<br />
git checkout -b maint origin/maint<br />
<br />
== Motivation ==<br />
Much has been written on the advantages of Git over CVS. For us, some advantages are:<br />
* Much better support for branches and merging branches. This is especially important for creating bug-fix releases for major releases while still allowing work on the next major release to continue. It is also very nice for a developer's personal workflow.<br />
* Easier path for contributors to submit changes and developers to integrate them;<br />
* Much better support for everyday tasks like searching the project history for changes, viewing changes, bisecting the project history to find the original source of a bug.<br />
<br />
== Flightgear and Git ==<br />
<br />
The repositories at <tt>repo.or.cz</tt> are experimental, but when we do switch to Git the real repositories will be set up similarly. For historical reasons there continue to be separate repositories for Simgear and Flightgear. There are 3 interesting branches in the repositories. Listed in order from least stable to most:<br />
* <tt>next</tt> The current tip of new development. This branch should always compile and run, but various things could be broken.<br />
* <tt>master</tt> The tip of stable, tested new features. If we were to make a new release today, we would start from the tip of this branch. New features that have been "cooking" in the <tt>next</tt> branch for a few days or weeks will be merged here.<br />
* <tt>maint</tt> Bug fixes for the most recently released Flightgear. When a release is made from <tt>master</tt>, this branch is reset to it.<br />
* <tt>cvs</tt> While we are still using CVS, this branch tracks the HEAD of the Simgear and Flightgear CVS repositories. It is '''not''' a real-time mirror of CVS, but reflects the state of the CVS repositories at the time that <tt>maint</tt> and <tt>next</tt> were last updated.<br />
<br />
For now, almost every commit in <tt>next</tt>, <tt>master</tt> and <tt>maint</tt> are identical to commits in the CVS repositories, and the contents of <tt>next</tt> should be identical to those of CVS HEAD. You can verify this:<br />
<br />
git diff origin/cvs..origin/next<br />
<br />
should return nothing. The only commits that don't exist in CVS are those that set the version numbers of the maintenance releases because the maintenance releases don't exist as such in CVS.<br />
<br />
Even though the contents of <tt>next</tt> are the same as CVS HEAD, its history is different. It includes many merges from <tt>maint</tt> and branches based on <tt>maint</tt>. This makes it easier to move new work from <tt>next</tt> back to <tt>master</tt> and <tt>maint</tt> after it has had time to cook.<br />
<br />
This arrangement follows the scheme used by the Git maintainers.<br />
[http://www.kernel.org/pub/software/scm/git/docs/howto/maintain-git.txt This description] is very technical; you will surely have achieved git-fu if completely understand it. However, the idea of maintaining several branches of different stability is common in collaborative software projects.<br />
<br />
== Git Tutorials and Resources ==<br />
* Git [http://git-scm.com/documentation documentation and tutorials]<br />
* Git as a [http://tomayko.com/topics/git way of life].<br />
* [http://wiki.github.com/bogolisk/egg Egg], a cool Git emacs mode.<br />
* A guide to [http://nathanj.github.com/gitguide/ using Git on Windows]</div>Timoorehttps://wiki.flightgear.org/w/index.php?title=FlightGear_Git&diff=10560FlightGear Git2009-02-04T09:38:15Z<p>Timoore: </p>
<hr />
<div>The Flightgear project has been experimenting with the [http://git-scm.com Git] distributed version control system as a replacement for CVS.<br />
<br />
== Git Flightgear Quickstart ==<br />
The Git repositories are at http://repo.or.cz/w/simgear.git and http://repo.or.cz/w/flightgear.git. To check out the maintenance branch of Simgear:<br />
<br />
git clone git://repo.or.cz/simgear.git<br />
cd simgear<br />
git checkout -b maint origin/maint<br />
<br />
Repeat for Flightgear:<br />
<br />
git clone git://repo.or.cz/flightgear.git<br />
cd flightgear<br />
git checkout -b maint origin/maint<br />
<br />
== Motivation ==<br />
Much has been written on the advantages of Git over CVS. For us, some advantages are:<br />
* Much better support for branches and merging branches. This is especially important for creating bug-fix releases for major releases while still allowing work on the next major release to continue. It is also very nice for a developer's personal workflow.<br />
* Easier path for contributors to submit changes and developers to integrate them;<br />
* Much better support for everyday tasks like searching the project history for changes, viewing changes, bisecting the project history to find the original source of a bug.<br />
<br />
== Flightgear and Git ==<br />
<br />
The repositories at <tt>repo.or.cz</tt> are experimental, but when we do switch to Git the real repositories will be set up similarly. For historical reasons there continue to be separate repositories for Simgear and Flightgear. There are 3 interesting branches in the repositories. Listed in order from least stable to most:<br />
* <tt>next</tt> The current tip of new development. This branch should always compile and run, but various things could be broken.<br />
* <tt>master</tt> The tip of stable, tested new features. If we were to make a new release today, we would start from the tip of this branch. New features that have been "cooking" in the <tt>next</tt> branch for a few days or weeks will be merged here.<br />
* <tt>maint</tt> Bug fixes for the most recently released Flightgear. When a release is made from <tt>master</tt>, this branch is reset to it.<br />
* <tt>cvs</tt> While we are still using CVS, this branch tracks the HEAD of the Simgear and Flightgear CVS repositories. It is '''not''' a real-time mirror of CVS, but reflects the state of the CVS repositories at the time that <tt>maint</tt> and <tt>next</tt> were last updated.<br />
<br />
For now, almost every commit in <tt>next</tt>, <tt>master</tt> and <tt>maint</tt> are identical to commits in the CVS repositories, and the contents of <tt>next</tt> should be identical to those of CVS HEAD. You can verify this:<br />
<br />
git diff origin/cvs..origin/next<br />
<br />
should return nothing. The only commits that don't exist in CVS are those that set the version numbers of the maintenance releases because the maintenance releases don't exist as such in CVS.<br />
<br />
Even though the contents of <tt>next</tt> are the same as CVS HEAD, its history is different. It includes many merges from <tt>maint</tt> and branches based on <tt>maint</tt>. This makes it easier to move new work from <tt>next</tt> back to <tt>master</tt> and <tt>maint</tt> after it has had time to cook.<br />
<br />
This arrangement follows the scheme used by the Git maintainers.<br />
[http://www.kernel.org/pub/software/scm/git/docs/howto/maintain-git.txt This description] is very technical; you will surely have achieved git-fu if completely understand it. However, the idea of maintaining several branches of different stability is common in collaborative software projects.<br />
<br />
== Git Tutorials and Resources ==<br />
* Git [http://git-scm.com/documentation documentation and tutorials]<br />
* Git as a [http://tomayko.com/topics/git way of life].<br />
* [http://wiki.github.com/bogolisk/egg Egg], a cool Git emacs mode.</div>Timoorehttps://wiki.flightgear.org/w/index.php?title=FlightGear_Git&diff=10559FlightGear Git2009-02-04T09:12:46Z<p>Timoore: New page: The Flightgear project has been experimenting with the [http://git-scm.com Git] distributed version control system as a replacement for CVS. == Git Flightgear Quickstart == The Git reposi...</p>
<hr />
<div>The Flightgear project has been experimenting with the [http://git-scm.com Git] distributed version control system as a replacement for CVS.<br />
<br />
== Git Flightgear Quickstart ==<br />
The Git repositories are at http://repo.or.cz/w/simgear.git and http://repo.or.cz/w/flightgear.git. To check out the maintenance branch of Simgear:<br />
<br />
git clone git://repo.or.cz/simgear.git<br />
cd simgear<br />
git checkout -b maint origin/maint<br />
<br />
Repeat for Flightgear:<br />
<br />
git clone git://repo.or.cz/flightgear.git<br />
cd flightgear<br />
git checkout -b maint origin/maint<br />
<br />
== Motivation ==<br />
Much has been written on the advantages of Git over CVS. For us, some advantages are:<br />
* Much better support for branches and merging branches. This is especially important for creating bug-fix releases for major releases while still allowing work on the next major release to continue. It is also very nice for a developer's personal workflow.<br />
* Easier path for contributors to submit changes and developers to integrate them;<br />
* Much better support for everyday tasks like searching the project history for changes, viewing changes, bisecting the project history to find the original source of a bug.<br />
<br />
== Flightgear and Git ==<br />
<br />
The repositories at <tt>repo.or.cz</tt> are currently experimental, but when we do switch to Git the real repositories will be set up similarly. For historical reasons there continue to be separate repositories for Simgear and Flightgear. There are 3 interesting branches in the repositories. Listed in order from least stable to most:<br />
* <tt>next</tt> The current tip of new development. This branch should always compile and run, but various things could be broken.<br />
* <tt>master</tt> The tip of stable, tested new features. If we were to make a new release today, we would start from the tip of this branch. New features that have been "cooking" in the <tt>next</tt> branch for a few days or weeks will be merged here.<br />
* <tt>maint</tt> Bug fixes for the most recently released Flightgear. When a release is made from <tt>master</tt>, this branch is reset to it.<br />
* <tt>cvs</tt> While we are still using CVS, this branch tracks the HEAD of the Simgear and Flightgear CVS repositories. It is '''not''' a real-time mirror of CVS, but reflects the state of the CVS repositories at the time that <tt>maint</tt> and <tt>next</tt> were last updated.<br />
<br />
For now, almost every commit in <tt>next</tt>, <tt>master</tt> and <tt>maint</tt> are identical to commits in the CVS repositories, and the contents of <tt>next</tt> should be identical to those of CVS HEAD. You can verify this:<br />
<br />
git diff origin/cvs..origin/next<br />
<br />
should return nothing. The only commits that don't exist in CVS are those that set the version numbers of the maintenance releases because the maintenance releases don't exist as such in CVS.<br />
<br />
Even though the contents of <tt>next</tt> are the same as CVS HEAD, it's history is different.<br />
== Git Tutorials and Resources ==</div>Timoorehttps://wiki.flightgear.org/w/index.php?title=Portal:Developer&diff=10558Portal:Developer2009-02-04T06:59:14Z<p>Timoore: </p>
<hr />
<div><div align="center"><br />
[[Portal:Developer|Developer]] - [[Portal:User|User]]<br />
</div><br />
<br />
{|style="border-spacing:8px; margin:0px -8px;"<br />
|class="MainPageBG" style="width:100%; border:1px solid #d9e2e2; background:#efefef; vertical-align:top; color:#000;"|<br />
{|width="100%" cellpadding="1" cellspacing="5" style="vertical-align:top; background:#efefef;"<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">The Developer Portal</h2><br />
|-<br />
|style="color:#000;"| <br />
This portal is for developers contributing to FlightGear. If you wanna help with FlightGears development, it's a good idea to subscribe yourself to the [http://lists.sourceforge.net/lists/listinfo/flightgear-devel FlightGear devel] mailing list. The [http://sourceforge.net/mailarchive/forum.php?forum_name=flightgear-devel list archive] is also available and should be searched before posting the same question.<br><br><br />
'''Please choose a sub-portal:'''<br />
* [[Portal:Developer/Aircraft|Aircraft]]<br />
* [[Portal:Developer/Scenery|Scenery]]<br><br><br />
'''The FlightGear project is looking for organizations/individuals who would be willing to help sponsor a fulltime project coordinator/manager to help oversee the overall development process If you are interested in helping or have anything else to contribute to this issue, please subscribe to the the [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg11813.html FlightGear Devel mailing list] to discuss details.''' (Note that the FlightGear project can apply for free funding/sponsoring with [http://www.nlnet.nl nlnet]-applications are to be sent [http://www.nlnet.nl/foundation/request/index.html here]-you can help prepare a template for applying: [[Funding Application]])<br />
|}<br />
|}<br />
<!--<br />
<br />
-------------------------Today's featured article, Did you know------------------------><br />
{|style="border-spacing:8px; margin:0px -8px;"<br />
|class="MainPageBG" style="width:50%; border:1px solid #d9e2e2; background:#efefef; vertical-align:top; color:#000;"|<br />
{|width="100%" cellpadding="2" cellspacing="5" style="vertical-align:top; background:#efefef;"<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Current Efforts/Branches & Work in Progress</h2><br />
|-<br />
|style="color:#000;"| <br />
*[[FlightGear Package Manager]] (New! Alpha release of [[Java]]/[[XML]] package manager!)<br />
*[[Walk View]] (New! walk view code!)<br />
*[[FlightGear Contest]]<br />
'''[[Work in progress|More...]]'''<br />
<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Latest Organizational Issues</h2><br />
|-<br />
|style="color:#000;"| <br />
* [[ Project Infrastructure Enhancements ]]<br />
* [[Google Summer of Code Candidate Projects]] - application template to allow community members to prepare a possible application to decrease the effort required to actually apply<br />
* [[Pending Patches]]<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Background Info</h2><br />
|-<br />
|style="color:#000;"| <br />
* [[Programming Resources]]<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Compiling</h2><br />
|-<br />
|style="color:#000;"| <br />
* [[ Building Flightgear ]]<br />
* [[ Building Flightgear - Windows]]<br />
* [http://macflightgear.sourceforge.net/home/documents/how-to-build-flightgear-cvs-on-mac-os-x/ Building Flightgear - Mac OS X]<br />
* [[ Building FlightGear Launch Control ]]<br />
* [[ Building Terragear ]]<br />
* [[ Keeping FlightGear (win32) up to date without compiling]]<br />
* [[ OpenSceneGraph ]]<br />
* [[ Tools of the Trade ]]<br />
* [[ Using TortoiseCVS with FlightGear ]]<br />
* [[ Flightgear and Git ]]<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Contributing</h2><br />
|-<br />
|style="color:#000;"| <br />
* [[ Code Cleanup ]] <br />
* [[ Contributor Repositories ]] mirrors, branches and forks privately maintained by contributors<br />
* [[ Development Resources ]]<br />
* [[ Extension Support ]]<br />
* [[ Submitting Patches ]] <br />
* [[ Technical Reports ]]<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Code Internals</h2><br />
|-<br />
|style="color:#000;"| <br />
* [[Command Parameters]] <br />
* [[ FDM API ]]<br />
* [[ File Formats ]]<br />
* [[ Initialization Sequence ]]<br />
* [[ Nasal scripting language ]]<br />
* [[ Property Tree ]]<br />
* [[ Subsystems ]] <br />
* [[ UML Diagrams ]]<br />
* [[ YASim ]]<br />
* [[ FlightGear 1.0 aircraft names for command line|1.0.0 a/c names for command line]]<br />
<br />
<br />
|-<br />
|}<br />
<br />
|class="MainPageBG" style="width:50%; border:1px solid #d9e2e2; background:#efefef; vertical-align:top"|<br />
{| width="100%" cellpadding="2" cellspacing="5" style="vertical-align:top; background:#efefef;"<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Todo</h2><br />
|-<br />
|style="color:#000;"| <br />
* [[ Bugs ]]<br />
* [[ Feature Requests / Proposals / Ideas ]]<br />
* [[ FGFS Todo ]]<br />
* [[ FlightGear Expo Checklist ]]<br />
* [[ Long Term Goals ]]<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Done</h2><br />
|-<br />
|style="color:#000;"| <br />
* [[ Changes since 0.9.10 ]]<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">HowTos</h2><br />
|-<br />
|style="color:#000;"| <br />
* [[Howto: Add smooth ("Ambient Occlusion") shadows in Blender|Add smooth shadows in Blender]]<br />
* [[Howto: 3D Aircraft Models|3D Aircraft Models]]<br />
* [[Howto: Add aircraft lights|Add aircraft lights]]<br />
* [[Howto: Edit a livery|Edit a livery]]<br />
* [[Howto: Illuminate faces|Illuminate faces]]<br />
* [[Howto: Make a helicopter|Make a helicopter]]<br />
* [[Howto: Set up a multiplayer server|Set up a multiplayer server]]<br />
'''[[:Category:Howto|More...]]'''<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Instrumentation</h2><br />
|-<br />
|style="color:#000;"| <br />
* [[ Creating instruments for FG ]]<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Nasal scripting</h2><br />
|-<br />
|style="color:#000;"| <br />
* [[ Nasal scripting language ]]<br />
* [[ Writing simple scripts in %22nasal%22 ]]<br />
* [[ Walk View]]<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Autopilot configuration</h2><br />
|-<br />
|style="color:#000;"| <br />
* [http://www.flightgear.org/Docs/XMLAutopilot/ FlightGear Autopilot] (Theory, Configuration, and Tuning)<br />
* [[ Autopilot Tuning Resources ]]<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">3D Modeling</h2><br />
|-<br />
|style="color:#000;"| <br />
* [[ Howto: 3D Aircraft Models|3D Aircraft Models]] (howto)<br />
* [[ Aircraft Information Resources ]]<br />
* [[ Model Import and Export ]]<br />
* [[ Modeling - FAQ ]]<br />
* [[ Modeling - Getting Started ]]<br />
* [[ Modeling Resources ]]<br />
* [[ Modeling - SketchUp]]<br />
* [[ Normals and Transparency Tutorial ]]<br />
* [http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro Blender3D Modeling]<br />
|-<br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Scenery</h2><br />
|-<br />
|style="color:#000;"| <br />
* [[ Blender Ground Signs Tutorial]]<br />
* [[ Placing 3D Objects with the UFO ]]<br />
* [[ Signs ]] (placing and explanation)<br />
* [[ Using Terragear ]]<br />
* [[ Using the Custom Scenery TerraGear Toolset ]]<br />
* [[ Building_terragear-cs_in_Ubuntu_64|Building Terragear-cs in Ubuntu Hardy]]<br />
|-<br />
|}<br />
|}<br />
<br />
__NOTOC__<br />
__NOEDITSECTION__<br />
<br />
== Developer Documentation ==<br />
=== RFC Topics ===<br />
'''Clarification:'''In its current form, the RFC section is exclusively based on and covered by previous mailing list and forum discussions (as well as various wiki entries), as such it is not supposed to reflect work in progress (RFC="Request For Comments" and not WIP), but is rather to be seen as an attempt to provide comprehensive analyses and summaries of key issues identified in various FlightGear related discussions and feature requests (which are to be linked to in the corresponding resource sections, if that didn't yet take place, it's because of most of these RFCs being indeed WIP).<br />
<br />
Thus, RFC entries are not meant to imply anyone "working" on any of these issues, in fact only because an RFC entry is listed here doesn't necessarily mean that work on that particular issue is endorsed or prioritized by the FlightGear community. <br />
These RFC documents are however intended to hopefully help increase awareness of long-standing issues and challenges affecting FlightGear's evolution and overall development progress in order to solicit community feedback about possible approaches to address these in an efficient and structured fashion.<br />
Anybody is welcome to comment on, refine and help develop new strategies to tackle the challenges presented in these RFCs.<br />
<br />
<br />
* [[Next Generation Scenery ]] - revamping the FG scenery engine<br />
* [[Keyboard function priority list]] - reorganizing FlightGear keybindings<br />
* [[FlightGear Sessions]] - discussing possible steps to finally allow aircraft to be reliably switched at runtime<br />
* [[Formalizing Aircraft Status]] - discussing suggestions about how to more properly describe aircraft development status<br />
* [[Simplifying Aircraft Deployment]] - identifying potential steps to simplify deployment of FlightGear aircraft<br />
* [[FDM engine feature standardization]] - discussing possible steps to standardize feature support of mainstream FlightGear FDM engines<br />
* [[FlightGear Glass Cockpits]] - discussing required infrastructure changes to enable non-developers to easily access FlightGear-internals in order to enable them to model complex glass cockpit-type aircraft instrumentation systems<br />
* [[Recommended Property Tree Enhancements]] - discussing possible property tree enhancements to help ensure integrity of crucial runtime state<br />
* [[Backwards Compatibility Initiative]] - discussing possible ways to improve FlightGear's backwards compatibility <br />
* [[Recommended Project Policies]] - discussing recommended policies for future contributions to the project<br />
* [[Distributed Interactive Simulation|Multiplayer Enhancements]] - discussing possible steps to enhance FlightGear's Multiplayer support<br />
* [[Property Tree Reorganization]] - reorganizing the property tree (i.e. implementing and enforcing existing property/node naming conventions)<br />
* [[Autopilot Enhancements]] - enhancing the autopilot infrastructure<br />
* [[Unified XML Processing API]] - Unifying XML Processing<br />
* [[Usability Improvements]] - improving FlightGear's usability<br />
<br />
<br />
=== Miscellaneous ===<br />
* [[ Glass Cockpit Projects ]]<br />
* [[ Copyright Inquiry ]]<br />
* [http://www.cafepress.com/fgfs_gear FlightGear - Gear] <br />
* [[ Sign Specification Proposal ]]<br />
<br />
== Middleware & Base Package Development ==<br />
<br />
* [[:Category:Aircraft TODO]]<br />
<br />
=== Misc ===<br />
* [[FGSD- How to make a airport]]<br />
<br />
==Old work in progress links==<br />
*Warning! These links outdated, and some of these projects are finished:<br />
* [http://www.flightgear.org/forums/viewtopic.php?t=1378 Efforts to create photo realistic scenery for FlightGear] (Images: [http://www.brest-metropole-oceane.fr/vueduciel/images/101_106.jpg] [http://blaniel.free.fr/pub/flightgear/brest/brest1.png] [http://helijah.free.fr/LFRB/fgfs-screen-001.jpg] [http://helijah.free.fr/LFRB/fgfs-screen-003.jpg]<br />
* [http://www.flightgear.org/forums/viewtopic.php?t=755 New aircraft model under development: Bede BD-5J]<br />
* [http://www.flightgear.org/forums/viewtopic.php?t=542 F14-Tomcat aircraft model under development] ([[Grumman F-14 Tomcat|F-14 released!]])<br />
* [http://www.flightgear.org/forums/viewtopic.php?t=1001 787 being revamped]<br />
* [http://www.flightgear.org/forums/viewtopic.php?t=1436 LFLJ enhancements]<br />
* [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg16176.html Free Walking mode for FlightGear using the Jeep vehicle in CVS]<br />
* [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg15388.html Random Trees for FlightGear]</div>Timoorehttps://wiki.flightgear.org/w/index.php?title=Next_Generation_Scenery&diff=4191Next Generation Scenery2007-11-03T17:46:39Z<p>Timoore: Beginning of page on new scenery system</p>
<hr />
<div>These are some ideas for new scenery and new scenery engine for FlightGear.<br />
<br />
== Why? ==<br />
We want more detailed scenery that's visible farther away, for a better VFR experience all around. Specifically, more detail makes the near-ground experience<br />
more realistic, especially for helicopter flight; scenery that truly extends to the visible horizon would make high-altitude flight more interesting. In addition, it's fun to fly around a richly detailed world.</div>Timoorehttps://wiki.flightgear.org/w/index.php?title=OpenSceneGraph&diff=3687OpenSceneGraph2007-07-29T23:11:20Z<p>Timoore: /* The patched version (NOTE: The patched version should not be needed anymore) */</p>
<hr />
<div>__TOC__<br />
<br />
As of October 29th 2006, FlightGear has migrated from PLIB to OpenSceneGraph.<br />
<br />
Thanks to Mathias Fröhlich, we can use an current OpenSceneGraph SVN version <br />
<br />
== Getting OpenSceneGraph ==<br />
<br />
=== The latest OSG version from svn ===<br />
<br />
The OpenSceneGraph project uses [http://svnbook.red-bean.com/nightly/en/index.html Subversion (SVN)].<br />
<br />
<br />
To check out OpenSceneGraph:<br />
<br />
svn checkout http://www.openscenegraph.com/svn/osg/OpenSceneGraph/trunk OpenSceneGraph <br />
<br />
The OpenSceneGraph repository includes all parts of OSG you need.<br />
<br />
=== The patched version (NOTE: The patched version should not be needed anymore) ===<br />
OpenSceneGraph-SVN is now up to date with the required patches and should serve as well for running FlightGear. <br />
<br />
The MSVC8 (Visual Sudio 2005) win32 build dependencies for OpenSceneGraph can be found at http://www.oflebbe.de/oflebbe/FlightGear. Look out for the link to http://www.oflebbe.de/oflebbe/FlightGear/3rdparty-2006-11-25.zip.<br />
<br />
== Compiling OpenSceneGraph ==<br />
<br />
OpenSceneGraph uses cmake. A minimal build instruction for unix systems is<br />
<br />
mkdir build.osg<br />
cd build.osg<br />
ccmake ../path/to/osg/source<br />
make<br />
make install<br />
<br />
On other systems the steps might be different.<br />
<br />
Recommended options to set in the ccmake menus:<br />
* Build type: Release<br />
* You don't need to build the examples, wrappers or applications.<br />
<br />
=== Installing OpenSceneGraph and FlightGear with --prefix ===<br />
<br />
If you use --prefix to choose were to install FlightGear and do not want to install OSG globally on the system this can be done with the following method:<br />
<br />
OpenSceneGraph uses cmake so to build it do<br />
<br />
mkdir build.osg<br />
cd build.osg<br />
cmake -D CMAKE_BUILD_TYPE="Release" -D CMAKE_CXX_FLAGS="-O3" -D CMAKE_C_FLAGS="-O3" \<br />
-D CMAKE_INSTALL_PREFIX:PATH="$(MY_PREFIX)" ../path/to/osg/source<br />
make<br />
make install<br />
<br />
or if you want to avoid needing to set LD_LIBRARY_PATH<br />
<br />
mkdir build.osg<br />
cd build.osg<br />
cmake -D CMAKE_BUILD_TYPE="Release" -D CMAKE_CXX_FLAGS="-O3" -D CMAKE_C_FLAGS="-O3" \<br />
-D CMAKE_INSTALL_PREFIX:PATH="$(MY_PREFIX)" -D CMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOLEAN="true" ../path/to/osg/source<br />
make<br />
make install<br />
<br />
<br />
Configure and build SimGear and FlightGear with --prefix as usual.<br />
<br />
No need to install any quickly changing software globally.<br />
<br />
Installing with --prefix is a very nice way to keep several distinct and independent versions of FlightGear around. To start a new $PREFIX directory you'll also need to install plib in it, but that is easy. Most other needed dependencies are usually available through the package system of most Linux distributions (e.g. FreeGLUT, SDL, ALSA, etc).<br />
<br />
=== Compilation work arounds ===<br />
<br />
If you get errors when compiling the patched OpenSceneGraph after having compiled (and installed) OpenThreads and Producer successfully (happens on Arch Linux), you may have to add the following to your 'make':<br />
<br />
'''make PRODUCER_INC_DIR=/usr/local/include \'''<br />
'''PRODUCER_LIB_DIR=/usr/local/lib \'''<br />
'''OPENTHREADS_INC_DIR=/usr/local/include \'''<br />
'''OPENTHREADS_LIB_DIR=/usr/local/lib'''<br />
<br />
== Current issues ==<br />
<br />
* The 2D Panels and the rendering order of instruments ... is wrong.<br />
<br />
* transparency issues:<br />
** runway lights shine through panel:<br />
** runway lights shine through cloud layers in an awkward way:<br />
** 2D-cloud layers flood into cockpit<br />
** The prop of the C172 block the view on the waves of the carrier<br />
** The reflector gun sight on the Seahawk causes other transparent objects (carrier wake etc.) to disappear<br />
** A new overhead window in the C172 (inside out)<br />
<br />
* "Near clipping problem" (nearby objects are partially clipped at left and right window boarder, ie seats in C172 inside)<br />
<br />
* Runway lighting seems to have rendering artefacts on ATI Cards.<br />
<br />
* Enhanced runway lighting option in the drop-down menu seems to have no effect - light always appear enhanced.<br />
<br />
* panel hotspots are not correctly displayed in 3D panels using the 2D hotspot hack; are hidden behind 3D model geometry<br />
<br />
* Seneca II HSI: upper instrument clipping issue for NAV/HDG flags, heading bug, pointer<br />
<br />
<br />
[[List of 'compatible' aircrafts]] TO BE CONTINUED<br />
<br />
== Missing features ==<br />
Due to the migration from PLIB to OSG, some of the features seen in past versions of FlightGear are now temporarily non-functional. These are:<br />
<br />
* 3D-billboard objects are not displayed right now (ie trees or radio masts)<br />
<br />
* 3D clouds<br />
<br />
* Rendering of some scenes is not perfect.<br />
<br />
* Shadows<br />
<br />
* Exhaust shader<br />
<br />
* Chrome Shader<br />
<br />
* Weather Radar<br />
<br />
* Menu Items have no effect<br />
** Enhanced Runway Lights<br />
** Bump Mapped Clouds<br />
<br />
== Miscelaneous OSG benefits ==<br />
<br />
Mathias: "I think that we should make use in the longer term of the Producers <br />
capabilities for multiple view installations.<br />
But not only multipipe installs will benefit from that. The Producer will also <br />
help to get benefit from multicore SMP machines.<br />
For that the following article is of huge interrest:<br />
http://www.donburns.net/OSG/Articles/OSGMP/"<br />
<br />
== Getting the PLIB Code ==<br />
<br />
Use the tag <tt>PRE_OSG_PLIB_20061029</tt> for checking out the branch with the plib scenegraph.<br />
<br />
<br />
For SimGear, this works (more or less) as follows:<br />
<br />
<br />
'''cvs -d :pserver:cvsguest@cvs.simgear.org:/var/cvs/SimGear-0.3 login'''<br />
'''CVS passwd: guest'''<br />
'''cvs -d :pserver:cvsguest@cvs.simgear.org:/var/cvs/SimGear-0.3 co source'''<br />
'''cd source'''<br />
'''cvs up -rPRE_OSG_PLIB_20061029'''<br />
<br />
<br />
For FlightGear, you have to update the "source" directory:<br />
<br />
'''cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 login'''<br />
'''CVS passwd: guest'''<br />
'''cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 co -rPRE_OSG_PLIB_20061029 source<br />
'''<br />
The data directory should be the CVS HEAD version. Some aircraft, however, have a PRE_OSG_PLIB_20061029 branch that works better with FlightGear/plib, e.g Hawker Hunter.<br />
<br />
== External links ==<br />
http://www.openscenegraph.org/index.php?page=CVS.CVS</div>Timoorehttps://wiki.flightgear.org/w/index.php?title=OpenSceneGraph&diff=3686OpenSceneGraph2007-07-29T23:10:45Z<p>Timoore: /* The patched version (NOTE: The patched version should not be needed anymore) */</p>
<hr />
<div>__TOC__<br />
<br />
As of October 29th 2006, FlightGear has migrated from PLIB to OpenSceneGraph.<br />
<br />
Thanks to Mathias Fröhlich, we can use an current OpenSceneGraph SVN version <br />
<br />
== Getting OpenSceneGraph ==<br />
<br />
=== The latest OSG version from svn ===<br />
<br />
The OpenSceneGraph project uses [http://svnbook.red-bean.com/nightly/en/index.html Subversion (SVN)].<br />
<br />
<br />
To check out OpenSceneGraph:<br />
<br />
svn checkout http://www.openscenegraph.com/svn/osg/OpenSceneGraph/trunk OpenSceneGraph <br />
<br />
The OpenSceneGraph repository includes all parts of OSG you need.<br />
<br />
=== The patched version (NOTE: The patched version should not be needed anymore) ===<br />
OpenSceneGraph-CVS it now up to date with the required patches and should serve as well for running FlightGear. <br />
<br />
The MSVC8 (Visual Sudio 2005) win32 build dependencies for OpenSceneGraph can be found at http://www.oflebbe.de/oflebbe/FlightGear. Look out for the link to http://www.oflebbe.de/oflebbe/FlightGear/3rdparty-2006-11-25.zip.<br />
<br />
== Compiling OpenSceneGraph ==<br />
<br />
OpenSceneGraph uses cmake. A minimal build instruction for unix systems is<br />
<br />
mkdir build.osg<br />
cd build.osg<br />
ccmake ../path/to/osg/source<br />
make<br />
make install<br />
<br />
On other systems the steps might be different.<br />
<br />
Recommended options to set in the ccmake menus:<br />
* Build type: Release<br />
* You don't need to build the examples, wrappers or applications.<br />
<br />
=== Installing OpenSceneGraph and FlightGear with --prefix ===<br />
<br />
If you use --prefix to choose were to install FlightGear and do not want to install OSG globally on the system this can be done with the following method:<br />
<br />
OpenSceneGraph uses cmake so to build it do<br />
<br />
mkdir build.osg<br />
cd build.osg<br />
cmake -D CMAKE_BUILD_TYPE="Release" -D CMAKE_CXX_FLAGS="-O3" -D CMAKE_C_FLAGS="-O3" \<br />
-D CMAKE_INSTALL_PREFIX:PATH="$(MY_PREFIX)" ../path/to/osg/source<br />
make<br />
make install<br />
<br />
or if you want to avoid needing to set LD_LIBRARY_PATH<br />
<br />
mkdir build.osg<br />
cd build.osg<br />
cmake -D CMAKE_BUILD_TYPE="Release" -D CMAKE_CXX_FLAGS="-O3" -D CMAKE_C_FLAGS="-O3" \<br />
-D CMAKE_INSTALL_PREFIX:PATH="$(MY_PREFIX)" -D CMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOLEAN="true" ../path/to/osg/source<br />
make<br />
make install<br />
<br />
<br />
Configure and build SimGear and FlightGear with --prefix as usual.<br />
<br />
No need to install any quickly changing software globally.<br />
<br />
Installing with --prefix is a very nice way to keep several distinct and independent versions of FlightGear around. To start a new $PREFIX directory you'll also need to install plib in it, but that is easy. Most other needed dependencies are usually available through the package system of most Linux distributions (e.g. FreeGLUT, SDL, ALSA, etc).<br />
<br />
=== Compilation work arounds ===<br />
<br />
If you get errors when compiling the patched OpenSceneGraph after having compiled (and installed) OpenThreads and Producer successfully (happens on Arch Linux), you may have to add the following to your 'make':<br />
<br />
'''make PRODUCER_INC_DIR=/usr/local/include \'''<br />
'''PRODUCER_LIB_DIR=/usr/local/lib \'''<br />
'''OPENTHREADS_INC_DIR=/usr/local/include \'''<br />
'''OPENTHREADS_LIB_DIR=/usr/local/lib'''<br />
<br />
== Current issues ==<br />
<br />
* The 2D Panels and the rendering order of instruments ... is wrong.<br />
<br />
* transparency issues:<br />
** runway lights shine through panel:<br />
** runway lights shine through cloud layers in an awkward way:<br />
** 2D-cloud layers flood into cockpit<br />
** The prop of the C172 block the view on the waves of the carrier<br />
** The reflector gun sight on the Seahawk causes other transparent objects (carrier wake etc.) to disappear<br />
** A new overhead window in the C172 (inside out)<br />
<br />
* "Near clipping problem" (nearby objects are partially clipped at left and right window boarder, ie seats in C172 inside)<br />
<br />
* Runway lighting seems to have rendering artefacts on ATI Cards.<br />
<br />
* Enhanced runway lighting option in the drop-down menu seems to have no effect - light always appear enhanced.<br />
<br />
* panel hotspots are not correctly displayed in 3D panels using the 2D hotspot hack; are hidden behind 3D model geometry<br />
<br />
* Seneca II HSI: upper instrument clipping issue for NAV/HDG flags, heading bug, pointer<br />
<br />
<br />
[[List of 'compatible' aircrafts]] TO BE CONTINUED<br />
<br />
== Missing features ==<br />
Due to the migration from PLIB to OSG, some of the features seen in past versions of FlightGear are now temporarily non-functional. These are:<br />
<br />
* 3D-billboard objects are not displayed right now (ie trees or radio masts)<br />
<br />
* 3D clouds<br />
<br />
* Rendering of some scenes is not perfect.<br />
<br />
* Shadows<br />
<br />
* Exhaust shader<br />
<br />
* Chrome Shader<br />
<br />
* Weather Radar<br />
<br />
* Menu Items have no effect<br />
** Enhanced Runway Lights<br />
** Bump Mapped Clouds<br />
<br />
== Miscelaneous OSG benefits ==<br />
<br />
Mathias: "I think that we should make use in the longer term of the Producers <br />
capabilities for multiple view installations.<br />
But not only multipipe installs will benefit from that. The Producer will also <br />
help to get benefit from multicore SMP machines.<br />
For that the following article is of huge interrest:<br />
http://www.donburns.net/OSG/Articles/OSGMP/"<br />
<br />
== Getting the PLIB Code ==<br />
<br />
Use the tag <tt>PRE_OSG_PLIB_20061029</tt> for checking out the branch with the plib scenegraph.<br />
<br />
<br />
For SimGear, this works (more or less) as follows:<br />
<br />
<br />
'''cvs -d :pserver:cvsguest@cvs.simgear.org:/var/cvs/SimGear-0.3 login'''<br />
'''CVS passwd: guest'''<br />
'''cvs -d :pserver:cvsguest@cvs.simgear.org:/var/cvs/SimGear-0.3 co source'''<br />
'''cd source'''<br />
'''cvs up -rPRE_OSG_PLIB_20061029'''<br />
<br />
<br />
For FlightGear, you have to update the "source" directory:<br />
<br />
'''cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 login'''<br />
'''CVS passwd: guest'''<br />
'''cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 co -rPRE_OSG_PLIB_20061029 source<br />
'''<br />
The data directory should be the CVS HEAD version. Some aircraft, however, have a PRE_OSG_PLIB_20061029 branch that works better with FlightGear/plib, e.g Hawker Hunter.<br />
<br />
== External links ==<br />
http://www.openscenegraph.org/index.php?page=CVS.CVS</div>Timoore