1
0
Fork 0
Commit graph

523 commits

Author SHA1 Message Date
ehofman
7c616bb5bd Frederic Bouvier:
Cure the performance penalty that leads to draw the aircraft twice.
Also cure the transparency bug over the aircraft.
2004-04-02 16:50:38 +00:00
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
andy
ae2dbe4f25 Re-enable glut game mode for now 2004-04-01 15:44:13 +00:00
curt
2acdd02879 Clean up various compiler warnings that have crept into the code. This
by no means get's them all, but it's a start.
2004-04-01 15:27:53 +00:00
andy
c0b4531d04 Yank out all the glut dependencies and concentrate them in a (easily
reimplementable) Main/fg_os.cxx file.
2004-03-31 21:10:32 +00:00
ehofman
d430290e48 Frederic Bouvier:
trying the --show-aircraft option, I noticed that I had
no output. This is because there are still output to
cout or cerr, that are not triggering my console patch
for windows. The patch attached use SG_LOG instead.
A request to hit a key is also added because otherwise,
the console window will disappear as soon as the program
stop.

This problem is minor though given the fact that fgfs.exe
is shipped with fgrun that do show the available aircraft
in a much nicer manner.
2004-03-30 09:05:05 +00:00
curt
f7fc455b0d Jim Wilson:
Remove some hardcoded dependencies between fdm, viewer and acmodel classes and
replaced them with property references.   Fix roll offset in viewer.
2004-03-19 03:30:18 +00:00
curt
a1a68b9c93 Various preparations for the next release. 2004-03-18 02:37:01 +00:00
david
25290c4467 Remove the old WeatherCM module. 2004-03-16 20:19:07 +00:00
david
d535c7c6b1 Reverted recent changes -- the dependencies are badly (and
unnecessarily) tangled.
2004-02-27 16:48:27 +00:00
david
721e9f469d Add the aircraft model, model manager, view manager, and scenery
manager to the standard subsystem collection manager, rather than
using extra code to initialize and update them.
2004-02-27 15:16:23 +00:00
david
9409d5e35e Change fg_props.[ch]xx into a proper subsystem, under the control of
the subsystem manager.

Add properties for the individual parts of the time and date.
2004-02-20 17:35:33 +00:00
curt
da5ea10d5d Curt Olson:
Autopilot overhaul.
2004-01-31 19:47:45 +00:00
curt
492d5fbd8d Fix a small mistake in the scene graph arrangement for vasi lights. 2004-01-11 19:45:29 +00:00
ehofman
465d13b045 Add support for an aircraft specific splash screen 2003-12-22 21:49:11 +00:00
andy
439a9fa1e4 Minor API changes to support the new sg_geodesy implementation. A few
places now use sgCartToGeod() instead of rolling their own
approximation.  And YASim is now using exactly the same 3D coordinate
system as the rest of FlightGear is.
2003-12-19 02:42:32 +00:00
david
01f8f51614 Remove the seriously-outdated DCS code (we have different facilities
for including external objects now).

Set the default logging level to 'alert' (i.e. pending disaster).
2003-11-24 17:46:38 +00:00
curt
e4295262d0 Currently, when the sim pauses, all IO is also halted. To me it generally
makes more sense to keep I/O running.  That way remote telnet connections
will still respond, and the sim can still accept and send data.  This also
allows a remote script or gui to pause and (more importantly) be able to
the unpause the sim.
2003-11-21 23:35:25 +00:00
ehofman
e322c70f52 Depreciate NetworkOLK. A big thanks goes to Oliver Delise for implementing it in the first place. 2003-11-13 14:42:47 +00:00
ehofman
177e081a2a Disable two sided light model because Andy's patch to plib makes it unneeded. This should also increase framerate a bit 2003-11-09 15:07:23 +00:00
curt
cc7b15fa7b Various 0.9.3 updates. 2003-10-24 17:06:39 +00:00
curt
58cadee5f3 Updates for 0.9.3-pre1 2003-10-16 03:29:04 +00:00
ehofman
980012e168 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
ehofman
2764b9181b Fix a problem where the upper cloud layers are draw
n with the sun punch through value
2003-09-23 08:43:19 +00:00
ehofman
7d6cafba6e Use the log level environment already set up by David instead of mine 2003-09-22 09:22:05 +00:00
ehofman
e0dda6ad52 A small fix to have a smoot transition of cloud colors when in time warp mode 2003-09-20 11:05:12 +00:00
ehofman
a33ad90ed7 Convert fgLIGHT to FGLight and make it FGSubsystem compatible. Let the subsystem manager handle it and let FGLight::update() handle the repositioning of the sun and the moon. 2003-09-20 09:38:32 +00:00
ehofman
7d6aea909d Remove some unused UIUC specific code 2003-09-18 09:33:13 +00:00
ehofman
15f45ad9a5 Reorginize the code just before fgMainLoop a bit so that the lighting update actually has any effect 2003-09-17 10:02:36 +00:00
curt
9bb782ce72 Added a command line option to specify a starting time of day in the sense of:
--timeofday=dawn
  --timeofday=dusk
  --timeofday=noon
  --timeofday=midnight
2003-09-15 22:55:39 +00:00
ehofman
7249aaea33 Frederic Bouvier:
This patch is there to correct a problem that prevent to load static objects when specifying a relative fg-root or a different, relative, fg-scenery. It appears that there is a mix between fg-root, fg-scenery and PLIB's model-dir.
It has been reported on the list that users are not able to see the buildings, especially those running the win32 builds because they run 'runfgfs.bat' that set FG_ROOT=./DATA.

I decided not to use model-dir because it just add confusion and to build a valid path earlier.
2003-09-13 11:47:30 +00:00
ehofman
2be37c04fe Enable two sided lighting calculations when specular highlight is enabled 2003-09-13 09:27:50 +00:00
ehofman
dd963990dc Turn back to default lighting when specular-highlight gets disabled 2003-09-12 22:09:54 +00:00
ehofman
9812739a71 Add the posibillity to disable specular highlight because it looks like some implementations switch over to sofware rendering when this is enabled 2003-09-12 21:43:01 +00:00
ehofman
774faa157d Make it possible for textured object to change color to white when lit by a strong light source. This might affect rendering time a bit 2003-09-12 09:27:19 +00:00
ehofman
82ba3ebbde Remove a possible glut dependency and do some code cleaning 2003-08-29 16:46:21 +00:00
ehofman
69d0052375 Fix an undeclared function refference in one of the supported compiler environments 2003-08-25 12:41:40 +00:00
ehofman
ced6b4f520 Updates needed for z-ordewring of the cloud layers 2003-08-22 08:05:00 +00:00
ehofman
5ae096b225 Reorganization of main.cxx 2003-08-17 09:54:41 +00:00
ehofman
be863ee240 Work around a problem in certain NVidia adapters hat don't support fgPushAttrib(FG_FOG_BIT) 2003-08-15 17:47:34 +00:00
ehofman
5898b8f828 Needed for SimGear update 2003-07-31 14:47:56 +00:00
ehofman
62ce453136 Use a pointer to a structure instead of a large number of variables when calling a function to keep the stack clean 2003-07-31 09:06:15 +00:00
ehofman
c1fa7f95bd Comment out the UIUC ground trimming code 2003-07-27 07:49:33 +00:00
ehofman
860545bfa9 This patch increases the threshold below which the uiuc models are forced above the ground. 2003-07-26 07:56:46 +00:00
curt
c5110a3650 Try to make the replay system honor /sim/speed-up, but not fully working yet. 2003-07-25 20:09:30 +00:00
curt
fff2989853 Modified the replay system to work without enabling the master or clock freeze. 2003-07-18 14:14:24 +00:00
curt
75861ec95d Avoid collecting garbage data before the FDM is initialized. 2003-07-18 01:51:45 +00:00
curt
419f09f804 Curt:
I have added a fledgling replay system that records flight data and control
positions during the flight.

I have added an internal command called "replay" which will trigger a replay
of the entire saved flight data set.  This could be bound to a keyboard or
menu command, in fact this entire module is screaming for someone to build
a gui to control playback speed, amount of playback, etc.

This is the initial version so there are kinks that still need to be worked
out, please be patient.
2003-07-17 18:24:17 +00:00
david
2da219ef5e Update magvar model before using it to initialize compass error. 2003-07-17 00:26:38 +00:00
david
34e4ff4922 Kludge the HI error so that it initially matches the magnetic variation. 2003-07-17 00:06:03 +00:00
ehofman
7b778e859c Replace some of the most used fgGetXXXX() calls with a local variable. The next best thing would be replacing the fgGetXXXX()functions with cached pointers 2003-07-05 09:59:03 +00:00
ehofman
484bab7bc8 Make sure the functions won't be called if the extension is not supported. This also clears the main loop a bitsrc/Main/main.cxx. 2003-06-29 17:14:13 +00:00
ehofman
9e07e0ac36 Mac OS X fixes 2003-06-20 20:18:40 +00:00
ehofman
ef96cce83f (temporary) Apple OS X fix 2003-06-19 07:54:29 +00:00
ehofman
6b2b6edb2d Use a different way to call OpenGL extensions and move over to our own extension checking function instead of the one provided by glut 2003-06-18 09:19:41 +00:00
ehofman
654037b83b gcc 3.2 fixes 2003-06-17 17:51:55 +00:00
ehofman
0eda5f3872 Add:
/sim/rendering/horizon-effect
   toggle sun and moon resizing effect near the horizon

/sim/rendering/enhanced-lighting
   toggle enhanced runway lighting on or off

/sim/rendering/distance-attenuation
   add distance attenuation to the enhanced runway lighting
2003-06-17 16:59:26 +00:00
ehofman
b082300ab1 Model the effect where the sun and moon look 1.5 times larger when close to the horizon 2003-06-15 12:23:55 +00:00
ehofman
0c5115e69a Base sun and moon diameter and distance on actual numbers 2003-06-14 09:32:06 +00:00
curt
6db343914f Changes corresponding to simgear sky api tweak. 2003-06-11 19:06:48 +00:00
curt
f4403fdea8 Cosmetic changes ... 2003-06-09 20:24:50 +00:00
david
e588cbadd8 Removed FGEnvironmentMgr as a special case in globals, initialization,
etc.

Improved the weather system to interpolate between different
elevations and deal with boundary-layer conditions.  The configuration
properties are now different (see $FG_ROOT/preferences.xml).
2003-06-08 14:47:03 +00:00
curt
bfaaa63bb2 Changes in preparation for the 0.9.2 release. 2003-06-04 20:27:05 +00:00
curt
9c0c54ef6c Implimented a simple frame rate throttle.
Normally for smoothest frame rates you would configure to sync
to your monitor's vertical refresh signal.  This is card/platform
dependent ... for instance with Linux/Nvidia there is
an environment variable you can set to enable this feature.

However, if your monitor is refreshing at 60hz and you can't quite sustain
that with flightgear, you can get smoother frame rates by artificially
throttling yourself to 30hz.  Note that once you are about about 24fps, it
is *change* or inconsistancy in frame rate that leads to percieved jerkiness.

You want to do whole divisors of your monitor refresh rate, so if your
display is syncing at 75 hz, you might want to try throttling to 25 hz.
2003-06-02 16:35:36 +00:00
ehofman
f30f40a2fb Fix a initialization ordering bug:
Melchior FRANZ:
The reason: these models are to be added to the scenery, but the
scenery isn't yet set up at this point. The correct order is:

 - set up model_lib (needed by the scenery)
 - set up scenery (needed by the model manager)
 - set up model manager
2003-05-31 13:38:10 +00:00
curt
21b317ff21 Move simgear/sky/ to simgear/scene/sky as part of the consolodation of
graphics code.
2003-05-30 15:16:57 +00:00
curt
56592f3869 Moved random ground cover object management code (userdata.[ch]xx) over
to SimGear.
2003-05-28 20:29:05 +00:00
ehofman
ff7408fdf2 Adjust sunset/sun rise color scheme 2003-05-16 16:33:23 +00:00
curt
6200c3cb62 Changes to track updates to SimGear. 2003-05-15 21:35:51 +00:00
curt
d6ae1c2205 Create an instance of SGMaterialLib in the "globals" structure and use
that.
2003-05-14 18:33:56 +00:00
curt
3c7bdc31d9 Cosmetic changes for new code moved into simgear to make the naming scheme
better follow simgear conventions.
2003-05-13 03:18:42 +00:00
curt
65c3caa032 Moved fgfs_src/Object/newmat.[ch]xx and fgfs_src/Object/matlib.[ch]xx into
simgear/scene/material/
Adjusted flightgear code to match this change.
2003-05-12 21:34:29 +00:00
curt
56db994994 Moved src/Model/loader.[ch]xx and src/Model/model.[ch]xx to
simgear/scene/model/
2003-05-09 20:40:59 +00:00
ehofman
5ecfcca7e4 Extract the sound code from FlightGear and move it to SimGear 2003-05-09 18:44:33 +00:00
curt
fe7a61d3ff Moved src/Model/*Animation* classes over to simgear. 2003-05-08 16:33:48 +00:00
curt
b85ff8c210 Timed animations now working again. 2003-05-08 15:56:31 +00:00
curt
677ec873be Clean up various dead, depricated, or otherwise unused code. I don't believe
the ascii scenery file format has actually worked in quite some time, and the
ADA runway light code has been supersceded by a slightly different mechanism.
2003-05-08 03:29:49 +00:00
ehofman
18dec3596d Curtis found another inconsistency in the sky repaint check. I am afraid that adding more checks would eventually give the same framerate as repainting every frame. Consider this a failed experiment. 2003-05-07 15:53:50 +00:00
curt
2119db35c3 This is step "1" of probably "many" in the process of separating out the
scene management code and organizing it within simgear.  My strategy is
to identify the code I want to move, and break it's direct flightgear
dependencies.  Then it will be free to move over into the simgear package.

- Moved some property specific code into simgear/props/
- Split out the condition code from fgfs/src/Main/fg_props and put it
  in it's own source file in simgear/props/
- Created a scene subdirectory for scenery, model, and material property
  related code.
- Moved location.[ch]xx into simgear/scene/model/
- The location and condition code had dependencies on flightgear's global
  state (all the globals-> stuff, the flightgear property tree, etc.)  SimGear
  code can't depend on it so that data has to be passed as parameters to the
  functions/methods/constructors.
- This need to pass data as function parameters had a dramatic cascading
  effect throughout the FlightGear code.
2003-05-06 23:46:24 +00:00
ehofman
b49b93f1ed Make sure the sky is also repainted when the relative view direction gets out of sync. Add a refference to /sim/rendering/debug for always repainting the sky dome. 2003-05-06 14:00:18 +00:00
ehofman
5a66847064 Repaint the sky when the view heading changes also 2003-05-05 12:39:05 +00:00
ehofman
80c8fbe4a3 Temporary disable the sky reposition speedup code until I discover the magic key that unlocks the proper behaviour. It's not like this causes a noticable decrease in framerate. 2003-04-20 09:13:03 +00:00
ehofman
d1982a9a8c Reposition the sky modules only when the lat or long position is changed for 5 micro degree. This doesn't sound much, but at least it means the modules aren't repositioned every frame 2003-04-17 15:42:18 +00:00
ehofman
d26a39cfe1 Oops, the repositioning code needs more work to be usefull. 2003-04-15 14:30:37 +00:00
ehofman
8732d3968a Magically improve the framerate by only repainting and repositioning the sky related subsystems if the sun position is changed by 0.28 degrees 2003-04-15 14:10:47 +00:00
ehofman
5454a4f281 Set the initial log-level back to info 2003-04-01 18:45:34 +00:00
ehofman
cdd7998c90 David Luff:
The one to fg_init.cxx initialises the AI subsystem regardless of whether it's enabled or not so that later enabling by the user doesn't crash it, and the one to main.cxx avoids running the ATC manager and ATC display system unless enabled.
2003-04-01 13:42:10 +00:00
ehofman
891e83809e Remove an unnecessary check. This is done in fgPanelVisible already 2003-03-31 08:36:49 +00:00
ehofman
58937e7e6b Fix a bug where current_panel was called before it was initialized properly 2003-03-31 08:25:00 +00:00
ehofman
7948238156 Declare fgReshape into gui.h 2003-03-30 19:40:43 +00:00
ehofman
4b62426109 Move current_panel to globals 2003-03-30 12:46:08 +00:00
ehofman
37c427558a A first stab at an aircraft selection dialog 2003-03-29 15:04:52 +00:00
curt
7f28165daf Added a property /sim/rendering/draw-otw which specifies whether or not
we want to draw the out-the-window view (defaults to true in properties.xml)
2003-03-29 03:21:48 +00:00
ehofman
0782e877a9 Add runtime log level support 2003-03-22 10:38:15 +00:00
ehofman
4c55a5aeb4 Andy wrote:
This is just a port of an old 3D HUD patch to the new view code.
This pans the HUD with the view, by pasting it onto a quad fixed in front of the viewer.  It also fixes the awful, arbitrary scaling problems the HUD code has.  The old HUD only looks right when viewed at 1024x768 and 55 degree FOV.  This works the scale out magically so that it looks right in all views.  It also redefines the "<compression-factor>" tag in the ladder to (1) mean compression instead of expansion and (2) have non-psychopathic units (now "1" means 1 degree per degree).  Fix this in your existing HUD ladder files before reporting bugs.  It's definitely a cosmetic win -- the velocity vector points at the right thing and the horizon lines up properly.

Norman wrote:

I have created a modified version of Andy's patch that implements the 3D HUD as the 'normal' and the 2D HUD as the 'minimal' HUD.   < i > and < shift I > keys
2003-03-21 15:02:23 +00:00
ehofman
df2ce45ab7 Change cout and cerr in SG_LOG() where appropriate, otherwise comment it out 2003-03-20 10:43:02 +00:00
ehofman
e46c59d4d0 Add multiplayer support from Duncan McCreanor and Diarmuid Tyson 2003-03-19 20:45:09 +00:00
curt
c32c8aca51 Wire frame mode got broke somehow. This seems to fix it. 2003-03-14 02:07:45 +00:00
david
c90d7e96c2 Make sure the atmosphere is updated before the flight model. 2003-03-02 01:43:00 +00:00
david
4b9060b064 Invoke fgInitNav() before fgInitPos(). 2003-02-21 02:46:07 +00:00