I have implimented a first stab at an instant replay system and have
just commited it to CVS.  The system continuously records your flight
data and allows you to play back your flight.

Saving flight data at full resolution can quickly burn up a lot of
RAM, so at the moment, only the most recent 60 seconds is stored at
full resolution.  The next most recent 10 minutes is stored at a
resolution of one snap shot every 0.5 seconds.  The most recent hour
of data is stored at a resolution of one snap shot every 5 seconds.
(We might need/want to tune these values a bit as we use the system
more.)  However, this gives the most resolution to the most recent
portion of the flight, and can save up to an hour's worth of flight
data without using a huge amount of memory.

Each snapshot is time stamped with the simulation time.  During
replay, the system finds the two snapshots that straddle the replay
time and linearly interpolates between them.  This way, we can record
the data as best as is possible given the current rendering speed,
even with varying frame rates with possible lost frames and aren't
forced to take extraordinary measures to get a consistent sampling
rate.  Then when the data is replayed, this interpolation scheme gives
us smooth playback even if the recorded frame rate is wildly (or
slightly) different from the playback frame rate.  This also gives us
smooth interpolation for older data that is recorded at a slower rate.
And we can play back the recorded flight at a rate that has a 1 to 1
match with "real" time.

This scheme would also allow us to smoothly fast forward the replay,
or replay in super smooth "Slo-Mo-Gear" (patent pending) :-) We could
probably also rewind as well as fast forward if we really wanted to.

For the moment, I have bound the "r" key to the instant replay
function.  This will replay whatever is in the buffer.  Upon
completion, you are left in "pause" mode at the point where you
activated the instant replay.  Just "unpause" and you can continue the
flight.

This whole thing is just crying for a gui/dialog box to control it
all.  Any volunteers?

I'm guessing that all the kinks are not yet quite worked out.  You'll
likely run into one or two ...  The sim is put into "pause" mode while
the buffer data is replayed.  This has some side effects because many
subsystems do not run when the simulator is paused.  This needs to be
looked at a bit more.  Specifically some of the viewer code isn't run.
You can switch views with the "v" series of keys, but you can't rotate
a particular view with shift-number pad, and the chase views don't
track quite right in replay mode.

Also, I don't and can't and won't record "everything".  This means
things like AI or multiplayer traffic, weather conditions, and other
things are beyond the scope of this system at this time.

Regards,

Curt.
-- 
Curtis Olson   IVLab / HumanFIRST Program       FlightGear Project
Twin Cities    curt 'at' me.umn.edu             curt 'at' flightgear.org
Minnesota      http://www.menet.umn.edu/~curt   http://www.flightgear.org

_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to