1
0
Fork 0
flightgear/src/Main
ehofman dba02e35d4 Frederic Bouvier:
FG_ENABLE_MULTIPASS_CLOUDS must be defined to enable
 the algorithm. I made this because the stencil buffer
 must be initialized at the beginning of the program and
 OpenGL can fallback to software rendering if it can't
 find a visual with stencil buffer. I didn't touch the
 configure script, so CXXFLAGS=-DFG_ENABLE_MULTIPASS_CLOUDS
 must be set before running ./configure.

 If FG_ENABLE_MULTIPASS_CLOUDS is defined, the main render
 loop begins by reading the /sim/rendering/multi-pass-clouds
 property. It is a boolean property so there are only two
 quality levels. false means no multi pass and no use of
 the stencil buffer, true means an additionnal pass for
 both upper and lower cloud layers.

 The algorithms are as follow :
  /sim/rendering/multi-pass-clouds=false
   1. draw sky dome
   2. draw terrain only
   3. draw clouds above the viewer
   4. draw models except the aircraft
   5. draw clouds below the viewer
   6. draw the aircraft.
  The cloud rendering doesn't update the depth buffer.
  This means that models overwrite clouds above the viewer.
  This is only noticeable for tall buildings and when
  flying very low. Also, drawing low clouds after models
  means that they are not blended with models' translucent
  surfaces. Large transparent area require alpha test
  enabled and AI aircraft canopy are making holes. The
  pilot's aircraft being rendered at the end, there is no
  problem with canopy or prop disc.

  /sim/rendering/multi-pass-clouds=true
   1. draw the sky dome
   2. draw the terrain only
   3. draw all clouds
   4. draw models except the aircraft
   5. redraw the clouds where the models where drawn ( stencil
      test on )
   6. draw the aircraft
  The assumptions made by this algoritm are that the terrain
  is not transparent ( should be true in all cases and
  that there are no clouds between the aircraft and the viewer.
  Assuming these facts, there should be no blending bugs.

  The screenshot rendering is not updated yet.
2004-04-02 14:40:54 +00:00
..
.cvsignore Updated. 2004-02-07 21:37:54 +00:00
3dfx.sh Ssg tweaks. 1999-06-30 00:25:13 +00:00
bootstrap.cxx Yank out all the glut dependencies and concentrate them in a (easily 2004-03-31 21:10:32 +00:00
fg_commands.cxx Clean up various compiler warnings that have crept into the code. This 2004-04-01 15:27:53 +00:00
fg_commands.hxx Move FGEventMgr and FGSubsystemMgr over to SimGear, add SGEventMgr to FlightGear's globals structre and some small code cleanups 2003-09-24 17:20:55 +00:00
fg_init.cxx Clean up various compiler warnings that have crept into the code. This 2004-04-01 15:27:53 +00:00
fg_init.hxx Added a command line option to specify a starting time of day in the sense of: 2003-09-15 22:55:39 +00:00
fg_io.cxx Add Manuel Bessler and Stephen Lowry's remote joystick code and add David Magginson's 3dconvert utility 2003-11-12 10:06:18 +00:00
fg_io.hxx Move FGEventMgr and FGSubsystemMgr over to SimGear, add SGEventMgr to FlightGear's globals structre and some small code cleanups 2003-09-24 17:20:55 +00:00
fg_os.cxx Frederic Bouvier: 2004-04-02 14:40:54 +00:00
fg_os.hxx Frederic Bouvier: 2004-04-02 14:40:54 +00:00
fg_props.cxx Remove the old WeatherCM module. 2004-03-16 20:19:07 +00:00
fg_props.hxx Change fg_props.[ch]xx into a proper subsystem, under the control of 2004-02-20 17:35:33 +00:00
globals.cxx Curt Olson: 2004-01-31 19:47:45 +00:00
globals.hxx Curt Olson: 2004-01-31 19:47:45 +00:00
logger.cxx Change the timing semantics slightly so that you get much closer to the 2003-11-24 01:50:48 +00:00
logger.hxx Move FGEventMgr and FGSubsystemMgr over to SimGear, add SGEventMgr to FlightGear's globals structre and some small code cleanups 2003-09-24 17:20:55 +00:00
main.cxx Frederic Bouvier: 2004-04-02 14:40:54 +00:00
main.hxx Remove a possible glut dependency and do some code cleaning 2003-08-29 16:46:21 +00:00
Makefile.am Yank out all the glut dependencies and concentrate them in a (easily 2004-03-31 21:10:32 +00:00
metar_main.cxx Move the new metar class from FlightGear to SimGear 2004-02-02 10:14:20 +00:00
options.cxx Clean up various compiler warnings that have crept into the code. This 2004-04-01 15:27:53 +00:00
options.hxx Update --showaircraft and --aircraft= options to recursively search the 2003-09-19 20:06:27 +00:00
README Moved FGAircraftModel subsystem out into its own directory, and 2002-04-05 03:19:34 +00:00
runfgfs.bat.in source tree reorganization prior to flightgear 0.7 2009-09-14 14:26:20 +02:00
runfgfs.in Script was looking for wrong executable name. 1999-10-15 00:11:52 +00:00
splash.cxx Yank out all the glut dependencies and concentrate them in a (easily 2004-03-31 21:10:32 +00:00
splash.hxx Add support for an aircraft specific splash screen 2003-12-22 21:49:11 +00:00
util.cxx Remove the old WeatherCM module. 2004-03-16 20:19:07 +00:00
util.hxx Move fgSetupWind() from options.cxx to util.cxx 2004-02-23 09:37:28 +00:00
viewer.cxx Jim Wilson: 2004-03-19 03:30:18 +00:00
viewer.hxx Jim Wilson: 2004-03-19 03:30:18 +00:00
viewmgr.cxx Clean up various compiler warnings that have crept into the code. This 2004-04-01 15:27:53 +00:00
viewmgr.hxx Jim Wilson: 2004-03-19 03:30:18 +00:00

Last updated $Date$

This directory contains the main routine for FlightGear, together with
various utility classes and functions that do not fit in anywhere
else, and subsystems that have not yet graduated to having their own
directories (because the maintainers are lazy, not because the
subsystems are not important).

fg_commands.cxx
fg_commands.hxx
  This module defines a global function to register FlightGear's
  built-in commands.

fg_init.cxx
fg_init.hxx
  This module defines global functions to initialize for the various
  subsystems.  Code is gradually being moved out of here and into the
  subsystems' own init() methods, so this module will eventually
  disappear.

fg_io.cxx
fg_io.hxx
  This module defines high-level global I/O functions for FlightGear.
  I don't know how widely these are used, yet.

fg_props.cxx
fg_props.hxx
  This module provides a FlightGear layer over the SimGear property
  manager.  This module performs two roles: it provides global
  convenience functions for accessing the FlightGear property tree,
  and it ties some properties to its own static functions.  The second
  role has mostly disappeared, since subsystems now tie their own
  properties in their bind() methods, and eventually this module will
  contain only the convenience functions.

fgfs.cxx
fgfs.hxx
  This module defines FGSubsystem, the abstract base class (or
  interface) for subsystems in FlightGear.  Most of the important
  subsystems already extend this class, and eventually, all subsystems
  will.

globals.cxx
globals.hxx
  This module defines FGGlobals, a class that holds pointers to
  subsystems and other variables used by a FlightGear session.  Many
  global variables have migrated into here, and eventually, all will,
  so that the program can maintain state for more than one session at
  once.

logger.cxx
logger.hxx
  This module defines the FGLogger subsystem, which allows the user to
  log any property value to any number of CSV files, somewhat like an
  overenthusiastic flight data recorder.

main.cxx
  This file defines the main() function for FlightGear as well as the
  top-level loop.  Currently, there is a still lot of code in here
  that belongs in the individual subsystems' init() and update()
  methods; eventually, this will be a short, simple file defining the
  top-level flow logic of the program.

options.cxx
options.hxx
  This module defines global functions for parsing command-line
  options and transferring them to the property tree.

runfgfs.bat
runfgfs.bat.in
  This is a batch file for launching FlightGear under MSWindows.
  runfgfs.bat is autogenerated from runfgfs.bat.in, so any changes
  should be made to the latter file.

splash.cxx
splash.hxx
  This module defines global functions for displaying and updating the
  splash screen.

viewer.cxx
viewer.hxx
  This module defines the FGViewer subsystem, which calculates the
  viewpoint in world coordinates and provides transformation matrices
  for the scenery code.  FGViewer has methods that allow the program
  to rotate or move the current view direction.

viewmgr.cxx
viewmgr.hxx
  This module defines the FGViewMgr subsystem, which manages all of
  the different views available in FlightGear.