<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.flightgear.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zan</id>
	<title>FlightGear wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.flightgear.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zan"/>
	<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/Special:Contributions/Zan"/>
	<updated>2026-05-26T21:49:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Force_feedback&amp;diff=69527</id>
		<title>Force feedback</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Force_feedback&amp;diff=69527"/>
		<updated>2014-04-06T17:31:19Z</updated>

		<summary type="html">&lt;p&gt;Zan: Added description of current system, and how to use&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Development of '''force feedback''' (also called haptic) support for [[FlightGear]] started in December 2011.&lt;br /&gt;
&lt;br /&gt;
==Repository==&lt;br /&gt;
The development is currently happening at [http://gitorious.org/fg-haptic/ FG-Haptic on Gitorious]. It is tested on Linux only, as the author (Zan) has no build environment on Windows. Testers wanted!&lt;br /&gt;
&lt;br /&gt;
No built modules yet available. Only source code and nasal/xml scripts. Requires SDL 2.0 to function (might also work with 1.3 or later, but is tested with 2.0).&lt;br /&gt;
&lt;br /&gt;
==Installation and how to use==&lt;br /&gt;
===Building===&lt;br /&gt;
# You need to have SDL 2.0 development libraries installed&lt;br /&gt;
# Edit Makefile for the library paths if necessary&lt;br /&gt;
# Type '''make''' and it should build&lt;br /&gt;
# Done&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
# Copy '''ff-protocol.xml''' to '''Protocols/''' in FG data directory.&lt;br /&gt;
# Copy '''force-feedback.nas''' to '''Nasal/''' in FG data directory.&lt;br /&gt;
# Copy '''force-feedback.xml''' to '''gui/dialogs/''' in FG data directory.&lt;br /&gt;
&lt;br /&gt;
===Using===&lt;br /&gt;
# Run '''fg-haptic''' or '''fg-haptic.exe'''&lt;br /&gt;
# Launch flightgear with following command line: '''fgfs --telnet=5401 --generic=socket,out,20,localhost,5402,tcp,ff-protocol'''&lt;br /&gt;
# If menu bar is not visible, press '''F10'''&lt;br /&gt;
# In flightgear's '''Help-&amp;gt;Force feedback options''' you can configure force settings&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
[[File:Fgfs-haptic-settings.png|thumb|270px|The options dialog.]]&lt;br /&gt;
===General features===&lt;br /&gt;
* In-sim options dialog&lt;br /&gt;
* Support for multiple devices simultaneously&lt;br /&gt;
* Devices do not need to be the same ones that are used as inputs&lt;br /&gt;
* Devices can have different effects applied on them&lt;br /&gt;
* Add-on, can be installed on older FlightGear versions too&lt;br /&gt;
&lt;br /&gt;
===Effects===&lt;br /&gt;
* Stick shaker when about to stall&lt;br /&gt;
* Stick pusher&lt;br /&gt;
* Control surface forces ([[JSBSim]] support, no [[YASim]] or others yet, but to be done)&lt;br /&gt;
* Pilot G forces&lt;br /&gt;
&lt;br /&gt;
==Technical details==&lt;br /&gt;
===System description===&lt;br /&gt;
Fg-haptic uses two communication methods with FG; telnet and general protocol. Telnet is used to send force-feedback device info to FG during intialisation, and later on it is used to fetch device configuration. General protocol is used to send force details from FG (one way communication). Telnet is quite slow, update of device configuration may take up to 10 seconds, while general protocol sends data currently 20 times per second.&lt;br /&gt;
&lt;br /&gt;
All properties used by fg-haptic currently reside under '''/haptic/'''. All effects are directly under that (like '''stick-force/''') and each device is below '''/haptic/device[X]/''', showing device info and configuration. &lt;br /&gt;
&lt;br /&gt;
Generic protocol, '''ff-protocol''', uses following format:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;reconfigure_request|aileron|elevator|rudder|pilot_x|pilot_y|pilot_z|stick_shaker_trigger|ground_rumble_period&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Force calculations===&lt;br /&gt;
Stick forces are based on the following equation, which represents force caused by air flowing towards a surface:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''F=0.5*airspeed^2*density*area*Cd''', where Cd is drag coefficient and area is perpendicular to airflow.&lt;br /&gt;
&lt;br /&gt;
Since the surfaces can turn, the effective area is:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''effective_area=area*sin(angle)''', where angle is the deflection angle, and it should take angle of attack into account:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''angle=deflection_angle-AoA''', since that is the real direction of air flow with relation to the surface. For rudder, we use slip angle instead of AoA.&lt;br /&gt;
&lt;br /&gt;
Also slip may be taken into account, if the air flows from side, it has less effect on the surface, thus giving:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''effective_area_2=effective_area*(1-sin(slip_angle))'''.&lt;br /&gt;
&lt;br /&gt;
Another thing we take into account is stall and deep stall. If AoA is over the stall limit, or over deep stall limit, forces acting on elevator and aileron are quickly ramped to zero, representing separated airflow.&lt;br /&gt;
&lt;br /&gt;
In this implementation, multiplication by 0.5, Cd and area are combined to a single coefficient for aileron, elevator and rudder, that are aircraft specific. Coefficients should be set so that the force does not exceed 1.0 (maximum value) in normal operation, and they can also be set to 0 or other value to represent fly-by-wire systems. Also slip coefficients can be defined to fine tune the stick feeling. A good starting value to try for each coefficient is:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''coeff=1.0/((Vne^2)*sin(max_deflection)*0.00257)''', where Vne is the maximum (never exceed) speed in knots, max deflection is the maximum deflection of the control surface and 0.00257 is standard air density (slugs/ft3). This value can then be fine tuned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Force feedback===&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://gitorious.org/fg-haptic/ Official FG-Haptic repository] (Gitorious)&lt;br /&gt;
* [http://sourceforge.net/projects/hapticsforfg/ hapticsforfg] (SourceForge)&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Blender_and_BTG&amp;diff=56303</id>
		<title>Blender and BTG</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Blender_and_BTG&amp;diff=56303"/>
		<updated>2012-12-13T18:29:42Z</updated>

		<summary type="html">&lt;p&gt;Zan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Software&lt;br /&gt;
|title             = Blender and BTG&lt;br /&gt;
|logo              =&lt;br /&gt;
|image             =&lt;br /&gt;
|developedby       = Lauri Peltonen&lt;br /&gt;
|initialrelease    = &lt;br /&gt;
|latestrelease     = Export: 31 Jan 2009&amp;lt;br/&amp;gt;Import: 07 Mar 2011&lt;br /&gt;
|writtenin         = Python&lt;br /&gt;
|os                =&lt;br /&gt;
|platform          =&lt;br /&gt;
|developmentstatus =&lt;br /&gt;
|type              =&lt;br /&gt;
|license           =&lt;br /&gt;
|website           =&lt;br /&gt;
}}&lt;br /&gt;
With the use of a special import&amp;amp;export script, '''[[BTG file format|BTG files]] can be opened in, and exported from [[Blender]]'''. This makes it possible to edit [[FlightGear]]'s terrain and specifically [[airport]]s in a visual editor.&lt;br /&gt;
&lt;br /&gt;
== User documentation ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Download the two scripts:&lt;br /&gt;
* [https://docs.google.com/open?id=0B17bx8FT2teqQmtpVGRuNkF6WFE Import script]&lt;br /&gt;
* [https://docs.google.com/open?id=0B17bx8FT2teqQmtpVGRuNkF6WFE Export script]&lt;br /&gt;
&lt;br /&gt;
Place both files in your Blender's &amp;lt;tt&amp;gt;.blender/scripts/&amp;lt;/tt&amp;gt; directory. Common locations are:&lt;br /&gt;
* Windows: &amp;lt;tt&amp;gt;C:/Program Files/Blender Foundation/Blender/.blender/scripts&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure to correct the [[$FG_ROOT]] setting in the import file, if needed. Default setting is:&lt;br /&gt;
 FG_ROOT = &amp;quot;/usr/local/share/flightgear/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Scripts should work with Blender 2.4, they are not tested with version 2.6.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
==== Import ====&lt;br /&gt;
Import via &amp;lt;tt&amp;gt;File &amp;gt; Import &amp;gt; Simgear (.btg) v7&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' rename the &amp;lt;tt&amp;gt;[ICAO].btg.gz&amp;lt;/tt&amp;gt; file of an airport, to its corresponding &amp;lt;tt&amp;gt;[tileid].btg.gz&amp;lt;/tt&amp;gt;, in order to import it correctly. For importing [[KSFO]], we need to rename &amp;lt;tt&amp;gt;KSFO.btg.gz&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;942050.btg.gz&amp;lt;/tt&amp;gt;, for example.&lt;br /&gt;
&lt;br /&gt;
==== Export ====&lt;br /&gt;
Export to a file with a .btg.gz extension, via &amp;lt;tt&amp;gt;File &amp;gt; Export &amp;gt; Simgear (.btg)&amp;lt;/tt&amp;gt;. Make sure to enter the correct coordinates and radius, as displayed in the console (you can copy&amp;amp;paste from that one) and/or screen on import.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
* Textures are not applied automatically in Blender, altough they are loaded.&lt;br /&gt;
* Imported meshes are shrinked because Blender does/did not support huge enough models (they are loaded correctly, but you cannot zoom out enough to see the whole tile).&lt;br /&gt;
* Sometimes exported triangle has its texture coordinates in wrong order which leads to weird looking textures (e.g. on a runway).&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;br /&gt;
[[Category:Scenery enhancement]]&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Blender_and_BTG&amp;diff=56302</id>
		<title>Talk:Blender and BTG</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Blender_and_BTG&amp;diff=56302"/>
		<updated>2012-12-13T18:25:38Z</updated>

		<summary type="html">&lt;p&gt;Zan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download links ==&lt;br /&gt;
The download links are pointing to nirvana. Can someone update nor upload 'em somewhere else? That'd be genial! &amp;lt;br /&amp;gt;--[[User:Kai Burghardt|Kays]] 08:56, 20 October 2012 (EDT)&lt;br /&gt;
: Hi Kai,&lt;br /&gt;
: I've contacted the author of the scripts. He will re-upload (an updated version of) the scripts next week. ;-) Thanks for notifying!&lt;br /&gt;
: [[User:Gijs|Gijs]] 05:21, 22 October 2012 (EDT)&lt;br /&gt;
:: Hm, unfortunately in a week is some weeks ago, and the links are still the same. --[[User:Kai Burghardt|Kays]] 18:36, 12 December 2012 (EST)&lt;br /&gt;
::: Yo, sorry. I was on vacation when Gijs contacted me and I completely forgot this matter. I have the new versions here: [https://docs.google.com/open?id=0B17bx8FT2teqcVpvZHlhOGlkLUk importer] [https://docs.google.com/open?id=0B17bx8FT2teqQmtpVGRuNkF6WFE exporter]. I hope Gijs can find a better place for those files, maybe upload them to the wiki? Iirc the blender version for these was 2.4, I'm not sure if they work with the latest version, nor have I tested these in a while anyways... [[User:Zan|Zan]] 13:25, 13 December 2012 (EST)&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Pixel_testing_in_effects&amp;diff=52404</id>
		<title>Pixel testing in effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Pixel_testing_in_effects&amp;diff=52404"/>
		<updated>2012-07-31T20:13:48Z</updated>

		<summary type="html">&lt;p&gt;Zan: Start documenting pixel testing operations possible in effects&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Pixel testing in effect files ==&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
In opengl, and thus in FlightGear's effect files, one can define several tests for each pixel. The tests are executed for every pixel to-be-rendered on screen, and if all tests pass, the shaders (if defined) are executed and pixel ends up on screen.&lt;br /&gt;
&lt;br /&gt;
=== Test queue ===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Incoming pixel --&amp;gt; || Alpha test --&amp;gt; || Stencil test --&amp;gt; || Shaders/colouring --&amp;gt; || Color mask --&amp;gt; || Screen&lt;br /&gt;
|-&lt;br /&gt;
|  ||    V || V || V ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|  || Discard || Discard || Discard ||  || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In every pass, a pixel can be discarded, and no other tests will be executed. If all tests pass, pixel will be drawn on screen.&lt;br /&gt;
&lt;br /&gt;
==== Alpha test ====&lt;br /&gt;
With alpha test you can check if the pixel to be written is transparent or not. It can be used to discard or only draw opaque geometry instead of transparent or vice versa. '''Note! I'm not sure how this works if shader writes to alpha channel!'''&lt;br /&gt;
&lt;br /&gt;
Alpha test can be enabled by specifying &amp;lt;alpha-test&amp;gt; in effect &amp;lt;pass&amp;gt;. Possible attributes are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;comparison&amp;gt;&lt;br /&gt;
:less: Pass if pixel's alpha is less than &amp;lt;value&amp;gt;&lt;br /&gt;
:lequal: Pass if pixel's alpha is less or equal to &amp;lt;value&amp;gt;&lt;br /&gt;
:equal: Pass if pixel's alpha is equal to &amp;lt;value&amp;gt;&lt;br /&gt;
:gequal: Pass if pixel's alpha is greater or equal to &amp;lt;value&amp;gt;&lt;br /&gt;
:greater: Pass if pixel's alpha is greater than &amp;lt;value&amp;gt;&lt;br /&gt;
* &amp;lt;value&amp;gt;&lt;br /&gt;
:Floating point value against which the pixel's alpha is tested&lt;br /&gt;
:'''Is it possible to use properties?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Stencil test ====&lt;br /&gt;
Stencil test can do several things. First, it can discard pixels depending on what is already in the stencil buffer. Second, it can update stencil buffer depending on whether pixel passes z-test or not (i.e. is behind other pixels or not).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Incoming pixel --&amp;gt; || Stencil test --&amp;gt; (update s-buffer) || Z-test --&amp;gt; (update s-buffer) || Pass --&amp;gt; (update s-buffer)&lt;br /&gt;
|-&lt;br /&gt;
|  || V || V ||&lt;br /&gt;
|-&lt;br /&gt;
|  ||  Discard (update s-buffer) || Discard (update s-buffer) ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Stencil test can be enabled by adding &amp;lt;stencil&amp;gt; tags to &amp;lt;pass&amp;gt; in effect.&lt;br /&gt;
* &amp;lt;function&amp;gt;: How the stencil-test is done&lt;br /&gt;
:never: Pixel is always discarded&lt;br /&gt;
:less: Pixel passes if s-buffer contains value less than &amp;lt;value&amp;gt;&lt;br /&gt;
:equal: Pixel passes if s-buffer contains value equal to &amp;lt;value&amp;gt;&lt;br /&gt;
:less-or-equal: Pixel passes if s-buffer contains value less or equal to &amp;lt;value&amp;gt;&lt;br /&gt;
:greater: Pixel passes if s-buffer contains value greater than &amp;lt;value&amp;gt;&lt;br /&gt;
:not-equal: Pixel passes if s-buffer contains value not equal to &amp;lt;value&amp;gt;&lt;br /&gt;
:greater-or-equal: Pixel passes if s-buffer contains value greater or equal to &amp;lt;value&amp;gt;&lt;br /&gt;
:always: Pixel always passes&lt;br /&gt;
* &amp;lt;value&amp;gt;&lt;br /&gt;
* &amp;lt;stencil-fail&amp;gt;&lt;br /&gt;
:keep: Keep the old value currently in s-buffer&lt;br /&gt;
:zero: Zero the s-buffer value&lt;br /&gt;
:replace: Replace s-buffer value with &amp;lt;value&amp;gt;&lt;br /&gt;
:increase: Increase s-buffer value '''with 1 or &amp;lt;value&amp;gt;?'''&lt;br /&gt;
:decrease: Decrease s-buffer value '''---&amp;quot;---'''&lt;br /&gt;
:increase-wrap: Increase and wrap to zero if overflows&lt;br /&gt;
:decrease-wrap: Decrease and wrap to maximum if goes below zero&lt;br /&gt;
:invert: Bitwise invert the value in s-buffer&lt;br /&gt;
* &amp;lt;z-fail&amp;gt;&lt;br /&gt;
* &amp;lt;pass&amp;gt;&lt;br /&gt;
* &amp;lt;mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Color mask ====&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto_talk:Use_a_Camera_View_in_an_Instrument&amp;diff=42462</id>
		<title>Howto talk:Use a Camera View in an Instrument</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto_talk:Use_a_Camera_View_in_an_Instrument&amp;diff=42462"/>
		<updated>2012-02-22T17:35:21Z</updated>

		<summary type="html">&lt;p&gt;Zan: /* od_gauge */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Forum topic about the same subject ==&lt;br /&gt;
Omega, did you see http://flightgear.org/forums/viewtopic.php?f=6&amp;amp;t=13798?&lt;br /&gt;
&lt;br /&gt;
Cheers [[User:Gijs|Gijs]] 10:04, 22 February 2012 (EST)&lt;br /&gt;
&lt;br /&gt;
== What is the file name stuff all about? ==&lt;br /&gt;
Normally, you'd just render the camera view to a dynamically created texture, then use a visitor to replace the OSG texture with the dynamically created one. The od_gauge instrument would then get instantiated by referencing the new instrument type (such &amp;quot;camera-view&amp;quot;) in the XML code. The od_gauge would handle setting up the texture stuff, the update() method would need to update the camera view (based on the view configuration specified in the property tree) and update the texture.--[[User:Hooray|Hooray]] 10:21, 22 February 2012 (EST)&lt;br /&gt;
&lt;br /&gt;
== od_gauge ==&lt;br /&gt;
&lt;br /&gt;
I sent you a message, but I also added a short section about how to use od_gauge in this system. Hope this helps, just ask if you need more info!&lt;br /&gt;
&lt;br /&gt;
[[User:Zan|Zan]] 12:35, 22 February 2012 (EST)&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Use_a_Camera_View_in_an_Instrument&amp;diff=42460</id>
		<title>Howto:Use a Camera View in an Instrument</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Use_a_Camera_View_in_an_Instrument&amp;diff=42460"/>
		<updated>2012-02-22T17:33:46Z</updated>

		<summary type="html">&lt;p&gt;Zan: note about allocRT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Background=&lt;br /&gt;
This was inspired by the ongoing effort to create a realistic 787 for FlightGear, including support for rendering external camera views on instruments: [[Boeing 787-8 Dreamliner#Camera.2FVideo Surveillance Instrument]]. The &amp;quot;Tail Camera&amp;quot; is also a feature found on the [[A380]].&lt;br /&gt;
&lt;br /&gt;
=Objective=&lt;br /&gt;
&lt;br /&gt;
To create a 2D instrument which shows a camera view. Write C++ code, preferably an instrument that renders a Camera View (i.e. from the property tree) to a texture.&lt;br /&gt;
&lt;br /&gt;
The steps involved in creating such an instrument would be:* &lt;br /&gt;
&lt;br /&gt;
* create a new topic branch: [[FlightGear and Git#Local_Branch]]&lt;br /&gt;
* Add a new set of cxx/hxx files to $FG_SRC/Instrumentation/ (e.g. camera-texture.cxx and camera-texture.hxx): to get started quickly, just copy and customize the gyro.* files&lt;br /&gt;
* implement the SGSubsystem interface for the new subsystem [http://simgear.sourceforge.net/doxygen/classSGSubsystem.html]&lt;br /&gt;
* add the new files to the CMake build system: [[Developing using CMake#Adding_new_files_to_the_build]]&lt;br /&gt;
* add the new subsystem to the instrument_mgr (FGInstrumentMgr::build method)[http://gitorious.org/fg/flightgear/blobs/next/src/Instrumentation/instrument_mgr.cxx#line127]&lt;br /&gt;
* implement the interface for the od_gauge instrument [http://gitorious.org/fg/flightgear/blobs/next/src/Instrumentation/od_gauge.cxx] to dynamically create a texture and display update it as a cockpit instrument&lt;br /&gt;
* implement SGPropertyChangeListener to process property tree events and updates [http://simgear.sourceforge.net/doxygen/classSGPropertyChangeListener.html]&lt;br /&gt;
* Render a property-driven camera view to the created texture (Zan has already code doing this sort of thing [http://flightgear.org/forums/viewtopic.php?f=6&amp;amp;t=13798])&lt;br /&gt;
* Write an XML 2D Instrument file that displays the texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are obviously more steps involved here, some of which covered here [[Howto: Create a 2D drawing API for FlightGear]].&lt;br /&gt;
&lt;br /&gt;
=Pre-Requisites=&lt;br /&gt;
&lt;br /&gt;
The following are required before we continue...&lt;br /&gt;
* To be able to build FlightGear from Source (with or without an IDE)&lt;br /&gt;
* To be able to create new instruments (that would be taking a simple one like gyro, copying it's files and changing the content)&lt;br /&gt;
* A Gitorious account to be able to clone the Flightgear Repository&lt;br /&gt;
* Basic Knowledge of FlightGear and XML&lt;br /&gt;
&lt;br /&gt;
=Part 1: Rendering a Camera View to Texture=&lt;br /&gt;
&lt;br /&gt;
There're probably many ways to do that, you could do it the way the ground radar instrument does, or how you take a screenshot etc. A very nice guide on OpenSceneGraph Rendering is available at http://www.palomino3d.com/pal_com/openscenegraph/ or http://sourceforge.net/apps/mediawiki/delta3d/index.php?title=Tutorial_Render_To_Texture&lt;br /&gt;
&lt;br /&gt;
==Screenshot Method==&lt;br /&gt;
&lt;br /&gt;
This is a very simple method and is used normally for taking screen-shots. &lt;br /&gt;
&lt;br /&gt;
'''OpenSceneGraph C++ Code:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
osg::Image* shot = new osg::Image();&lt;br /&gt;
shot-&amp;gt;allocateImage(width, height, 24, GL_RGB, GL_UNSIGNED_BYTE);&lt;br /&gt;
camera-&amp;gt;attach(osg::Camera::COLOR_BUFFER, shot);&lt;br /&gt;
osgDB::writeImageFile(*shot,&amp;quot;image_file.png&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FlightGear code==&lt;br /&gt;
FlighGear already has an &amp;quot;Owner Drawn instrument&amp;quot; in flightgear/src/Instrumentation/od_gauge.cxx and .hxx. It already sets up a pre-render camera and a texture for it, and has a visitor to replace model's texture with the custom texture.&lt;br /&gt;
&lt;br /&gt;
Using it would be something like this:&lt;br /&gt;
&lt;br /&gt;
* Create a custom instrument which inherits od_gauge. class CameraInstrument : public FGODGauge { ... }&lt;br /&gt;
* Implement the init and update functions, whatever instrument manager requires.&lt;br /&gt;
* In init set up proper texture sizes and call allocRT().&lt;br /&gt;
* NOTE: od_gauge does NOT add camera to render the scenery, but a custom model. One needs to modify od_gauge so that allocRT calls globals()-&amp;gt;get_renderer()-&amp;gt;addCamera(camera.get(), '''true''');&lt;br /&gt;
* In update function update camera position according to viewer-&amp;gt;getAbsolutePosition(...).&lt;br /&gt;
* Add the custom instrument to instrument_mgr.cxx.&lt;br /&gt;
&lt;br /&gt;
=Part 2: Getting that texture into an instrument=&lt;br /&gt;
&lt;br /&gt;
This part doesn't require any C++ coding, just a simple XML script to use that texture in an instrument.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PropertyList&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Camera Instrument&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;w-base&amp;gt;512&amp;lt;/w-base&amp;gt;&lt;br /&gt;
    &amp;lt;h-base&amp;gt;512&amp;lt;/h-base&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;layers&amp;gt;&lt;br /&gt;
	&amp;lt;layer&amp;gt;&lt;br /&gt;
        	&amp;lt;name&amp;gt;camera&amp;lt;/name&amp;gt;&lt;br /&gt;
            	&amp;lt;texture&amp;gt;&lt;br /&gt;
                	&amp;lt;path&amp;gt;image_file.png&amp;lt;/path&amp;gt; &amp;lt;!-- Path to the file we just rendered --&amp;gt;&lt;br /&gt;
                	&amp;lt;x1&amp;gt;0&amp;lt;/x1&amp;gt;&lt;br /&gt;
                	&amp;lt;y1&amp;gt;0&amp;lt;/y1&amp;gt;&lt;br /&gt;
                	&amp;lt;x2&amp;gt;1&amp;lt;/x2&amp;gt;&lt;br /&gt;
                	&amp;lt;y2&amp;gt;1&amp;lt;/y2&amp;gt;&lt;br /&gt;
            	&amp;lt;/texture&amp;gt;&lt;br /&gt;
		&amp;lt;emissive&amp;gt;1&amp;lt;/emissive&amp;gt;&lt;br /&gt;
        	&amp;lt;w&amp;gt;512&amp;lt;/w&amp;gt;&lt;br /&gt;
        	&amp;lt;h&amp;gt;512&amp;lt;/h&amp;gt;&lt;br /&gt;
	&amp;lt;/layer&amp;gt;&lt;br /&gt;
    &amp;lt;/layers&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''You could create more layers for more cameras/different views or even have a sprite or something on the view. Or we could also add transformations or conditions to the layer to give some function to the instrument other than just show a camera view.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;transformation&amp;gt;&lt;br /&gt;
     		&amp;lt;type&amp;gt;y-shift&amp;lt;/type&amp;gt;&lt;br /&gt;
     		&amp;lt;property&amp;gt;/instrumentation/camera/y_shift&amp;lt;/property&amp;gt;&lt;br /&gt;
     		&amp;lt;scale&amp;gt;2&amp;lt;/scale&amp;gt;&lt;br /&gt;
    	&amp;lt;/transformation&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Creating the CamView as a hard coded instrument=&lt;br /&gt;
&lt;br /&gt;
==Header File: cam_display.hxx==&lt;br /&gt;
&lt;br /&gt;
The header file is used to simply initialize a new class that contains all functions related to this instrument. The Functions are just constructed here, the contents are put in the ''cam_display.cxx'' file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// cam_display.hxx - simple function to render view to texture&lt;br /&gt;
&lt;br /&gt;
#ifndef __INSTRUMENTATION_CAMVIEW_HXX&lt;br /&gt;
#define __INSTRUMENTATION_CAMVIEW_HXX&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;simgear/props/props.hxx&amp;gt;&lt;br /&gt;
#include &amp;quot;od_gauge.hxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class CamView : public SGPropertyChangeListener, public FGODGauge&lt;br /&gt;
{&lt;br /&gt;
	public:&lt;br /&gt;
		static const int TextureHalfSize = 256;&lt;br /&gt;
		CamView(SGPropertyNode* node);&lt;br /&gt;
		virtual ~CamView();&lt;br /&gt;
		void updateTexture();&lt;br /&gt;
		virtual void valueChanged(SGPropertyNode*);&lt;br /&gt;
		&lt;br /&gt;
	protected:&lt;br /&gt;
   		void createTexture(const char* texture_name);&lt;br /&gt;
		&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // __INSTRUMENTATION_CAMVIEW_HXX&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Related =&lt;br /&gt;
* [http://flightgear.org/forums/viewtopic.php?f=6&amp;amp;t=13798 Zan's work on improved camera config options]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:GSoC]]&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Use_a_Camera_View_in_an_Instrument&amp;diff=42459</id>
		<title>Howto:Use a Camera View in an Instrument</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Use_a_Camera_View_in_an_Instrument&amp;diff=42459"/>
		<updated>2012-02-22T17:29:38Z</updated>

		<summary type="html">&lt;p&gt;Zan: Correct list formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Background=&lt;br /&gt;
This was inspired by the ongoing effort to create a realistic 787 for FlightGear, including support for rendering external camera views on instruments: [[Boeing 787-8 Dreamliner#Camera.2FVideo Surveillance Instrument]]. The &amp;quot;Tail Camera&amp;quot; is also a feature found on the [[A380]].&lt;br /&gt;
&lt;br /&gt;
=Objective=&lt;br /&gt;
&lt;br /&gt;
To create a 2D instrument which shows a camera view. Write C++ code, preferably an instrument that renders a Camera View (i.e. from the property tree) to a texture.&lt;br /&gt;
&lt;br /&gt;
The steps involved in creating such an instrument would be:* &lt;br /&gt;
&lt;br /&gt;
* create a new topic branch: [[FlightGear and Git#Local_Branch]]&lt;br /&gt;
* Add a new set of cxx/hxx files to $FG_SRC/Instrumentation/ (e.g. camera-texture.cxx and camera-texture.hxx): to get started quickly, just copy and customize the gyro.* files&lt;br /&gt;
* implement the SGSubsystem interface for the new subsystem [http://simgear.sourceforge.net/doxygen/classSGSubsystem.html]&lt;br /&gt;
* add the new files to the CMake build system: [[Developing using CMake#Adding_new_files_to_the_build]]&lt;br /&gt;
* add the new subsystem to the instrument_mgr (FGInstrumentMgr::build method)[http://gitorious.org/fg/flightgear/blobs/next/src/Instrumentation/instrument_mgr.cxx#line127]&lt;br /&gt;
* implement the interface for the od_gauge instrument [http://gitorious.org/fg/flightgear/blobs/next/src/Instrumentation/od_gauge.cxx] to dynamically create a texture and display update it as a cockpit instrument&lt;br /&gt;
* implement SGPropertyChangeListener to process property tree events and updates [http://simgear.sourceforge.net/doxygen/classSGPropertyChangeListener.html]&lt;br /&gt;
* Render a property-driven camera view to the created texture (Zan has already code doing this sort of thing [http://flightgear.org/forums/viewtopic.php?f=6&amp;amp;t=13798])&lt;br /&gt;
* Write an XML 2D Instrument file that displays the texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are obviously more steps involved here, some of which covered here [[Howto: Create a 2D drawing API for FlightGear]].&lt;br /&gt;
&lt;br /&gt;
=Pre-Requisites=&lt;br /&gt;
&lt;br /&gt;
The following are required before we continue...&lt;br /&gt;
* To be able to build FlightGear from Source (with or without an IDE)&lt;br /&gt;
* To be able to create new instruments (that would be taking a simple one like gyro, copying it's files and changing the content)&lt;br /&gt;
* A Gitorious account to be able to clone the Flightgear Repository&lt;br /&gt;
* Basic Knowledge of FlightGear and XML&lt;br /&gt;
&lt;br /&gt;
=Part 1: Rendering a Camera View to Texture=&lt;br /&gt;
&lt;br /&gt;
There're probably many ways to do that, you could do it the way the ground radar instrument does, or how you take a screenshot etc. A very nice guide on OpenSceneGraph Rendering is available at http://www.palomino3d.com/pal_com/openscenegraph/ or http://sourceforge.net/apps/mediawiki/delta3d/index.php?title=Tutorial_Render_To_Texture&lt;br /&gt;
&lt;br /&gt;
==Screenshot Method==&lt;br /&gt;
&lt;br /&gt;
This is a very simple method and is used normally for taking screen-shots. &lt;br /&gt;
&lt;br /&gt;
'''OpenSceneGraph C++ Code:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
osg::Image* shot = new osg::Image();&lt;br /&gt;
shot-&amp;gt;allocateImage(width, height, 24, GL_RGB, GL_UNSIGNED_BYTE);&lt;br /&gt;
camera-&amp;gt;attach(osg::Camera::COLOR_BUFFER, shot);&lt;br /&gt;
osgDB::writeImageFile(*shot,&amp;quot;image_file.png&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FlightGear code==&lt;br /&gt;
FlighGear already has an &amp;quot;Owner Drawn instrument&amp;quot; in flightgear/src/Instrumentation/od_gauge.cxx and .hxx. It already sets up a pre-render camera and a texture for it, and has a visitor to replace model's texture with the custom texture.&lt;br /&gt;
&lt;br /&gt;
Using it would be something like this:&lt;br /&gt;
&lt;br /&gt;
* Create a custom instrument which inherits od_gauge. class CameraInstrument : public FGODGauge { ... }&lt;br /&gt;
* Implement the init and update functions, whatever instrument manager requires.&lt;br /&gt;
* In init set up proper texture sizes and call allocRT().&lt;br /&gt;
* In update function update camera position according to viewer-&amp;gt;getAbsolutePosition(...).&lt;br /&gt;
* Add the custom instrument to instrument_mgr.cxx.&lt;br /&gt;
&lt;br /&gt;
=Part 2: Getting that texture into an instrument=&lt;br /&gt;
&lt;br /&gt;
This part doesn't require any C++ coding, just a simple XML script to use that texture in an instrument.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PropertyList&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Camera Instrument&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;w-base&amp;gt;512&amp;lt;/w-base&amp;gt;&lt;br /&gt;
    &amp;lt;h-base&amp;gt;512&amp;lt;/h-base&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;layers&amp;gt;&lt;br /&gt;
	&amp;lt;layer&amp;gt;&lt;br /&gt;
        	&amp;lt;name&amp;gt;camera&amp;lt;/name&amp;gt;&lt;br /&gt;
            	&amp;lt;texture&amp;gt;&lt;br /&gt;
                	&amp;lt;path&amp;gt;image_file.png&amp;lt;/path&amp;gt; &amp;lt;!-- Path to the file we just rendered --&amp;gt;&lt;br /&gt;
                	&amp;lt;x1&amp;gt;0&amp;lt;/x1&amp;gt;&lt;br /&gt;
                	&amp;lt;y1&amp;gt;0&amp;lt;/y1&amp;gt;&lt;br /&gt;
                	&amp;lt;x2&amp;gt;1&amp;lt;/x2&amp;gt;&lt;br /&gt;
                	&amp;lt;y2&amp;gt;1&amp;lt;/y2&amp;gt;&lt;br /&gt;
            	&amp;lt;/texture&amp;gt;&lt;br /&gt;
		&amp;lt;emissive&amp;gt;1&amp;lt;/emissive&amp;gt;&lt;br /&gt;
        	&amp;lt;w&amp;gt;512&amp;lt;/w&amp;gt;&lt;br /&gt;
        	&amp;lt;h&amp;gt;512&amp;lt;/h&amp;gt;&lt;br /&gt;
	&amp;lt;/layer&amp;gt;&lt;br /&gt;
    &amp;lt;/layers&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''You could create more layers for more cameras/different views or even have a sprite or something on the view. Or we could also add transformations or conditions to the layer to give some function to the instrument other than just show a camera view.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;transformation&amp;gt;&lt;br /&gt;
     		&amp;lt;type&amp;gt;y-shift&amp;lt;/type&amp;gt;&lt;br /&gt;
     		&amp;lt;property&amp;gt;/instrumentation/camera/y_shift&amp;lt;/property&amp;gt;&lt;br /&gt;
     		&amp;lt;scale&amp;gt;2&amp;lt;/scale&amp;gt;&lt;br /&gt;
    	&amp;lt;/transformation&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Creating the CamView as a hard coded instrument=&lt;br /&gt;
&lt;br /&gt;
==Header File: cam_display.hxx==&lt;br /&gt;
&lt;br /&gt;
The header file is used to simply initialize a new class that contains all functions related to this instrument. The Functions are just constructed here, the contents are put in the ''cam_display.cxx'' file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// cam_display.hxx - simple function to render view to texture&lt;br /&gt;
&lt;br /&gt;
#ifndef __INSTRUMENTATION_CAMVIEW_HXX&lt;br /&gt;
#define __INSTRUMENTATION_CAMVIEW_HXX&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;simgear/props/props.hxx&amp;gt;&lt;br /&gt;
#include &amp;quot;od_gauge.hxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class CamView : public SGPropertyChangeListener, public FGODGauge&lt;br /&gt;
{&lt;br /&gt;
	public:&lt;br /&gt;
		static const int TextureHalfSize = 256;&lt;br /&gt;
		CamView(SGPropertyNode* node);&lt;br /&gt;
		virtual ~CamView();&lt;br /&gt;
		void updateTexture();&lt;br /&gt;
		virtual void valueChanged(SGPropertyNode*);&lt;br /&gt;
		&lt;br /&gt;
	protected:&lt;br /&gt;
   		void createTexture(const char* texture_name);&lt;br /&gt;
		&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // __INSTRUMENTATION_CAMVIEW_HXX&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Related =&lt;br /&gt;
* [http://flightgear.org/forums/viewtopic.php?f=6&amp;amp;t=13798 Zan's work on improved camera config options]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:GSoC]]&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Use_a_Camera_View_in_an_Instrument&amp;diff=42458</id>
		<title>Howto:Use a Camera View in an Instrument</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Use_a_Camera_View_in_an_Instrument&amp;diff=42458"/>
		<updated>2012-02-22T17:27:58Z</updated>

		<summary type="html">&lt;p&gt;Zan: Short introduction to od_gauge&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Background=&lt;br /&gt;
This was inspired by the ongoing effort to create a realistic 787 for FlightGear, including support for rendering external camera views on instruments: [[Boeing 787-8 Dreamliner#Camera.2FVideo Surveillance Instrument]]. The &amp;quot;Tail Camera&amp;quot; is also a feature found on the [[A380]].&lt;br /&gt;
&lt;br /&gt;
=Objective=&lt;br /&gt;
&lt;br /&gt;
To create a 2D instrument which shows a camera view. Write C++ code, preferably an instrument that renders a Camera View (i.e. from the property tree) to a texture.&lt;br /&gt;
&lt;br /&gt;
The steps involved in creating such an instrument would be:* &lt;br /&gt;
&lt;br /&gt;
* create a new topic branch: [[FlightGear and Git#Local_Branch]]&lt;br /&gt;
* Add a new set of cxx/hxx files to $FG_SRC/Instrumentation/ (e.g. camera-texture.cxx and camera-texture.hxx): to get started quickly, just copy and customize the gyro.* files&lt;br /&gt;
* implement the SGSubsystem interface for the new subsystem [http://simgear.sourceforge.net/doxygen/classSGSubsystem.html]&lt;br /&gt;
* add the new files to the CMake build system: [[Developing using CMake#Adding_new_files_to_the_build]]&lt;br /&gt;
* add the new subsystem to the instrument_mgr (FGInstrumentMgr::build method)[http://gitorious.org/fg/flightgear/blobs/next/src/Instrumentation/instrument_mgr.cxx#line127]&lt;br /&gt;
* implement the interface for the od_gauge instrument [http://gitorious.org/fg/flightgear/blobs/next/src/Instrumentation/od_gauge.cxx] to dynamically create a texture and display update it as a cockpit instrument&lt;br /&gt;
* implement SGPropertyChangeListener to process property tree events and updates [http://simgear.sourceforge.net/doxygen/classSGPropertyChangeListener.html]&lt;br /&gt;
* Render a property-driven camera view to the created texture (Zan has already code doing this sort of thing [http://flightgear.org/forums/viewtopic.php?f=6&amp;amp;t=13798])&lt;br /&gt;
* Write an XML 2D Instrument file that displays the texture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are obviously more steps involved here, some of which covered here [[Howto: Create a 2D drawing API for FlightGear]].&lt;br /&gt;
&lt;br /&gt;
=Pre-Requisites=&lt;br /&gt;
&lt;br /&gt;
The following are required before we continue...&lt;br /&gt;
* To be able to build FlightGear from Source (with or without an IDE)&lt;br /&gt;
* To be able to create new instruments (that would be taking a simple one like gyro, copying it's files and changing the content)&lt;br /&gt;
* A Gitorious account to be able to clone the Flightgear Repository&lt;br /&gt;
* Basic Knowledge of FlightGear and XML&lt;br /&gt;
&lt;br /&gt;
=Part 1: Rendering a Camera View to Texture=&lt;br /&gt;
&lt;br /&gt;
There're probably many ways to do that, you could do it the way the ground radar instrument does, or how you take a screenshot etc. A very nice guide on OpenSceneGraph Rendering is available at http://www.palomino3d.com/pal_com/openscenegraph/ or http://sourceforge.net/apps/mediawiki/delta3d/index.php?title=Tutorial_Render_To_Texture&lt;br /&gt;
&lt;br /&gt;
==Screenshot Method==&lt;br /&gt;
&lt;br /&gt;
This is a very simple method and is used normally for taking screen-shots. &lt;br /&gt;
&lt;br /&gt;
'''OpenSceneGraph C++ Code:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
osg::Image* shot = new osg::Image();&lt;br /&gt;
shot-&amp;gt;allocateImage(width, height, 24, GL_RGB, GL_UNSIGNED_BYTE);&lt;br /&gt;
camera-&amp;gt;attach(osg::Camera::COLOR_BUFFER, shot);&lt;br /&gt;
osgDB::writeImageFile(*shot,&amp;quot;image_file.png&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FlightGear code==&lt;br /&gt;
FlighGear already has an &amp;quot;Owner Drawn instrument&amp;quot; in flightgear/src/Instrumentation/od_gauge.cxx and .hxx. It already sets up a pre-render camera and a texture for it, and has a visitor to replace model's texture with the custom texture.&lt;br /&gt;
&lt;br /&gt;
Using it would be something like this:&lt;br /&gt;
- Create a custom instrument which inherits od_gauge. class CameraInstrument : public FGODGauge { ... }&lt;br /&gt;
- Implement the init and update functions, whatever instrument manager requires.&lt;br /&gt;
- In init set up proper texture sizes and call allocRT().&lt;br /&gt;
- In update function update camera position according to viewer-&amp;gt;getAbsolutePosition(...).&lt;br /&gt;
- Add the custom instrument to instrument_mgr.cxx.&lt;br /&gt;
&lt;br /&gt;
=Part 2: Getting that texture into an instrument=&lt;br /&gt;
&lt;br /&gt;
This part doesn't require any C++ coding, just a simple XML script to use that texture in an instrument.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PropertyList&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Camera Instrument&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;w-base&amp;gt;512&amp;lt;/w-base&amp;gt;&lt;br /&gt;
    &amp;lt;h-base&amp;gt;512&amp;lt;/h-base&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;layers&amp;gt;&lt;br /&gt;
	&amp;lt;layer&amp;gt;&lt;br /&gt;
        	&amp;lt;name&amp;gt;camera&amp;lt;/name&amp;gt;&lt;br /&gt;
            	&amp;lt;texture&amp;gt;&lt;br /&gt;
                	&amp;lt;path&amp;gt;image_file.png&amp;lt;/path&amp;gt; &amp;lt;!-- Path to the file we just rendered --&amp;gt;&lt;br /&gt;
                	&amp;lt;x1&amp;gt;0&amp;lt;/x1&amp;gt;&lt;br /&gt;
                	&amp;lt;y1&amp;gt;0&amp;lt;/y1&amp;gt;&lt;br /&gt;
                	&amp;lt;x2&amp;gt;1&amp;lt;/x2&amp;gt;&lt;br /&gt;
                	&amp;lt;y2&amp;gt;1&amp;lt;/y2&amp;gt;&lt;br /&gt;
            	&amp;lt;/texture&amp;gt;&lt;br /&gt;
		&amp;lt;emissive&amp;gt;1&amp;lt;/emissive&amp;gt;&lt;br /&gt;
        	&amp;lt;w&amp;gt;512&amp;lt;/w&amp;gt;&lt;br /&gt;
        	&amp;lt;h&amp;gt;512&amp;lt;/h&amp;gt;&lt;br /&gt;
	&amp;lt;/layer&amp;gt;&lt;br /&gt;
    &amp;lt;/layers&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''You could create more layers for more cameras/different views or even have a sprite or something on the view. Or we could also add transformations or conditions to the layer to give some function to the instrument other than just show a camera view.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;transformation&amp;gt;&lt;br /&gt;
     		&amp;lt;type&amp;gt;y-shift&amp;lt;/type&amp;gt;&lt;br /&gt;
     		&amp;lt;property&amp;gt;/instrumentation/camera/y_shift&amp;lt;/property&amp;gt;&lt;br /&gt;
     		&amp;lt;scale&amp;gt;2&amp;lt;/scale&amp;gt;&lt;br /&gt;
    	&amp;lt;/transformation&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Creating the CamView as a hard coded instrument=&lt;br /&gt;
&lt;br /&gt;
==Header File: cam_display.hxx==&lt;br /&gt;
&lt;br /&gt;
The header file is used to simply initialize a new class that contains all functions related to this instrument. The Functions are just constructed here, the contents are put in the ''cam_display.cxx'' file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// cam_display.hxx - simple function to render view to texture&lt;br /&gt;
&lt;br /&gt;
#ifndef __INSTRUMENTATION_CAMVIEW_HXX&lt;br /&gt;
#define __INSTRUMENTATION_CAMVIEW_HXX&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;simgear/props/props.hxx&amp;gt;&lt;br /&gt;
#include &amp;quot;od_gauge.hxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class CamView : public SGPropertyChangeListener, public FGODGauge&lt;br /&gt;
{&lt;br /&gt;
	public:&lt;br /&gt;
		static const int TextureHalfSize = 256;&lt;br /&gt;
		CamView(SGPropertyNode* node);&lt;br /&gt;
		virtual ~CamView();&lt;br /&gt;
		void updateTexture();&lt;br /&gt;
		virtual void valueChanged(SGPropertyNode*);&lt;br /&gt;
		&lt;br /&gt;
	protected:&lt;br /&gt;
   		void createTexture(const char* texture_name);&lt;br /&gt;
		&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // __INSTRUMENTATION_CAMVIEW_HXX&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Related =&lt;br /&gt;
* [http://flightgear.org/forums/viewtopic.php?f=6&amp;amp;t=13798 Zan's work on improved camera config options]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:GSoC]]&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Project_Rembrandt&amp;diff=39322</id>
		<title>Talk:Project Rembrandt</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Project_Rembrandt&amp;diff=39322"/>
		<updated>2012-01-15T20:58:02Z</updated>

		<summary type="html">&lt;p&gt;Zan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi.&lt;br /&gt;
&lt;br /&gt;
Like I mentioned in my email, I have made modifications to CameraGroup to allow much more camera options in preferences.xml. Currently supporting: multiple cameras &amp;amp; render orders, render to texture, multiple render targets, binding of render target textures for other cameras, floating point textures, post processing &amp;amp; chaining of effects.&lt;br /&gt;
&lt;br /&gt;
So basically I think most your stuff could be handled with this system (though it still has some bugs and seems to cause crashes in libGL...)&lt;br /&gt;
&lt;br /&gt;
Anyways, when you think you have the system running well enough, so that it would be time for cleanup, please give me a message and let's see if this work can be combined. Meanwhile, if you're interested, my git repo is at [https://gitorious.org/~zan/fg/zans-flightgear/commits/newcameras gitorious repository].&lt;br /&gt;
&lt;br /&gt;
What I wonder about your work, is how you handle the separation of geometry, i.e. that the geometry pass does not draw transparent objects like clouds? I was trying to add this to my system, and got it to sort of work (via pre-render callbacks) but it was ugly. I'm going to add an option in preferences.xml to select, which geometry (either render bin numbers or transparent/opaque etc) to render, which would allow multiple lights easily.&lt;br /&gt;
&lt;br /&gt;
[[User:Zan|Zan]] 04:36, 20 December 2011 (EST)&lt;br /&gt;
:: Also see [http://flightgear.org/forums/viewtopic.php?f=6&amp;amp;t=13798&amp;amp;p=140379&amp;amp;hilit=#p140299 here] (forum thread).--[[User:Hooray|Hooray]] 07:13, 20 December 2011 (EST)&lt;br /&gt;
&lt;br /&gt;
The cloud and the sky were removed from the main scenegraph (in renderer.cxx) and added as simple group nodes in the lighting camera (the stage before the display stage) before applying the ambient pass. I put banners in CameraGroup so it is easy to spot the different structures for each stage (CameraGroup::BuildGBufferCamera - a bit misnamed now).&lt;br /&gt;
&lt;br /&gt;
Also don't forget most of state attributes are set in terrain-default.eff and model-default.eff&lt;br /&gt;
&lt;br /&gt;
--[[User:Fredb|Fredb]] 16:01, 20 December 2011 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You write about the transparent objects: ''In a cull callback attached to the Geometry camera, after the scenegraph traversal, the transparent bins are removed from the render stage and saved in a temporary collection.'' I have to tell you, when I made my modifications to the cameras, I was also thinking about deferred shader, and ended up with the exactly same method what you seem to be using! I just never found time to correctly implement it. I'm impressed that we both separately ended up with this same method!&lt;br /&gt;
[[User:Zan|Zan]] 15:58, 15 January 2012 (EST)&lt;br /&gt;
&lt;br /&gt;
== Models modification log ==&lt;br /&gt;
{{cquote|Change KSFO_light.xml to apt-light.xml|Fredb}}&lt;br /&gt;
Why that? KSFO_light.xml is a special model, made for KSFO by Don Lavelle. Just like EHAM also has custom light poles. And EDDF. There are quite some actually...&lt;br /&gt;
&lt;br /&gt;
[[User:Gijs|Gijs]] 15:04, 3 January 2012 (EST)&lt;br /&gt;
&lt;br /&gt;
: Hi Gijs. Could you explain in what they are different and why there are only ten of then while there are more than 50 apt-light in KSFO ?&lt;br /&gt;
:--[[User:Fredb|Fredb]] 15:30, 3 January 2012 (EST)&lt;br /&gt;
&lt;br /&gt;
:: They are two completely different models. Just compare them in Blender (or whatever editor). The KSFO_light ones match better with the real ones at KSFO (one of the differences is that the KSFO ones are grey/brown, rather than red/white striped). I don't know why only a few are placed, the red/white ones should be replaced (will talk to Jon on IRC in a minute).&lt;br /&gt;
:: Now that you're working on spot lights, it's important to realize that we (will) have many light pole models, simply because there are many variants in real life... ;)&lt;br /&gt;
:: [[User:Gijs|Gijs]] 17:42, 3 January 2012 (EST)&lt;br /&gt;
&lt;br /&gt;
Because of this: &amp;quot;Add a spot light animation&amp;quot; - testing real lights now?&lt;br /&gt;
That would be great!&lt;br /&gt;
&lt;br /&gt;
--[[User:HHS|HHS]] 15:09, 3 January 2012 (EST)&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Force_feedback&amp;diff=38443</id>
		<title>Force feedback</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Force_feedback&amp;diff=38443"/>
		<updated>2011-12-25T16:03:41Z</updated>

		<summary type="html">&lt;p&gt;Zan: third person&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Development of '''force feedback''' (also called haptic) support for [[FlightGear]] started in December 2011.&lt;br /&gt;
&lt;br /&gt;
==Repository==&lt;br /&gt;
The development is currently happening at [http://gitorious.org/fg-haptic/ FG-Haptic Gitorious]. It is tested on Linux only, as the author (Zan) has no build environment on Windows. Testers wanted!&lt;br /&gt;
&lt;br /&gt;
No built modules yet available. Only source code and nasal/xml scripts. Requires SDL 1.3 to function.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
[[File:Fgfs-haptic-settings.png|thumb|270px|The options dialog.]]&lt;br /&gt;
===General features===&lt;br /&gt;
* In-sim options dialog&lt;br /&gt;
* Support for multiple devices simultaneously (currently four)&lt;br /&gt;
* Devices do not need to be the same ones that are used as inputs&lt;br /&gt;
* Devices can have different effects applied on them&lt;br /&gt;
* Add-on, can be installed on older FlightGear versions too&lt;br /&gt;
&lt;br /&gt;
===Effects===&lt;br /&gt;
* Stick shaker when about to stall&lt;br /&gt;
* TODO: Stick pusher&lt;br /&gt;
* Control surface forces ([[JSBSim]] preliminary support, no [[YASim]] or others yet)&lt;br /&gt;
* Pilot G forces&lt;br /&gt;
&lt;br /&gt;
==Technical details==&lt;br /&gt;
Pilot G forces and control surface forces are currently handled as constant force effects, and updated 10 times a second. Sometimes they feel a bit shaky, so they might need some tuning...&lt;br /&gt;
&lt;br /&gt;
Stick shaker is a simple rumble effect.&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
* Test using spring condition for control surface force loading. This requires some magic to figure out the maximum forces and ramp speeds, as we cannot use the forces calculated by FDM directly. This way the force would be much smoother than with constant force&lt;br /&gt;
&lt;br /&gt;
==LINKS==&lt;br /&gt;
* [http://gitorious.org/fg-haptic/ Official FG-Haptic repository on Gitorious]&lt;br /&gt;
* [http://sourceforge.net/projects/hapticsforfg/ hapticsforfg]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Force_feedback&amp;diff=38417</id>
		<title>Force feedback</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Force_feedback&amp;diff=38417"/>
		<updated>2011-12-25T11:38:33Z</updated>

		<summary type="html">&lt;p&gt;Zan: Created page with &amp;quot;=Force feedback= As of december 2011 I started developing force feedback (also called haptic) support for Flightgear.  ==Repository== The development is currently happening here:...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Force feedback=&lt;br /&gt;
As of december 2011 I started developing force feedback (also called haptic) support for Flightgear.&lt;br /&gt;
&lt;br /&gt;
==Repository==&lt;br /&gt;
The development is currently happening here: [http://gitorious.org/fg-haptic/ FG-Haptic] . It is tested on Linux only, as I have no build environment on Windows. Testers wanted!&lt;br /&gt;
&lt;br /&gt;
No built modules yet available. Only source code and nasal/xml scripts. Requires SDL 1.3 to function.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
===General features===&lt;br /&gt;
* In-sim options dialog&lt;br /&gt;
* Support for multiple devices simultaneously (currently 4)&lt;br /&gt;
* Devices do not need to be the same ones that are used as inputs&lt;br /&gt;
* Devices can have different effects applied on them&lt;br /&gt;
* Add-on, can be installed on older FG versions too&lt;br /&gt;
&lt;br /&gt;
===Effects===&lt;br /&gt;
* Stick shaker when about to stall&lt;br /&gt;
* TODO: Stick pusher&lt;br /&gt;
* Control surface forces (JSBSim preliminary support, no YASim or others yet)&lt;br /&gt;
* Pilot G forces&lt;br /&gt;
&lt;br /&gt;
==Technical details==&lt;br /&gt;
Pilot G forces and control surface forces are currently handled as constant force effects, and updated 10 times a second. Sometimes they feel a bit shaky, so they might need some tuning...&lt;br /&gt;
&lt;br /&gt;
Stick shaker is a simple rumble effect.&lt;br /&gt;
&lt;br /&gt;
==Screenshot==&lt;br /&gt;
[http://users.tkk.fi/~lapelto2/fgfs/fgfs-haptic-settings.png I don't know yet how to add this as an image...]&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
* Test using spring condition for control surface force loading. This requires some magic to figure out the maximum forces and ramp speeds, as we cannot use the forces calculated by FDM directly. This way the force would be much smoother than with constant force&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Project_Rembrandt&amp;diff=38193</id>
		<title>Talk:Project Rembrandt</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Project_Rembrandt&amp;diff=38193"/>
		<updated>2011-12-20T09:36:40Z</updated>

		<summary type="html">&lt;p&gt;Zan: Created page with &amp;quot;Hi.  Like I mentioned in my email, I have made modifications to CameraGroup to allow much more camera options in preferences.xml. Currently supporting: multiple cameras &amp;amp; render ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi.&lt;br /&gt;
&lt;br /&gt;
Like I mentioned in my email, I have made modifications to CameraGroup to allow much more camera options in preferences.xml. Currently supporting: multiple cameras &amp;amp; render orders, render to texture, multiple render targets, binding of render target textures for other cameras, floating point textures, post processing &amp;amp; chaining of effects.&lt;br /&gt;
&lt;br /&gt;
So basically I think most your stuff could be handled with this system (though it still has some bugs and seems to cause crashes in libGL...)&lt;br /&gt;
&lt;br /&gt;
Anyways, when you think you have the system running well enough, so that it would be time for cleanup, please give me a message and let's see if this work can be combined. Meanwhile, if you're interested, my git repo is at [https://gitorious.org/~zan/fg/zans-flightgear/commits/newcameras gitorious repository].&lt;br /&gt;
&lt;br /&gt;
What I wonder about your work, is how you handle the separation of geometry, i.e. that the geometry pass does not draw transparent objects like clouds? I was trying to add this to my system, and got it to sort of work (via pre-render callbacks) but it was ugly. I'm going to add an option in preferences.xml to select, which geometry (either render bin numbers or transparent/opaque etc) to render, which would allow multiple lights easily.&lt;br /&gt;
&lt;br /&gt;
[[User:Zan|Zan]] 04:36, 20 December 2011 (EST)&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Coordinate_systems&amp;diff=35742</id>
		<title>Coordinate systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Coordinate_systems&amp;diff=35742"/>
		<updated>2011-10-10T09:40:19Z</updated>

		<summary type="html">&lt;p&gt;Zan: Added light sources and forest&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This page describes the various reference frames for coordinates used in flightgear. This is mostly targeted at shader development, for cartesian/geodetic etc. systems, we have other pages.&lt;br /&gt;
&lt;br /&gt;
==Disclaimer==&lt;br /&gt;
I wrote these from my memory, if you notice some is wrong, please fix it! :)&lt;br /&gt;
&lt;br /&gt;
==Coordinates in shader programs==&lt;br /&gt;
===Vertex program===&lt;br /&gt;
Vertex program handles every vertex of a model. It is executed for every vertex only, and can use attributes like vertex position, color, normal etc. Vertex program's purpose is to transform vertices to screen space (i.e. calculate their position on the display).&lt;br /&gt;
&lt;br /&gt;
gl_Vertex has the vertex in object's reference frame.&lt;br /&gt;
After multiplying by gl_ModelViewMatrix, we get the vertex coordinate with relation to camera (eye point). We call this later on the eye frame.&lt;br /&gt;
Further multiplying this with gl_ProjectionMatrix (or with the combined gl_ModelViewProjectionMatrix) we get a screen space coordinate. We call this later screen or view frame.&lt;br /&gt;
&lt;br /&gt;
===Fragment program===&lt;br /&gt;
Fragment program handles all pixels that are on the screen. It cannot change pixel's position, but only calculate its color and transparency. It gets parameters from a vertex shader, and interpolates between the values at those points.&lt;br /&gt;
&lt;br /&gt;
You can access the screen coordinate with gl_FragCoord and gl_FragDepth.&lt;br /&gt;
&lt;br /&gt;
===Light sources===&lt;br /&gt;
FlightGear uses gl_LightSource[0] to represent the sun.&lt;br /&gt;
&lt;br /&gt;
In GLSL (fixed function i.e. not using uniforms or similar to pass the coordinates), light sources are defined in '''eye space'''. It means, that to take e.g. dot product of the light source's and normal's direction, you need to use dot('''gl_NormalMatrix*gl_Normal''', gl_LightSource[0].position).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Coordinate reference frames==&lt;br /&gt;
===Terrain===&lt;br /&gt;
Terrain is referenced with origo (0,0,0) being at the center of the tile, lying on the mean sea level.&lt;br /&gt;
Reference frame is z = up, x and y are in lat and lon directions.&lt;br /&gt;
&lt;br /&gt;
Every tile's frame is in relation to that tile, so the z is always up on that tile's center point.&lt;br /&gt;
&lt;br /&gt;
===Objects===&lt;br /&gt;
Objects depend a bit on the modeller, but usually origo is at the bottom of the building, in the center.&lt;br /&gt;
Z is up, x and y most likely are lat and lon, since usually people use some reference images underneath. But not always, x and y might be to any direction depending on the modeller.&lt;br /&gt;
&lt;br /&gt;
===Clouds===&lt;br /&gt;
Clouds/cloudlets have origo at the center of the cloud. gl_Color has the center of each cloudlet with relation to origo.&lt;br /&gt;
Z is up, x and y are lat/lon direction.&lt;br /&gt;
&lt;br /&gt;
Cloud layer used to be flat, so that z is same way on all clouds, but I think this got fixed and now the layers are curved. I don't know if z is relative to that position or not.&lt;br /&gt;
&lt;br /&gt;
===Skydome===&lt;br /&gt;
Skydome is always centered on the camera, so that origo is under the view, at mean sea level.&lt;br /&gt;
Z is up, x and y are rotated so that x (or y...) axis points towards the sun. That way the sunset effects are easier to do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Forests===&lt;br /&gt;
Forests are rendered with a block of trees in one draw. Origo is somewhere in the center of that block. Also, iirc a vertex attribute defines the tree's location on the terrain, so gl_Vertex is center of the forest, and that attribute must be added to it to find the correct position.&lt;br /&gt;
Z is up, x and y are probably lat/lon? Might also be in any direction, depending on how the block is rotated to be Z upwards.&lt;br /&gt;
&lt;br /&gt;
[[Category:Shader development]]&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Coordinate_systems&amp;diff=35261</id>
		<title>Coordinate systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Coordinate_systems&amp;diff=35261"/>
		<updated>2011-10-02T10:53:09Z</updated>

		<summary type="html">&lt;p&gt;Zan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This page describes the various reference frames for coordinates used in flightgear. This is mostly targeted at shader development, for cartesian/geodetic etc. systems, we have other pages.&lt;br /&gt;
&lt;br /&gt;
==Disclaimer==&lt;br /&gt;
I wrote these from my memory, if you notice some is wrong, please fix it! :)&lt;br /&gt;
&lt;br /&gt;
==Coordinates in shader programs==&lt;br /&gt;
===Vertex program===&lt;br /&gt;
Vertex program handles every vertex of a model. It is executed for every vertex only, and can use attributes like vertex position, color, normal etc. Vertex program's purpose is to transform vertices to screen space (i.e. calculate their position on the display).&lt;br /&gt;
&lt;br /&gt;
gl_Vertex has the vertex in object's reference frame.&lt;br /&gt;
After multiplying by gl_ModelViewMatrix, we get the vertex coordinate with relation to camera (eye point). We call this later on the eye frame.&lt;br /&gt;
Further multiplying this with gl_ProjectionMatrix (or with the combined gl_ModelViewProjectionMatrix) we get a screen space coordinate. We call this later screen or view frame.&lt;br /&gt;
&lt;br /&gt;
===Fragment program===&lt;br /&gt;
Fragment program handles all pixels that are on the screen. It cannot change pixel's position, but only calculate its color and transparency. It gets parameters from a vertex shader, and interpolates between the values at those points.&lt;br /&gt;
&lt;br /&gt;
You can access the screen coordinate with gl_FragCoord and gl_FragDepth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Coordinate reference frames==&lt;br /&gt;
===Terrain===&lt;br /&gt;
Terrain is referenced with origo (0,0,0) being at the center of the tile, lying on the mean sea level.&lt;br /&gt;
Reference frame is z = up, x and y are in lat and lon directions.&lt;br /&gt;
&lt;br /&gt;
Every tile's frame is in relation to that tile, so the z is always up on that tile's center point.&lt;br /&gt;
&lt;br /&gt;
===Objects===&lt;br /&gt;
Objects depend a bit on the modeller, but usually origo is at the bottom of the building, in the center.&lt;br /&gt;
Z is up, x and y most likely are lat and lon, since usually people use some reference images underneath. But not always, x and y might be to any direction depending on the modeller.&lt;br /&gt;
&lt;br /&gt;
===Clouds===&lt;br /&gt;
Clouds/cloudlets have origo at the center of the cloud. gl_Color has the center of each cloudlet with relation to origo.&lt;br /&gt;
Z is up, x and y are lat/lon direction.&lt;br /&gt;
&lt;br /&gt;
Cloud layer used to be flat, so that z is same way on all clouds, but I think this got fixed and now the layers are curved. I don't know if z is relative to that position or not.&lt;br /&gt;
&lt;br /&gt;
===Skydome===&lt;br /&gt;
Skydome is always centered on the camera, so that origo is under the view, at mean sea level.&lt;br /&gt;
Z is up, x and y are rotated so that x (or y...) axis points towards the sun. That way the sunset effects are easier to do.&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Coordinate_systems&amp;diff=35255</id>
		<title>Coordinate systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Coordinate_systems&amp;diff=35255"/>
		<updated>2011-10-02T10:04:32Z</updated>

		<summary type="html">&lt;p&gt;Zan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This page describes the various reference frames for coordinates used in flightgear. This is mostly targeted at shader development, for cartesian/geodetic etc. systems, we have other pages.&lt;br /&gt;
&lt;br /&gt;
==Coordinates in shader programs==&lt;br /&gt;
===Vertex program===&lt;br /&gt;
Vertex program handles every vertex of a model. It is executed for every vertex only, and can use attributes like vertex position, color, normal etc. Vertex program's purpose is to transform vertices to screen space (i.e. calculate their position on the display).&lt;br /&gt;
&lt;br /&gt;
gl_Vertex has the vertex in object's reference frame.&lt;br /&gt;
After multiplying by gl_ModelViewMatrix, we get the vertex coordinate with relation to camera (eye point). We call this later on the eye frame.&lt;br /&gt;
Further multiplying this with gl_ProjectionMatrix (or with the combined gl_ModelViewProjectionMatrix) we get a screen space coordinate. We call this later screen or view frame.&lt;br /&gt;
&lt;br /&gt;
===Fragment program===&lt;br /&gt;
Fragment program handles all pixels that are on the screen. It cannot change pixel's position, but only calculate its color and transparency. It gets parameters from a vertex shader, and interpolates between the values at those points.&lt;br /&gt;
&lt;br /&gt;
You can access the screen coordinate with gl_FragCoord and gl_FragDepth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Coordinate reference frames==&lt;br /&gt;
===Terrain===&lt;br /&gt;
Terrain is referenced with origo (0,0,0) being at the center of the tile, lying on the mean sea level.&lt;br /&gt;
Reference frame is z = up, x and y are in lat and lon directions.&lt;br /&gt;
&lt;br /&gt;
===Clouds===&lt;br /&gt;
Clouds/cloudlets have origo at the center of the cloud. gl_Color has the center of each cloudlet with relation to origo.&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Coordinate_systems&amp;diff=35253</id>
		<title>Coordinate systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Coordinate_systems&amp;diff=35253"/>
		<updated>2011-10-02T10:00:33Z</updated>

		<summary type="html">&lt;p&gt;Zan: Created page with &amp;quot;==Introduction== This page describes the various reference frames for coordinates used in flightgear. This is mostly targeted at shader development, for cartesian/geodetic etc. s...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This page describes the various reference frames for coordinates used in flightgear. This is mostly targeted at shader development, for cartesian/geodetic etc. systems, we have other pages.&lt;br /&gt;
&lt;br /&gt;
==Coordinates in shader programs==&lt;br /&gt;
===Vertex program===&lt;br /&gt;
Vertex program handles every vertex of a model. It is executed for every vertex only, and can use attributes like vertex position, color, normal etc. Vertex program's purpose is to transform vertices to screen space (i.e. calculate their position on the display).&lt;br /&gt;
&lt;br /&gt;
gl_Vertex has the vertex in object's reference frame.&lt;br /&gt;
After multiplying by gl_ModelViewMatrix, we get the vertex coordinate with relation to camera (eye point). We call this later on the eye frame.&lt;br /&gt;
Further multiplying this with gl_ProjectionMatrix (or with the combined gl_ModelViewProjectionMatrix) we get a screen space coordinate. We call this later screen or view frame.&lt;br /&gt;
&lt;br /&gt;
===Fragment program===&lt;br /&gt;
Fragment program handles all pixels that are on the screen. It cannot change pixel's position, but only calculate its color and transparency. It gets parameters from a vertex shader, and interpolates between the values at those points.&lt;br /&gt;
&lt;br /&gt;
You can access the screen coordinate with gl_FragCoord and/or gl_FragDepth.&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Blender_and_BTG&amp;diff=31497</id>
		<title>Blender and BTG</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Blender_and_BTG&amp;diff=31497"/>
		<updated>2011-05-04T14:42:49Z</updated>

		<summary type="html">&lt;p&gt;Zan: Link to newer version of the import script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the use of a special import&amp;amp;export script, '''[[BTG file format|BTG files]] can be opened in and exported from [[Blender]]'''. This makes it possible to edit [[FlightGear]]'s terrain and specifically [[airport]]s in a visual editor.&lt;br /&gt;
&lt;br /&gt;
== User documentation ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Download the two scripts:&lt;br /&gt;
* [http://users.tkk.fi/~lapelto2/fgfs/import_btg_v7.py Import script]&lt;br /&gt;
* [http://users.tkk.fi/~lapelto2/fgfs/export_btg.py Export script]&lt;br /&gt;
&lt;br /&gt;
Place both files in your Blender's &amp;lt;tt&amp;gt;.blender/scripts/&amp;lt;/tt&amp;gt; directory. Common locations are:&lt;br /&gt;
* Windows: &amp;lt;tt&amp;gt;C:/Program Files/Blender Foundation/Blender/.blender/scripts&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
==== Import ====&lt;br /&gt;
Import via &amp;lt;tt&amp;gt;File &amp;gt; Import &amp;gt; Simgear (.btg)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Export ====&lt;br /&gt;
# Export to a file without extension, via &amp;lt;tt&amp;gt;File &amp;gt; Export &amp;gt; Simgear (.btg)&amp;lt;/tt&amp;gt;. Make sure to enter the correct coordinates and radius, as displayed in the console and screen on import.&lt;br /&gt;
# Package/zip the created file to a .btg.gz file. This one can be loaded into FlightGear.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
* Textures are not applied automatically in Blender.&lt;br /&gt;
* No textures at all on terrain import. Terrain is imported as one big mesh, despite various materials.&lt;br /&gt;
* Terrain is not lined up with the axis, making it hard to edit correctly.&lt;br /&gt;
* Airport lights are not imported.&lt;br /&gt;
* Imported meshes are shrinked.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;br /&gt;
[[Category:Scenery enhancement]]&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_April_2011&amp;diff=31137</id>
		<title>FlightGear Newsletter April 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_April_2011&amp;diff=31137"/>
		<updated>2011-04-20T20:47:05Z</updated>

		<summary type="html">&lt;p&gt;Zan: /* Atmospheric scattering shader */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{newsletter}}&lt;br /&gt;
{{TOC_right|limit=2}}&lt;br /&gt;
&lt;br /&gt;
''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 projects such as for example updated scenery or aircraft, please do feel invited to add such news to the newsletter.''&lt;br /&gt;
&lt;br /&gt;
== Development news ==&lt;br /&gt;
=== Atmospheric scattering shader ===&lt;br /&gt;
Zan has been working very hard on an experimental atmospheric scattering [[shader]]. The shaders makes use of [http://sponeil.net/ Sean O'Neil's algorithm]. Altough there are some issues with the shader, it looks like it will have a promising future! Some screenshots are available at the forum thread [http://www.flightgear.org/forums/viewtopic.php?f=47&amp;amp;t=11274#p117813].&lt;br /&gt;
&lt;br /&gt;
The shader does some simplifications, but basically tries to recreate physical phenomenom, so the look could be easily modified depending on environmental conditions. But since the values are not so easy to figure out, some testing would be needed for creating nice looking sky for misty weather, rainy weather, cold winter etc. After that, proper equations could be written to transform weather values to scattering parameters.&lt;br /&gt;
&lt;br /&gt;
The shader is not production ready, it has some bugs and terrain (especially fog at horizon) does not match the looks of the skydome. This is a work in process, but might take some times, because the terrain shader is much harder than the skydome shader.&lt;br /&gt;
&lt;br /&gt;
== Nasal for newbies ==&lt;br /&gt;
== New software tools and projects ==&lt;br /&gt;
&lt;br /&gt;
== FlightGear addons and mods ==&lt;br /&gt;
== In the hangar ==&lt;br /&gt;
=== New instruments ===&lt;br /&gt;
The [[Boeing 777-200ER]]'s chronometer has been moved to the generic instruments directory (&amp;lt;tt&amp;gt;Aircraft/Instruments-3d/chronometer&amp;lt;/tt&amp;gt;). This allows aircraft developers to easily implement this clock in their aircraft. All related Nasal code was included in the model xml file, so there's really just one file to be linked to! Some aircraft already make use of this clock, including the [[Boeing 747-400]] and [[Boeing 757-200|757-200]]. &lt;br /&gt;
&lt;br /&gt;
There are several advantages in moving instruments to the generic directory, some of which are:&lt;br /&gt;
* Easy to be re-used in other aircraft, all you need to do is link to (and position) the model and on some instruments link to a Nasal file.&lt;br /&gt;
* If someone extents the functionality of a generic instrument, it will be automatically extended in all the aircraft that use it.&lt;br /&gt;
&lt;br /&gt;
=== New aircraft ===&lt;br /&gt;
=== Vostok-1 ===&lt;br /&gt;
[[Image:Vostok-1-Carrier-News.png|thumb|Vostok-1 Carrier]]&lt;br /&gt;
[[Image:Vostok-1-News.png|thumb|Vostok-1 Spacecraft]]&lt;br /&gt;
[[Image:Vostok-1-Interior-News.png|thumb|Vostok-1 Interior]]&lt;br /&gt;
To celebrate Yury Gagarin's historical flight, [[Vostok-1]] carrier and spacecraft were added to FlightGear. In heavy development still, it already allows full orbital flight from lift-off to landing, making it perform the first spaceflight in FlightGear. &lt;br /&gt;
&lt;br /&gt;
Things that make it possible:&lt;br /&gt;
*[[JSBSim]] centrifugal force addition made the whole flight available.&lt;br /&gt;
*JSBSim property driven point masses, tanks and engines, and aerodynamic coefficients implementation allow stages changing. Each single stage of the flight has an independent mass scheme, propulsion system, and aerodynamics reactions, so simulation is more or less realistic.&lt;br /&gt;
*Datcom+ with &amp;quot;little wing&amp;quot; approach resolves carrier and spacecraft aerodynamics accurately enough to make flights on real fuel and oxidizer capacities with real g forces, orbit and deorbit paths. &lt;br /&gt;
*[[FlightGear Newsletter April 2011#Atmospheric scattering shader|Zan's shader]] makes the earth look pretty enough from high altitudes.&lt;br /&gt;
*FG improvement shifted practical flight ceiling from 80 to 160 kilometers.&lt;br /&gt;
&lt;br /&gt;
In real life, the first human spaceflight was fully automated. In FlightGear, instead controls are completely manual to make it interesting, and to make you understand how it really works.&lt;br /&gt;
&lt;br /&gt;
Authors and developers, since orbital flight is possible in FlightGear from now on, you are invited to make a FlightGear driven Mercury-Atlas project. Low earth orbit flights can be more exact and eyecandy in FlightGear than in any current simulator. And you can be sure it will be free for you and users in any case.&lt;br /&gt;
&lt;br /&gt;
=== Doctor Who TARDIS ===&lt;br /&gt;
[[Image:Tardis colour.png|thumb|Doctor Who TARDIS]]&lt;br /&gt;
Vinura has started work on developing a [http://en.wikipedia.org/wiki/TARDIS#The_Doctor.27s_TARDIS Doctor Who TARDIS] for FlightGear. The exterior model is almost complete in SketchUp. Click [http://www.flightgear.org/forums/viewtopic.php?f=4&amp;amp;t=11738 here] for the development thread.&lt;br /&gt;
&lt;br /&gt;
Currently, I still need to get the TARDIS colours right as I am only allowed to use 'Named Colours' from Google SketchUp as they can't claim copyright on colours.&lt;br /&gt;
&lt;br /&gt;
=== Updated aircraft ===&lt;br /&gt;
&lt;br /&gt;
=== Liveries ===&lt;br /&gt;
[[Image:Fgfs-screen-089.png|thumb|SriLankan Airlines' Boeing 767]]&lt;br /&gt;
Some [http://liveries.flightgear.org/airlines.php?id=231 SriLankan Airlines] liveries have been made by Vinura for the [[Boeing 767]] and [[Airbus A320]].&lt;br /&gt;
&lt;br /&gt;
== Scenery corner ==&lt;br /&gt;
&lt;br /&gt;
=== New terrain ===&lt;br /&gt;
New third-party scenery for the USA's Pacific Northwest (Seattle and Portland, OR) and Rio de Janeiro is now available for download at http://www.stattosoftware.com/flightgear&lt;br /&gt;
&lt;br /&gt;
=== New buildings ===&lt;br /&gt;
Once again, there are new Eastern Asian buildings !&lt;br /&gt;
&lt;br /&gt;
* Saigon Center - Ho Chi Minh City - Vietnam&lt;br /&gt;
* Mode Gakuen Coccoon Tower - Tokyo - Japan&lt;br /&gt;
* Trade Tower - Seoul - South Korea&lt;br /&gt;
* Koryo Hotel - Pyongyang - North Korea&lt;br /&gt;
* The Center - Hong Kong - China&lt;br /&gt;
* Central Plaza - Hong Kong - China&lt;br /&gt;
&lt;br /&gt;
=== Airports ===&lt;br /&gt;
The generic Concourse C at KDEN was recently replaced with a much better, realistic working model featuring animated jetways. Please enjoy.&lt;br /&gt;
&lt;br /&gt;
== Aircraft of the month ==&lt;br /&gt;
== Airport of the month ==&lt;br /&gt;
== Screenshot of the month ==&lt;br /&gt;
SriLankan Airlines livery on an Airbus A320 taken at dusk.&lt;br /&gt;
&lt;br /&gt;
[[File:Fgfs-screen-085.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Suggested flights ==&lt;br /&gt;
Departing from Brisbane International Airport and heading towards Sydney International Airport at a heading of about 203, you will come across some beautiful scenery.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Fgfs-screen-020.png&lt;br /&gt;
Image:Fgfs-screen-016.png&lt;br /&gt;
Image:Fgfs-screen-012.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aircraft reviews ==&lt;br /&gt;
&lt;br /&gt;
=== '''''The Good old Cessna Citation X''''' ===&lt;br /&gt;
I hope to do a monthly review of a specific aircraft. I can't guarantee that I will get to do it every month though because I do have other stuff to attend to.&lt;br /&gt;
&lt;br /&gt;
The [[Cessna Citation X]] is by far one of my favourite little planes! Its reaction time is quite quick. The rudder control is very responsive, even the slightest move of your rudder pedals or the mouse and the aircraft's rudder moves. It accelerates quite fast down the runway, building up momentum and then, you lift your joystick up slightly and the nose lifts up just like you want it to. &lt;br /&gt;
&lt;br /&gt;
Regarding the animations, they are extraordinary. They function quite well like for example the flaps, spoilers or the landing gear. The cockpit is quite well designed and has a lot of instruments, just like a real Citation would. &lt;br /&gt;
&lt;br /&gt;
It has a tutorial system built in for people wanting to fly one. '''''This was the first jet plane that I could actually land properly in.''''' It also has several nice camera views, including views from the passenger seats. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Cessna Citation X Cockpit.png&lt;br /&gt;
Image:Cessna Citation X Passenger View 1.png&lt;br /&gt;
Image:Cessna Citation X Passenger View 2.png&lt;br /&gt;
Image:Cessna Citation X - Screenshot 2.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Recommendation:'''&lt;br /&gt;
&lt;br /&gt;
I would recommend this plane to people who have already flown planes like the [[Cessna C172P]] or the [[Piper J3 Cub]] and want to progress into Jet aviation. This is a GREAT little starter plane to get you going.&lt;br /&gt;
&lt;br /&gt;
This has to be one of the best planes that I have ever used in FlightGear!&lt;br /&gt;
&lt;br /&gt;
Thanks for reading! :D&lt;br /&gt;
&lt;br /&gt;
'''''Review By: Vinura'''''&lt;br /&gt;
&lt;br /&gt;
== Wiki updates ==&lt;br /&gt;
===New articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===New aircraft articles===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
  categoryRoot=Aircraft&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
===Most popular newsletters===&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=5&lt;br /&gt;
  categoryRoot=FlightGear Newsletter&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Community news ==&lt;br /&gt;
=== FlightGear on youtube ===&lt;br /&gt;
&lt;br /&gt;
=== Forum news ===&lt;br /&gt;
=== Multiplayer ===&lt;br /&gt;
=== Virtual airlines ===&lt;br /&gt;
=== FlightGear events ===&lt;br /&gt;
==== FlyingClub Mayday 1 ====&lt;br /&gt;
The FGFC '''&amp;quot;Mayday 1: Manitoba Rescue&amp;quot;''' operation was held April 2nd, 2011 at CYAV, Winnipeg/St.Andrews, with seven pilots participating. The scenario stated two of Manitoba's major rivers were flooding, and people were stranded along both, so STOL and helicopter pilots were mustered at CYAV, received assignments from ATC, planned their flights, and notified ATC when they were ready to proceed. A total of twenty missions were assigned, sixteen of which were successfully completed in the space of three hours.&lt;br /&gt;
&lt;br /&gt;
The scenario was based around the idea that pilots should have basic skills in addition to merely flying with an autopilot, and was designed to test both their actual flying ability by not having airports at their destinations, and providing no actual navigational data beyond a map or two. They were required to map their routes in territory unknown to them, then fly those routes in their chosen aircraft, land, report in, then return to CYAV to complete a &amp;quot;cycle.&amp;quot; Points were awarded for cycle completion, and points deducted for aircraft crashes. FG Seg faults were not penalized.&lt;br /&gt;
&lt;br /&gt;
Comments back about the operation from pilots have so far been positive. Watch the [http://www.flightgear.org/forums/viewforum.php?f=10&amp;amp;sid=381d9860a9183d143cd2fa8aee16099d Multiplayer Forums] for the next one; there will be one, but at this writing, it has not yet been decided. &lt;br /&gt;
&lt;br /&gt;
* [[FlightGear Flying Club]]&lt;br /&gt;
* [http://flightgearfans.wordpress.com/about/ FGFC WordPress Site ]&lt;br /&gt;
* [http://www.flightgear.org/forums/viewtopic.php?f=10&amp;amp;t=11551 Mayday 1 Forum Pages]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
== And finally ... ==&lt;br /&gt;
=== Contributing ===&lt;br /&gt;
One of the regular thoughts expressed on the FlightGear forums is &amp;quot;I'd like to contribute but I don't know how to program, and I don't have the time&amp;quot;. Unfortunately, there is a common misconception 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. &lt;br /&gt;
&lt;br /&gt;
For ideas on starting to contribute to FlightGear, you may want to check out: [[Volunteer]].&lt;br /&gt;
&lt;br /&gt;
=== Call for volunteers ===&lt;br /&gt;
* The [[OpenRadar]] project is looking for a new maintainer.&lt;br /&gt;
* The [[FGFSPM]] (FlightGear Package Manager) is looking for a new maintainer.&lt;br /&gt;
&lt;br /&gt;
=== Did you know ===&lt;br /&gt;
*...that you can fly backwards in a UFO? While holding the brake button down on your joystick or keyboard, increase engine throttle and you should start to fly backwards. A short video can be seen at [http://www.youtube.com/watch?v=F7U1bsO7g-EYouTube]&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter|2011 04]]&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Next_Generation_Scenery&amp;diff=30744</id>
		<title>Next Generation Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Next_Generation_Scenery&amp;diff=30744"/>
		<updated>2011-04-03T18:25:10Z</updated>

		<summary type="html">&lt;p&gt;Zan: typo...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are some ideas for new scenery and new scenery engine for FlightGear.&lt;br /&gt;
&lt;br /&gt;
== Why? ==&lt;br /&gt;
We would like to show more detailed scenery that's visible farther away, for a better VFR experience all around. Specifically, more detail makes the near-ground experience more realistic, especially for helicopter or VFR 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.&lt;br /&gt;
&lt;br /&gt;
==== Disclaimer ====&lt;br /&gt;
&lt;br /&gt;
* Most of these items have been collected from various places without reasonable evaluation. Thus, they might simply represent peoples random ideas without any warranty about a) making sense in the given context nor b) aligning with the plans of those who are actually driving FlightGear's Scenery development. So, read this with a grain of salt ....&lt;br /&gt;
&lt;br /&gt;
=== Ideas ===&lt;br /&gt;
&lt;br /&gt;
* ability to dynamically enable/disable certain scenery features ([http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1905510&amp;amp;group_id=583&amp;amp;atid=350583])&lt;br /&gt;
&lt;br /&gt;
* Provide the foundation to eventually facilitate runtime-based creation of airport features (i.e. runways and taxiways), so that changes to the underlying data files (apt.dat.gz) could be immediately honored at runtime without having to recompile scenery tiles &lt;br /&gt;
&lt;br /&gt;
* Ability to cut in polygon models of airports. [http://www.andesengineering.com/Projects/TDS/]&lt;br /&gt;
&lt;br /&gt;
* Ability to page terrain / textures so continuous flights around the world are still possible.&lt;br /&gt;
&lt;br /&gt;
* Ability to populate the world with arbitrary additional 3d objects. Note that our current ability to populate the world with random objects would not work with the new scheme. We'd need to completely overhaul that functionality to work in a photo texture drapped, LOD terrain world.&lt;br /&gt;
&lt;br /&gt;
* Care should be taken with object vertical placement so the terrain LOD doesn't move the 3d objects up and down noticable. And also so it doesn't noticably bury objects or float objects when the terrain LOD changes.&lt;br /&gt;
&lt;br /&gt;
* I assume all the current 2d polygon data would go away since this would be better represented by the photo texture overlay anyway.&lt;br /&gt;
&lt;br /&gt;
* LOD algorithm/system (with adjustable radius for high and low end users) The current irregular grid mesh works but it's not very efficient and we could get much better framerates with a nice LOD system. Alternatively much higher elevation resolution with similar framerates.&lt;br /&gt;
&lt;br /&gt;
* Texture overlays - FG scenery engine does the chopping and texture co-ord generation. (I won't go into details but this would greatly simplify LOD algorithms)&lt;br /&gt;
&lt;br /&gt;
* The ability to drape the textures at differing resolutions at different locations in the scenery. (ie. higher res data immediately adjacent to airports where the pilot is generally closer to the ground and to give good definition on final approach).&lt;br /&gt;
&lt;br /&gt;
* Some sort of fix or workaround for the stretched-textures-on-cliff faces problem that draped textures suffer from in mountainous regions - possibly the ability to cut in textured polygons on steep faces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Data sources ===&lt;br /&gt;
Here is a list of possible data sources for better scenery.&lt;br /&gt;
==== Elevation data ====&lt;br /&gt;
* [http://srtm.csi.cgiar.org/ SRTM Data] - 30m resolution for North America, 90m for most other world. Data goes up to about 60 degrees north and 56 degrees south. This should be public domain so can be used directly.&lt;br /&gt;
* [http://www.ersdac.or.jp/GDEM/E/index.html ASTER GDEM] Aster data, 30m resolution for the whole world, from 83 degrees north to 83 degrees south. License is limited, might be able to get the data and use, but redistribute with non-GPL license.&lt;br /&gt;
* [http://www.viewfinderpanoramas.org/dem3.html Mountain data] Personal work of Jonathan for filling&amp;amp;fixing SRTM data for mountain areas. Mostly 90m resolution, but some areas are 30m. Also has some data for north eurasia not available in SRTM. Data should be free to use, but not sure about the GPL compatibility.&lt;br /&gt;
&lt;br /&gt;
==== Shapefile data ====&lt;br /&gt;
Some sources for shapefiles, some of these are already available, the ones with links might not be yet.&lt;br /&gt;
* GSHHS&lt;br /&gt;
* VMAP0 &amp;amp; 1&lt;br /&gt;
* OSM&lt;br /&gt;
* TIGER&lt;br /&gt;
* [http://www.eea.europa.eu/publications/COR0-landcover Corine] landcover use data for Europe, the ones I have seen are 25m resolution. License is free, but might not be GPL compatible.&lt;br /&gt;
&lt;br /&gt;
==== Photo data ====&lt;br /&gt;
To be defined, we might soon get a photo scenery support, so this section is reserved for acquiring free high resolution images for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Related mailing list discussions ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg18530.html Scenery engine features (collective brainstorming about desired features for a new engine, 4yrs old)]&lt;br /&gt;
* [http://baron.flightgear.org/pipermail/flightgear-devel/2004-September/030853.html UK Photo Scenery]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg29480.html alternative terrain engine integration]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg26831.html Landsat 7 data for FlightGear]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg30439.html What happened to the new terrain engine?]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg30777.html normal maps for flightgear]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg27985.html When can we have roads like this]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg07688.html Virtual Cities]&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg11499.html&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg11325.html Overlay Plane]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg13123.html FlightGear Terrain Engine]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg14312.html]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg15122.html]&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg00783.html&lt;br /&gt;
&lt;br /&gt;
=== Related Projects/Efforts ===&lt;br /&gt;
* [http://fgsd.sourceforge.net FGSD-FlightGear Scenery Designer ]&lt;br /&gt;
* [http://taxidraw.sourceforge.net TaxiDraw ]&lt;br /&gt;
* [http://www.custom-scenery.org/ FlightGear World Custom Scenery ]&lt;br /&gt;
* [http://mapserver.flightgear.org/ FlightGear mapserver ]&lt;br /&gt;
&lt;br /&gt;
[[Category:RFC]]&lt;br /&gt;
[[Category:Scenery enhancement]]&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Next_Generation_Scenery&amp;diff=30743</id>
		<title>Next Generation Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Next_Generation_Scenery&amp;diff=30743"/>
		<updated>2011-04-03T18:24:43Z</updated>

		<summary type="html">&lt;p&gt;Zan: Added data source links for next generation scenery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are some ideas for new scenery and new scenery engine for FlightGear.&lt;br /&gt;
&lt;br /&gt;
== Why? ==&lt;br /&gt;
We would like to show more detailed scenery that's visible farther away, for a better VFR experience all around. Specifically, more detail makes the near-ground experience more realistic, especially for helicopter or VFR 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.&lt;br /&gt;
&lt;br /&gt;
==== Disclaimer ====&lt;br /&gt;
&lt;br /&gt;
* Most of these items have been collected from various places without reasonable evaluation. Thus, they might simply represent peoples random ideas without any warranty about a) making sense in the given context nor b) aligning with the plans of those who are actually driving FlightGear's Scenery development. So, read this with a grain of salt ....&lt;br /&gt;
&lt;br /&gt;
=== Ideas ===&lt;br /&gt;
&lt;br /&gt;
* ability to dynamically enable/disable certain scenery features ([http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1905510&amp;amp;group_id=583&amp;amp;atid=350583])&lt;br /&gt;
&lt;br /&gt;
* Provide the foundation to eventually facilitate runtime-based creation of airport features (i.e. runways and taxiways), so that changes to the underlying data files (apt.dat.gz) could be immediately honored at runtime without having to recompile scenery tiles &lt;br /&gt;
&lt;br /&gt;
* Ability to cut in polygon models of airports. [http://www.andesengineering.com/Projects/TDS/]&lt;br /&gt;
&lt;br /&gt;
* Ability to page terrain / textures so continuous flights around the world are still possible.&lt;br /&gt;
&lt;br /&gt;
* Ability to populate the world with arbitrary additional 3d objects. Note that our current ability to populate the world with random objects would not work with the new scheme. We'd need to completely overhaul that functionality to work in a photo texture drapped, LOD terrain world.&lt;br /&gt;
&lt;br /&gt;
* Care should be taken with object vertical placement so the terrain LOD doesn't move the 3d objects up and down noticable. And also so it doesn't noticably bury objects or float objects when the terrain LOD changes.&lt;br /&gt;
&lt;br /&gt;
* I assume all the current 2d polygon data would go away since this would be better represented by the photo texture overlay anyway.&lt;br /&gt;
&lt;br /&gt;
* LOD algorithm/system (with adjustable radius for high and low end users) The current irregular grid mesh works but it's not very efficient and we could get much better framerates with a nice LOD system. Alternatively much higher elevation resolution with similar framerates.&lt;br /&gt;
&lt;br /&gt;
* Texture overlays - FG scenery engine does the chopping and texture co-ord generation. (I won't go into details but this would greatly simplify LOD algorithms)&lt;br /&gt;
&lt;br /&gt;
* The ability to drape the textures at differing resolutions at different locations in the scenery. (ie. higher res data immediately adjacent to airports where the pilot is generally closer to the ground and to give good definition on final approach).&lt;br /&gt;
&lt;br /&gt;
* Some sort of fix or workaround for the stretched-textures-on-cliff faces problem that draped textures suffer from in mountainous regions - possibly the ability to cut in textured polygons on steep faces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Data sources ===&lt;br /&gt;
Here is a list of possible data sources for better scenery.&lt;br /&gt;
==== Elevation data ====&lt;br /&gt;
* [http://srtm.csi.cgiar.org/ SRTM Data] - 30m resolution for North America, 90m for most other world. Data goes up to about 60 degrees north and 56 degrees south. This should be public domain so can be used directly.&lt;br /&gt;
* [http://www.ersdac.or.jp/GDEM/E/index.html ASTER GDEM] Aster data, 30m resolution for the whole world, from 83 degrees north to 83 degrees south. License is limited, might be able to get the data and use, but redistribute with non-GPL license.&lt;br /&gt;
* [http://www.viewfinderpanoramas.org/dem3.html Mountain data] Personal work of Jonathan for filling&amp;amp;fixing SRTM data for mountain areas. Mostly 90m resolution, but some areas are 30m. Also has some data for north eurasia not available in SRTM. Data should be free to use, but not sure about the GPL compatibility.&lt;br /&gt;
&lt;br /&gt;
==== Shapefile data ====&lt;br /&gt;
Some sources for shapefiles, some of these are already available, the ones with links might not be yet.&lt;br /&gt;
* GSHHS&lt;br /&gt;
* VMAP0 &amp;amp; 1&lt;br /&gt;
* OSM&lt;br /&gt;
* TIGER&lt;br /&gt;
* [http://www.eea.europa.eu/publications/COR0-landcover Corine] landcover use data for Europe, the ones I have seen are 25m resolution. License is free, but might not be GPL compatible.&lt;br /&gt;
&lt;br /&gt;
==== Photo data ===&lt;br /&gt;
To be defined, we might soon get a photo scenery support, so this section is reserved for acquiring free high resolution images for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Related mailing list discussions ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg18530.html Scenery engine features (collective brainstorming about desired features for a new engine, 4yrs old)]&lt;br /&gt;
* [http://baron.flightgear.org/pipermail/flightgear-devel/2004-September/030853.html UK Photo Scenery]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg29480.html alternative terrain engine integration]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg26831.html Landsat 7 data for FlightGear]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg30439.html What happened to the new terrain engine?]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg30777.html normal maps for flightgear]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg27985.html When can we have roads like this]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@flightgear.org/msg07688.html Virtual Cities]&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg11499.html&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg11325.html Overlay Plane]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg13123.html FlightGear Terrain Engine]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg14312.html]&lt;br /&gt;
* [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg15122.html]&lt;br /&gt;
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg00783.html&lt;br /&gt;
&lt;br /&gt;
=== Related Projects/Efforts ===&lt;br /&gt;
* [http://fgsd.sourceforge.net FGSD-FlightGear Scenery Designer ]&lt;br /&gt;
* [http://taxidraw.sourceforge.net TaxiDraw ]&lt;br /&gt;
* [http://www.custom-scenery.org/ FlightGear World Custom Scenery ]&lt;br /&gt;
* [http://mapserver.flightgear.org/ FlightGear mapserver ]&lt;br /&gt;
&lt;br /&gt;
[[Category:RFC]]&lt;br /&gt;
[[Category:Scenery enhancement]]&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:TerraGear_texmapped_line_data&amp;diff=27984</id>
		<title>Talk:TerraGear texmapped line data</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:TerraGear_texmapped_line_data&amp;diff=27984"/>
		<updated>2011-01-28T09:18:56Z</updated>

		<summary type="html">&lt;p&gt;Zan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This looks great and is something I intended to do earlier, but never really got into it.&lt;br /&gt;
&lt;br /&gt;
I wonder how you managed to make the clipper honour the texture coordinates, as that was the step where I let the project be?&lt;br /&gt;
Whenever the roads are crossing, you should probably create a new polygon (quad maybe?) there and assign it a &amp;quot;crossroad&amp;quot; material. Of course then you'd need to have different textures for T cross or X cross etc, this is hard.&lt;br /&gt;
&lt;br /&gt;
I also suggest you to use OSM data instead of the line data. As you modified to code generating the wider polygons, I guess it should be quite straightforward to generate the line graph with correct width from OSM xml files and then polygons from those. That way you could get also lane information etc.&lt;br /&gt;
&lt;br /&gt;
I'd like to see how you did this, if you could upload a diff somewhere so I could check? I have some ideas of adding extra parameters and this code of yours might help in the process.&lt;br /&gt;
&lt;br /&gt;
Oh, and I don't think it matters if the &amp;quot;already textured&amp;quot; polygons are added as single triangles or fans or strips. As long as the texture coordinates are preserved :)&lt;br /&gt;
&lt;br /&gt;
[[User:Zan|Zan]] 09:02, 26 January 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Freeways in the Netherlands (and most other 'Western' countries) have [http://en.wikipedia.org/wiki/Interchange_(road) interchanges], rather than [http://en.wikipedia.org/wiki/Intersection_(road) intersections]. So for freeways the current look is fine (except for the z-ordering issue), but for primary/secundary roads Zan's idea would be nice to have...&lt;br /&gt;
: [[User:Gijs|Gijs]] 04:10, 26 January 2011 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: I've been working within a local git repository, and committing very small steps to keep a log of the mods I've made.  I'll upload a diff somewhere soon.&lt;br /&gt;
&lt;br /&gt;
: I'm not calculating texture coordinates until after triangulation.  In clipper, I still have a texture parameter for each polygon.  whenever a polygon is intersected or differenced, the new poly just receives the same tex param.  The problem I'm having right now, is polys are unioned into an accumulator.  I need to keep this from happening for texmapped line data, so I'm looking at changing how the accumulator works.  This isn't as big a deal for OSM data, as I've been looking at keeping OSM z_orders on separate priority levels.  (Giving accurate overpasses / underpasses).  &lt;br /&gt;
&lt;br /&gt;
: The next hurdle was passing in the trieles to the triangulate library.  It currently only takes 1 parameter (the texture type).  I combine this with an index into an array of texture parameters, so when the triangles come back, I can then calculate the texture parameters for each triangle based on the indexed texparam.  I think I'd rather have the triangle library take the parameters separately, but I haven't looked at the code for that much.&lt;br /&gt;
&lt;br /&gt;
: I've been thinking about interchanges, and such.  I think a lot of this should be done with a tool other than ogrdecode.  we should have a specialized road decoder (for freeways, primary roads, railways, etc)  That can handle OSM data, and optimize/simplify it (I saw a link on some of the research somewhere) and handle merge lanes, intersections and bridges.  Lot's of new materials required.&lt;br /&gt;
: --[[User:Psadro gm|Psadro gm]] 12:14, 27 January 2011 (EST)&lt;br /&gt;
&lt;br /&gt;
:: I guess you mean this page [http://www.custom-scenery.org/Line-data-simpl.275.0.html] that talks about line simplification.&lt;br /&gt;
:: -- 	[[User:Zan|Zan]] 04:18, 28 January 2011 (EST)&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:TerraGear_texmapped_line_data&amp;diff=27883</id>
		<title>Talk:TerraGear texmapped line data</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:TerraGear_texmapped_line_data&amp;diff=27883"/>
		<updated>2011-01-26T09:02:30Z</updated>

		<summary type="html">&lt;p&gt;Zan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This looks great and is something I intended to do earlier, but never really got into it.&lt;br /&gt;
I wonder how you managed to make the clipper honour the texture coordinates, as that was the step where I let the project be?&lt;br /&gt;
Whenever the roads are crossing, you should probably create a new polygon (quad maybe?) there and assign it a &amp;quot;crossroad&amp;quot; material. Of course then you'd need to have different textures for T cross or X cross etc, this is hard.&lt;br /&gt;
I also suggest you to use OSM data instead of the line data. As you modified to code generating the wider polygons, I guess it should be quite straightforward to generate the line graph with correct width from OSM xml files and then polygons from those. That way you could get also lane information etc.&lt;br /&gt;
I'd like to see how you did this, if you could upload a diff somewhere so I could check? I have some ideas of adding extra parameters and this code of yours might help in the process.&lt;br /&gt;
Oh, and I don't think it matters if the &amp;quot;already textured&amp;quot; polygons are added as single triangles or fans or strips. As long as the texture coordinates are preserved :)&lt;br /&gt;
:- Zan&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:TerraGear_texmapped_line_data&amp;diff=27882</id>
		<title>Talk:TerraGear texmapped line data</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:TerraGear_texmapped_line_data&amp;diff=27882"/>
		<updated>2011-01-26T08:58:41Z</updated>

		<summary type="html">&lt;p&gt;Zan: Created page with &amp;quot;This looks great and is something I intended to do earlier, but never really got into it. I wonder how you managed to make the clipper honour the texture coordinates, as that was...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This looks great and is something I intended to do earlier, but never really got into it.&lt;br /&gt;
I wonder how you managed to make the clipper honour the texture coordinates, as that was the step where I let the project be?&lt;br /&gt;
Whenever the roads are crossing, you should probably create a new polygon (quad maybe?) there and assign it a &amp;quot;crossroad&amp;quot; material. Of course then you'd need to have different textures for T cross or X cross etc, this is hard.&lt;br /&gt;
I also suggest you to use OSM data instead of the line data. As you modified to code generating the wider polygons, I guess it should be quite straightforward to generate the line graph with correct width from OSM xml files and then polygons from those. That way you could get also lane information etc.&lt;br /&gt;
I'd like to see how you did this, if you could upload a diff somewhere so I could check?&lt;br /&gt;
 - Zan&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto_talk:Illuminate_faces&amp;diff=27881</id>
		<title>Howto talk:Illuminate faces</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto_talk:Illuminate_faces&amp;diff=27881"/>
		<updated>2011-01-26T08:51:05Z</updated>

		<summary type="html">&lt;p&gt;Zan: /* Night texture is wrong! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi Gijs, in the new section I'm using code that is understood as a wiki tag: &amp;lt;nowiki&amp;gt;&amp;lt;center&amp;gt;&amp;lt;/nowiki&amp;gt;. It disappears and causes the following bit to be centered. Can you change that and make the center appear as the rest of the code?&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
David [[User:D-79|D-79]] 17:15, 17 August 2009 (EDT)&lt;br /&gt;
:David, you can easily make the &amp;lt;nowiki&amp;gt;&amp;lt;center&amp;gt;&amp;lt;/nowiki&amp;gt; tag visible by adding nowiki tags around it (edit page to see how I've done it). This works with all kind of tags (even &amp;lt;nowiki&amp;gt;'''bold'''&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;[[link]]&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
:Regards, [[User:Gijs|Gijs]] 04:30, 18 August 2009 (EDT)&lt;br /&gt;
&lt;br /&gt;
Hi Gijs, thanks for the help!&amp;lt;br&amp;gt;&lt;br /&gt;
David [[User:D-79|D-79]] 05:01, 18 August 2009 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Night texture is wrong! ==&lt;br /&gt;
&lt;br /&gt;
In the section '''Switch to another part of texture if illuminated''' the example texture is wrong. Since the lighting depends on the angle of the sun to the surface, the day-texture will be (almost) totally dark during the night so you don't need the dark night texture. Now, since there is some angle-of-the-sun property which is used to change the night texture, the switch is clearly visible and horribly unrealistic.&lt;br /&gt;
&lt;br /&gt;
Instead, I suggest using either different objects for the windows and using the emissive animation as described earlier, or make the night texture the same as the day texture, but with the windows lit.&lt;br /&gt;
&lt;br /&gt;
I think we might want to use a separate material parameter (is there any that is not yet used?) to control the &amp;quot;night emissivity&amp;quot; and then use that to light the windows etc in a shader.&lt;br /&gt;
&lt;br /&gt;
Any comments?&lt;br /&gt;
&lt;br /&gt;
::Attaching some images to show the issue, pay attention to the time.&lt;br /&gt;
::[[File:Fgfs-evening-shot1.png]]&lt;br /&gt;
::[[File:Fgfs-evening-shot2.png]]&lt;br /&gt;
:: - Zan&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Fgfs-evening-shot2.png&amp;diff=27880</id>
		<title>File:Fgfs-evening-shot2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Fgfs-evening-shot2.png&amp;diff=27880"/>
		<updated>2011-01-26T08:50:23Z</updated>

		<summary type="html">&lt;p&gt;Zan: KSFO terminal with night textures, compare to the previous shot which was taken about three minutes earlier.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KSFO terminal with night textures, compare to the previous shot which was taken about three minutes earlier.&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Fgfs-evening-shot1.png&amp;diff=27879</id>
		<title>File:Fgfs-evening-shot1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Fgfs-evening-shot1.png&amp;diff=27879"/>
		<updated>2011-01-26T08:49:40Z</updated>

		<summary type="html">&lt;p&gt;Zan: KSFO Terminal with day textures, few minutes before strange things happen...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KSFO Terminal with day textures, few minutes before strange things happen...&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Zan&amp;diff=27878</id>
		<title>User:Zan</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Zan&amp;diff=27878"/>
		<updated>2011-01-26T08:47:25Z</updated>

		<summary type="html">&lt;p&gt;Zan: Created page with &amp;quot;Zan is a wannabe developer.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zan is a wannabe developer.&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Rendering_system_improvements&amp;diff=27861</id>
		<title>Talk:Rendering system improvements</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Rendering_system_improvements&amp;diff=27861"/>
		<updated>2011-01-25T19:29:05Z</updated>

		<summary type="html">&lt;p&gt;Zan: Added comments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Suggestions ==&lt;br /&gt;
If we rendered it to just render where the camera is pointing, couldn't we get faster frame rates, because it seems like useless rendering to render absolutely everything (even if you're not looking at it).&lt;br /&gt;
&lt;br /&gt;
::Yes, of course the parts of scenery not visible should not be rendered, and that's one thing that OSG does for us. It's called view frustrum culling, and if I remember correctly, the cull thread takes most time per frame in flightgear.&lt;br /&gt;
:: - Zan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I'm not absolutely sure how to go about this one, but (I'm sorry for being such an X-Plane fan) couldn't we do sort of like what X-Plane does?  So you'd only have to render high quality graphics a close distance to the plane, and further out, the pixels could be a little blurry, but since no one's able to clearly see it that far away, you might as well make it a little bit more blurry.  I think that a lot of what Austin (lead developer of X-Plane) says on his &amp;quot;What's New&amp;quot; page is very useful information, and maybe we should take some advice from it.&lt;br /&gt;
&lt;br /&gt;
::This is called level of detail or LOD. We have some kind of LOD schemes currently in flightgear (like trees are visible only when near etc) but better LOD would indeed give better performance and looks. With clouds for example, it could mean using smaller textures farther away, and for terrain, using one baked texture for whole scenery tile insted of different materials. I think there have been some discussion about LOD before, I could search for them and link them up, as it is an important aspect.&lt;br /&gt;
::Also, should probably use simpler shaders when objects are far away... even though that itself brings LOD since there is less pixels to render.&lt;br /&gt;
::And the new X-Plane screenshots indeed look great. [http://www.x-plane.com/pg_news.html]&lt;br /&gt;
:: - Zan&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Shader_requests&amp;diff=27796</id>
		<title>Talk:Shader requests</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Shader_requests&amp;diff=27796"/>
		<updated>2011-01-20T12:21:27Z</updated>

		<summary type="html">&lt;p&gt;Zan: Created page with &amp;quot;Water shader link is broken, leads to a topic about &amp;quot;RSS Feed&amp;quot;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Water shader link is broken, leads to a topic about &amp;quot;RSS Feed&amp;quot;&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto_talk:Illuminate_faces&amp;diff=27785</id>
		<title>Howto talk:Illuminate faces</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto_talk:Illuminate_faces&amp;diff=27785"/>
		<updated>2011-01-19T11:29:31Z</updated>

		<summary type="html">&lt;p&gt;Zan: /* Night texture is wrong! */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi Gijs, in the new section I'm using code that is understood as a wiki tag: &amp;lt;nowiki&amp;gt;&amp;lt;center&amp;gt;&amp;lt;/nowiki&amp;gt;. It disappears and causes the following bit to be centered. Can you change that and make the center appear as the rest of the code?&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
David [[User:D-79|D-79]] 17:15, 17 August 2009 (EDT)&lt;br /&gt;
:David, you can easily make the &amp;lt;nowiki&amp;gt;&amp;lt;center&amp;gt;&amp;lt;/nowiki&amp;gt; tag visible by adding nowiki tags around it (edit page to see how I've done it). This works with all kind of tags (even &amp;lt;nowiki&amp;gt;'''bold'''&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;[[link]]&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
:Regards, [[User:Gijs|Gijs]] 04:30, 18 August 2009 (EDT)&lt;br /&gt;
&lt;br /&gt;
Hi Gijs, thanks for the help!&amp;lt;br&amp;gt;&lt;br /&gt;
David [[User:D-79|D-79]] 05:01, 18 August 2009 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Night texture is wrong! ==&lt;br /&gt;
&lt;br /&gt;
In the section '''Switch to another part of texture if illuminated''' the example texture is wrong. Since the lighting depends on the angle of the sun to the surface, the day-texture will be (almost) totally dark during the night so you don't need the dark night texture. Now, since there is some angle-of-the-sun property which is used to change the night texture, the switch is clearly visible and horribly unrealistic.&lt;br /&gt;
&lt;br /&gt;
Instead, I suggest using either different objects for the windows and using the emissive animation as described earlier, or make the night texture the same as the day texture, but with the windows lit.&lt;br /&gt;
&lt;br /&gt;
I think we might want to use a separate material parameter (is there any that is not yet used?) to control the &amp;quot;night emissivity&amp;quot; and then use that to light the windows etc in a shader.&lt;br /&gt;
&lt;br /&gt;
Any comments?&lt;/div&gt;</summary>
		<author><name>Zan</name></author>
	</entry>
</feed>