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