It’s
something of a subjective thing, after all. You could render 1
frame ever 2 refreshes, and some would say it’s smooth, while
others wouldn’t. Sounds like your definition is at the high end to
me.
My definition is brutally simple:
1) One frame per CRT refresh.
2) "Constant speed" means that an object moves N pixels
every frame, where...
3a) ...N is the nearest integer number for each frame,
that would accumulate to the exact speed, OR...
3b) ...N is the "exact" (speed / frame rate), which
requires sub-pixel accurate rendering.
That’s how most gamers would define it, minus point #1. Some die-hard
action gamers will care about whether the game refreshes once per CRT
refresh, but those are a minority.
#1 is very relevant to 2D games, as constant speed scrolling quickly
reveals the “blurring” or “ghosting” effect caused by displaying the same
frame more than once.
In my experience, this is less obviousy in 3D games, and I’d guess that’s
why people don’t seem to care all that much about it these days.
Back in the glorious days of the Demo Scene and 2D games, “full frame
rate” was the only frame rate there was for 2D effects…
"Hah! It doesn't even run at full frame rate!"
I can still see the difference, and I still care. This is not a function
of what kind of games are the most popular right now, as 2D games are
still 2D games - and I want to write real, arcade class 2D games.
Actually, most gamers are always concerned about maximum fps, without
even knowing what they’re talking about. One guy actually tried to
persuade me that he had a benefit of running a game at an fps rate
higher than the vertical refresh rate.
Well, if he had superhuman reactions, he could have had some benefit,
if the input code was running at the full “internal” frame rate…
This kind of talk is probably
encouraged by Quake 3 benchmarks running at 200fps or something.
Many monitors can handle that kinds of refresh rates even in higher
resolutions these days - but that’s another story. (And also a total
waste of rendering power. You don’t need a higher refresh rate than what
your eyes see as flicker free.)
Now, the other smoothing conditions can easily be obtained at a
constant, lower frame rate.
Yes indeed.
With jitter, you run into occasional
troubles, but that’s nothing too serious.
It’s very serious if it makes you miss frame deadlines every now and
then… but with triple buffering, you can handle jitter in the [0,
frame_period] range, so that’s not a problem with a proper setup.
In my very early SDL days, I
wrote a simple scroller which obviously had to refresh the entire
screen every frame. It ran horribly slow with jittering framerates, and
the scrolling was horribly jerky. I changed the scroll coordinates
types from int to float (read: no rounding errors due to missing
sub-pixel accuracy), and the scrolling was actually bearable, even
though the framerate was below 20fps. Obviously, that was without
action going on
I’ve done that with OpenGL and subpixel accurate scrolling - and indeed,
it gets smoother, but the “subpixel” part is totally useless for normal
scrolling speeds, unless page flipping is retrace sync’ed.
From what I’ve heard from die-hard first-person shooter gamers, they’re
actually more concerned about input framerate rather than screen output
framerate because it gives them better movement control. Of course
those two are locked together unless you’re using threads or you’re
running the input and game logic code several times per frame.
Speaking of which, I should probably do that on Kobo Deluxe, to make it
more responsive on low end machines. Or rather, more accurate -
responses can never be seen before the next frame is visible anyway, so
it’s sufficient that input events are read and timestamped, so that the
engine knows which “logic frame” each one belongs to.
//David Olofson — Programmer, Reologica Instruments AB
.- M A I A -------------------------------------------------.
| Multimedia Application Integration Architecture |
| A Free/Open Source Plugin API for Professional Multimedia |
----------------------------> http://www.linuxdj.com/maia -' .- David Olofson -------------------------------------------. | Audio Hacker - Open Source Advocate - Singer - Songwriter |
-------------------------------------> http://olofson.net -'On Thursday 14 March 2002 19:56, Nicolai Haehnle wrote: