Jump to: navigation, search

Howto:Shader programming in FlightGear

1,361 bytes added, 21:48, 12 October 2014
no edit summary
= A Practical Application in [[Flightgear]] =
== ALS Landing Lights \ Spotlight ==
[[File:als secondary light.png|640px|thumbnail|Proof of Concept]]
The ALS Landing Lights/\Spotlight (we'll call it ALS Lights from now on) is a good example for showing how to incorporate a shader effect into [[Flightgear]] as it touches many parts of the visuals we see and many parts of the coding pipeline.
===Program Flow Simplified===
Parameter entries defined in the Effect file correspond to a property tree data container (static or variable). They will contain the data needed by the shader program to perform its magic. The type of information contained in the property tree might be program control data or variable/static data that the shader program can manipulate prior to sending on to render.
In the case of ALS Lights, below is some of the data passed to, and used by, the shader. <display_xsize><use>/sim/startup/xsize</use></display_xsize> <display_ysize><use>/sim/startup/ysize</use></display_ysize> <view_pitch_offset><use>/sim/current-view/pitch-offset-deg</use></view_pitch_offset> <view_heading_offset><use>/sim/current-view/heading-offset-deg</use></view_heading_offset> <view_fov><use>/sim/current-view/field-of-view</use></view_fov> <use_searchlight><use>/sim/rendering/als-secondary-lights/use-searchlight</use></use_searchlight> <use_landing_light><use>/sim/rendering/als-secondary-lights/use-landing-light</use></use_landing_light> <use_alt_landing_light><use>/sim/rendering/als-secondary-lights/use-alt-landing-light</use></use_alt_landing_light> <landing_light1_offset><use>/sim/rendering/als-secondary-lights/landing-light1-offset-deg</use></landing_light1_offset> <landing_light2_offset><use>/sim/rendering/als-secondary-lights/landing-light2-offset-deg</use></landing_light2_offset> <quality_level><use>/sim/rendering/shaders/landmass</use></quality_level> <tquality_level><use>/sim/rendering/shaders/transition</use></tquality_level>
Some of this data may play a duel role inside the shader program. In other words it might be used to control other functions in addition to ALS Lights.
*Shader Program

Navigation menu