For a new release, especially one with version number 1.0, we
should provide some new screenshots for the website. Normally,
Curt would ask for that, but as he is/was away for a few days,
I start with this reminder. Screenshots should ...

- use maximum quality (antialiasing!)
- disable gui parts (menu/frame rate counter, unless that's what
  you want to demonstrate, of course)
- ideally (but not necessarily) show something that is new in this
  release: one of the aircraft shipped in the default package for
  the first time, or a new feature (or at least something that is
  in context with a new feature, so that a subscription text can
  explain the feature)

Please don't just make random snapshots of random flights, but
aim for a good view angle, appropriate weather effects (not only
default weather, unless that's the most appropriate :-), ideal
sun angle (shadow angle -> self-shadowing), etc. Look at some
of the last screenshots, most of which were quite good.

The contents of a screenshot shouldn't be (totally) cheated. That
is: one should be able to see the same scene with a default fgfs
if the weather, daytime etc. is the same (and one has a graphics
card good enough for real-time antialiasing). But some "cheating" is
acceptable, if it follows this principle. It's OK to use terrain/objects
that aren't in the default tiles (e.g. using KNID is fine), as
long as that's available from Jon's ObjectDB. It's *not* OK to show,
for example, a Jeep in a Hercules, as this isn't something we can
do with a flyable Hercules.



Unfortunately, my FX5500 isn't good enough for live antialiasing,
so I use an acceptable cheating method: from a local key binding
(Meta-d) I call a function dump_aircraft_snapshot() that saves
a snapshot, similar to what ac_state.nas does. This allows me to
make a normal ("aliasing") flight with my target aircraft. When I
found a nice situation, I pause fgfs, then press the snapshot key,
and get a snapshot file, e.g ~/.fgfs/snapshot-KNID-A-10-1.xml
(automatically inserting the nearest airport and aircraft, as well
as an index number that prevents overwriting old files).

Now I turn on full anti-aliasing, and run fgfs again with

  $ fgfs --aircraft=ufo ~/.fgfs/snapshot-KNID-A-10-1.xml

And now the A-10 hangs there like it did in the prior run, and
I can use the UFO to find a good viewing angle, good sun angle,
good weather etc. With full antialiasing that's still sluggish,
but workable.

Here's the result of a quick test with the A-10 near KNID. It
isn't spectacular, but you can see that there's full antialiasing
and still a nice shadow effect. This would have been quite hard
(though possible!) with a real A-10 flight.

  http://members.aon.at/mfranz/a10.jpg  [32.9 kB]

m.
var uniquefilename = func(format) {
        for (var i = 1; i; i += 1) {
                var name = sprintf(format, i);
                if (io.stat(name) == nil)
                        return name;
        }
}


var dump_aircraft_snapshot = func {
        var ac = getprop("/sim/aircraft");
        var apt = airportinfo().id;
        var filename = uniquefilename("snapshot-" ~ apt ~ "-" ~ ac ~ "-%d.xml");
        var save = props.Node.new({ filename: filename });
        var data = save.getNode("data", 1);
        var lat = getprop("/position/latitude-deg");
        var lon = getprop("/position/longitude-deg");
        var alt = getprop("/position/altitude-ft");

        var m = data.getNode("sim/presets", 1);
        m.getNode("latitude-deg", 1).setDoubleValue(lat);
        m.getNode("longitude-deg", 1).setDoubleValue(lon);
        m.getNode("altitude-ft", 1).setDoubleValue(alt);

        var m = data.getNode("position", 1);
        m.getNode("latitude-deg", 1).setDoubleValue(lat);
        m.getNode("longitude-deg", 1).setDoubleValue(lon);
        m.getNode("altitude-ft", 1).setDoubleValue(alt);

        var m = data.getNode("models/model", 1);
        m.getNode("path", 1).setValue(getprop("/sim/model/path"));
        m.getNode("latitude-deg", 1).setDoubleValue(lat);
        m.getNode("longitude-deg", 1).setDoubleValue(lon);
        m.getNode("elevation-ft", 1).setDoubleValue(alt);
        m.getNode("heading-deg", 
1).setDoubleValue(getprop("/orientation/heading-deg"));
        m.getNode("pitch-deg", 
1).setDoubleValue(getprop("/orientation/pitch-deg"));
        m.getNode("roll-deg", 
1).setDoubleValue(getprop("/orientation/roll-deg"));

        var g = props.globals;
        props.copy(g.getNode("sim/model", 1), data.getNode("sim/model", 1));
        props.copy(g.getNode("surface-positions", 1), 
data.getNode("surface-positions", 1));
        props.copy(g.getNode("controls", 1), data.getNode("controls", 1));
        props.copy(g.getNode("engines", 1), data.getNode("engines", 1));
        props.copy(g.getNode("rotors", 1), data.getNode("rotors", 1));
        props.copy(g.getNode("gear", 1), data.getNode("gear", 1));

        data.getNode("sim/model").removeChild("path", 0);
        fgcommand("savexml", save);
        print("snapshot written to ", filename);
}

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to