The Quest For Frames Per Second In Games
VL writes "Ever wondered why it is exactly everyone keeps striving for more frames per second from games? Is it simply for bragging rights, or is there more to it than that? After all, we watch TV at 30fps, and that's plenty." This editorial at ViperLair.com discusses motion blur, the frame-rate difference between movies and videogames, and why "...the human eye is a marvelous, complex and very clever thing indeed, but... needs a little help now and then."
With a higher framerate, a game just feels and plays better, it's as simple as that. 30 fps is just *not enough* to have good action and feel on most pc first person shooters.
That article reminds me of the TV ads with scientists explaining how our patented hydro-oxytane reaches deep into your pores and assasinates uglificating bacteria.
Author seems to understand about as much about the primate visual system as... well... anyone else that's never studied it. The visual cortex doesn't "add blur."
His general point is probably correct, but is reasoning is fucked.
There are no trails. There are no trees out here.
Movie projectors cheat by displaying every frame twice, which doubles the frame rate from 24 fps to 48 fps. Cinematographers also avoid certain shots, like rapidly panning from left to right, which look terrible on a movie screen.
Mea navis aericumbens anguillis abundat
I think some people take this FPS thing way too seriously. 50fps without hiccups is all I really need.
Speaking of graphic cars, I just purchased Madden 2004 and right after I bring it home I come to find out that it won't work with my GeForce 2 MX. I was planning on getting a card when HL2 cames out but it looks like I'm going to have to buy a card this weekend or next week. A GeForce FX 5200 is all I really need and that is all I'm going to get. It should last me for at least 2 years.
-----
One is born into aristocracy, but mediocrity can only be achieved through hard work.
1: 30 frames per second is simply not enough. It's fine for movies and TV, but that is only because TV shows and movies are designed around the limits of the medium. Ever notice how TV shows and movies don't have a lot of quick, jerky movements? Those movements lead to motion sickness on TV and in movies, and they are the exact movements in 3D games. 30fps makes me sick, I can tolerate 60fps.
2: Remember, FPS is the *average* framerate. It may dip well below that mark. My goal is not to have the most FPS but to have a reasonably high resolution with FSAA and AF on, all the detail settings to full, and to never have the game dip below my monitor's refresh rate (75Hz).
You could design a game to always preserve a constant frame rate. The program would synchronize itself to vertical retrace or another periodic signal. It would have to be able to build the next frame buffer in a bounded amount of time. This might require it to drop detail or features when a lot of things were going on.
Mea navis aericumbens anguillis abundat
If I can get a *SOLID* 30fps, I'd prefer that to a framerate that peaks at 60 and swoops down to 15 in places. I also can't stand it when vsync is turned off in games - tearing is horrible. A nice compromise is to keep VSync on when the framerate is high, turn it off if it drops below, say, 30fps.
:(
I'm still waiting for the day when machines are good enough and code works well enough for games can be considered "real-time" (meaning having fixed steps at, say, 60Hz - and the game is NOT ALLOWED to take longer than that 1/60th sec to render a frame).
- Disgruntled Planetside player who wishes that game always ran at 60Hz.
The well trained FPS player can practically see the individual frames in a standard 24fps movie. It's just too slow.
Repeal the DMCA!
This is idiotically wrong. This entire paragraph is predicated on the false assumption that our eye somehow has a "framerate" itself. (Either that, or the false assumption that our eye is basically a CCD with infinite discrimination, also wrong.) It does not. Our eye is fully analog. (Go figure.) You get motion blur because the nerves and the chemical receptors can only react so quickly, and because nerves fire as light accumlates on the
receptors. Since the receptors are moving quickly relative to the transmitting object, light rays from a given point are smeared across several cones/rods before the full processing of the image can take place. (Now, I'm simplifying because this isn't the place for a
textbook on vision, but at least I know I'm simplifying.) In fact, there's nothing the visual cortex could do to remove the motion blur coming from our eyes, because the motion blur causes actual information loss! (It can (and does) do some reconstruction, but you can't fill in details that don't exist.)
(Note in the portion I italized how he jumps from the "vision cortex" to "the eye"; the two are NOT the same and can't be lumped together like that in this context.)
This simple error renders the entire second page actively wrong.
Here's another, referring to interlacing:
Uh, wrong wrong wrong. Interlacing was a cheap hack to save bandwidth. "Progressive scan" is universally considered superior to interlacing (in terms of quality alone), and many (such as myself) consider keeping interlaced video modes in HDTV to be a serious
long-term mistake. It has nothing to do with convincing you you are seeing motion, in fact it has a strongly deleterious effect because you can frequently see the "combing"; that's why TVs have "anti-comb" filters. You don't see it as "motion", you see it as wierd "tearing".
ALSO wrong. The computer monitor and video card will pump out X frames per second, period. It has to. If the CRT is going at 60 fps and the video card (as in the 3D hardware) is only pumping at 30 fps, every frame will be shown for two CRT cycles. What else is the video card (as in the rasterizer) going to display? You'd notice if the screen were blank every other cycle!
Wrong again. CRTs at that frequency are "flicker free" because they pass the frequency the parts of our eyes more sensitive to motion (actually the peripheral vision, not the "primary" vision we're us
The problem with that is that if you're in a detailed indoor environment, and then suddenly step outside, the game will look like ass because of constantly dropping or adding detail.
FPS is important to FPS gamers because of one simple fact... relative motion.
If you have something travelling at a velocity of 600 pixels/s on your screen (not uncommon for objects in FPS games) it is much easier to track it at 100 FPS (relative motion of 6 pixels per frame) than 30 FPS.
Nowadays, movies are INDEED filmed with 24 frames per second and therefore are also projected with 24 frames per second. But, the frames are shown multiple times (i think two is standard, but i've heared about three, too).
.....
....
;)
And no, the film doesn't have to have the frames on it multiple times. The transport mechanism in a projector works like this: light off, move the film forward to the next frame, stop, light on, light off, move forward, stop, light on,
Now, instead of having ONE phase of light during a frame, modern projectors have TWO or THREE of them:
light off, move forward, stop, light on, light off, light on, light off, move forward
at least thats what i learned in school
Free as in mason.
...the are trying to compensate for something.
This paid my last vacation, it mi
If you are to look on a CRT screen for a long time, you certainly want a high refresh rate. How much is required to be enough probably depends on who you are, but 75Hz is not enough for me. But I can hardly tell the difference between 85Hz and 100Hz. I think 100Hz is enough for most people.
When you have chosen a refresh rate, the optimal FPS is exactly the same number. Generating more FPS is waste because it is just gives worse quality. You would either be skiping frames, which harms animations. Or you would be showing parts of different frames at the same time, which gives visible horisontal lines, where the two parts doesn't match. And yes, you will spot those broken images even when only shown for 1/100th of a second.
But generating 100 FPS and showing 100 FPS is not enough, you have to ensure each frame is showed exactly once. It requires a litle help from the graphics hardware, but nothing that is hard to implement. Having a litle extra processing power is important, you must be able to produce ever frame fast enough. You don't want to miss a deadline because occationally one frame takes just a litle more CPU time to render.
Do you care about the security of your wireless mouse?
I don't even play video games and I know the reason you need high FPS has nothing to do with the framerate at which you meld seperate frames into motion. It's all about response time. When the game can render at 500 fps it means you have to wait 1/76+1/500+'AI time' seconds for a response to something you do on the controler. This assumes your refresh rate is 76 hz. The 1/76 is fixed by your refresh rate because unless you can do the entire redraw in the vertical retrace period and have dual ported RAM on the video card you need to double buffer. Some rendering engines, not designed for games, are actually triple buffered for better throughput. Video games are all about response time, and here you you will sacrifice 1000 fps for that 500 fps to avoid adding an extra 1/76 to that timing sum. There of course is a certain point at which that number is high enough that you don't need to double buffer, in reality those nv FX-2000's and ATI 98xx's are way to slow to approach that kind of framerate with the visual quality people want.
TV has an effective framerate of 60fps*, movies are 24 and cartoons are usually 12 fps. Those can all show motion just fine as long as you don't move things too fast for the medium. The average PC monitor has a refresh rate under 90hz, not really much better than the 60hz of television, so you still can't let an object move as quickly from one side of the screen to the other as we can perceive it in real life. As someone mentioned setting the refresh rate ate 72 or 80 or whatever doesn't make your eyes hurt has nothing to do with our motion perception. In normal office use you want to set this as low as possible while still avoiding flicker so that you don't waste cycles on displaying that one character you just typed into emacs a few ms faster. If you are playing a game you want to set it as high as your monitor will take it (up to 120hz at decent resolution on some monitors), while still keeping this number below the number of frames the game can render per second so that it doesn't have to show the some frames twice and mess up the motion.
Film in a projector does not flicker like a monitor running at 24 hz. The reason a monitor flickers is because the phosphor brightess decays. A film screen is fully lit while the film is in front of the light. It flickers simply because it the time it takes to change frames is not zero, doubling the frames to 48 frames per second would increase the time the screen was dark between frames.
*yes TV has 30 'frames' but this is just how many times you redraw the phosphors, as far as motion is concerned you have 60 seperate images representing 60 different snapshots in time (assuming this is really shot as TV and not an up-converted film). Your eyes don't care that the samples are offset, it is not like you ever see one moment with the same receptors as the next, they need a regeneration time before they can sample again. And they are not synchronized at an specific FPS so the flicker explanation was all wacky. The reason you see those nasty line artifacts when watching TV on your computer without a decent TV application like 'tvtime' is because simple TV apps like XawTV are showing two fields sampled at different times at the same time. Often for a variable 2-3 frames if your refresh rate is between 61 and 89 hz. If you show those in the standard 60 hz interlaced with a TV compatible resolution you won't see those artifacts outside a freeze frame, though you will get more flicker than a regular TV because the phosphors in monitors decay faster to avoid ghosting at the higher frequency and contrast they deal with.
Again, CRT flicker has nothing to do with frames rendered per second(fps), and everything to do with how long lasting the phosphors are with respect to the screen refresh rate. Film projector's flicker is a completely different beast. Heck LCD flicker is completely unrelated to refresh rate and has everything to do with your backlight's balast(flourescent) or temperature(halogen). FPS above about 50-60 fps is all about res
The bulb in the projector doesn't turn on and off continuously.
The film is pulled frame by frame in front of the lens, and you may get the impression of flicker, but that's only because of a misaligned shutter that's in front of the bulb-- it lets light through when the frame is aligned, and blocks the light as the next frame is being pulled down. This happens 24 times per second.
You may want to consult this article at How Stuff Works, specifically the fourth page, which deals with bulbs, shutters, etc.
What school was that?
The argument that 24 FPS should be enough for every medium is false, and here's why:
The reason film projection can smoothly present video is because the blur on film caused by movement of the target on a slow-shutter camera. This blur actually helps because when displayed with 24 other frames in one second (all having the blur effect themselves) it looks rather fluid. Even digital movie cameras accomplish their video quality using the same trick.
Video cards however, do not have the luxury of using this trick for video games. To show the movement of an avatar, for example; every single measurable instant of movement must be rendered for each measurable instant. Those instants are misleadingly called "frames". Achieving higher framerates is actually critical for good gameplay because there are more instants in a given amount of time. That's why low fps seems to feel sluggish on some games because 15/20/25/etc. instants are certainly not enough to show fluid movement. I myself feel right at home right around 75 fps on any first person shooter or what not. This is because the human brain registers information from the brain at about 75 Htz (at least that's what I was taught).
So, next time you hear "24 fps is all you should need!", you can tell them why it's not.
Of all the Universal Constants, here's one I know: Nice guys finish last
I tried to RTFA, but I fainted mid-way during the first paragraph.
(They're all from the one paragraph introduction...)
psxndc
The emacs religion: to be saved, control excess.
The reason for getting the highest FPS possible in the quake line of games is physics. All(?) of them have enabled one to run faster and jump higher with FPS above certain limit making certain trick jumps easier and otherwise impossible jumps possible. I think in Q2 it was 90 FPS and Q3 there were various limits, one being 125 FPS and other being 300+ FPS. // ville
One thing I don't understand is why some people play FPSs with low monitor refresh rates. If your monitor is retracing at 75Hz, it doesn't matter that your graphics card can render 300fps, you're only going to see 75 of them.
I play Quake 3 at 800x600, so my monitor can refresh at 160Hz. With everything at minimum detail I get about 200fps average, so my real fps is a solid 160fps (except in very crowded areas).
This makes a very big difference, especially in 1v1 with railguns. Here every few milliseconds count, so anyone with a lower framerate is at a big disadvantage.
The average person needs at least 72 fps. Not 30. And that is because TV's work a little bit different than computer monitors.
-- Cheers!
The projector does open the shutter twice for each frame to reduce the sensation of flicker.
Mea navis aericumbens anguillis abundat
Not one instance of "their" or "you're" in the whole article.
The article is filled with obvious factual errors and is a badly-done apologetic for the obsessive and nonsensical quest for ludicrously high framerates.
His attempt to explain away the fact that 24-30 fps works fine for movies and television is an utter failure. Surrounding darkness is not why movies look smooth, and the feeling of continuity here has nothing to do with the afterimage effect. The refresh rate of televisions, resulting in "each frame being drawn twice", does not double the framerate of the television. If you had a 150 hz display sync'd to flicker each of the frames of a continuous 30fps video stream 5 times, you still have a 30 fps framerate, just as having a LCD, which leaves the image actually intact on the screen and thus is indiscernable, in showing a motionless picture, from a hypothetical infinite refresh rate CRT, doesn't affect your framerate either.
The most obvious factual errors are on the last page, where he deliberately tries to confuse readers into thinking the eye's capacity to discern between refresh rates has something to do with the eye's capacity to discern between framerates. The difference between having the *entire screen* flicker from white to black and then to white again and having relatively minor changes in scenery as with framerate is huge. Everybody can distinguish the headache-alleivating difference between 60hz CRT refresh and 75hz CRT refresh; not very many people can tell the difference between a 25 fps framerate and a 100 fps framerate.
TV and movies can get away with 24 to 30 FPS mainly because the CAMERA that took the actor's picture kept the shutter open for almost the entire 1/24th of a second, so moving objects are blurry. That hides the fact that the actor moved quite a bit from one frame to the next, since the area between point A and point B is filled in with the blur. And since we don't have to shoot a railgun at the actor, this blur isn't a problem.
Games can't get away with that frame rate because they render for a single instant in time, and there isn't any blur to fill in the gap. Computers render instants, and figuring out blur isn't something that is really easy to do. And even if there were some blur to make the graphics move more smoothly, we might not like it as much as we do in movies -- you don't shoot railguns at blurs, you shoot them at actual heads.
The point at which the "instants" blur together in our brains is hard to determine. He claims that 72 FPS is good enough since we don't see the monitor flicker at that rate, but that is faulty reasoning. 72 Hz (or whatever) makes the flicker go away because the phosphors are still glowing pretty brightly by the time the next frame comes around, not because 72 Hz is good enough to fool our eyes. That is why the TV looks fine at 60 Hz Interlaced, and the IBM CGA monitor could get away with 60 Hz Interlaced, but a modern SVGA monitor at 60 Hz Interlaced would drive you nuts -- the phosphors don't glow as long in a modern monitor. Nevertheless, he is still correct in saying that it doesn't do much good to get a higher FPS than your monitor refresh rate can display -- at least as far as jumpiness is concerned. (As an aside, we may see future games that blend together the 5 frames that were generated while waiting for the V Synch, thus creating the same blur that makes TV and movies smooth.)
However, for fast reaction games, jumpiness isn't the only problem. You also have to consider latency.
- Computer calculates and then records the position of items on the screen at a particular instant.
- Computer renders items to a frame. (Elapsed time: 1/FPS seconds.)
- Computer waits for V Sync (to avoid shearing) before changing to the newly rendered frame. (Average time is half of the monitor's refresh rate, so elapsed time is 1/FPS + 0.5/Hz seconds.)
- CRT or LCD displays frame. (Elapsed time is 1/FPS + 1.5/Hz seconds.)
This is the latency between when something happens (according to the computer) and when that event actually appears on the screen. Of course, the frame appears over the period of time 1/FPS + 0.5/Hz (when the top of the frame appears on the screen) through 1/FPS + 1.5/Hz (when the frame is completely drawn on the screen), but the complete image doesn't appear until the end. If FPS is larger than the monitor's refresh rate, you can reduce the average 0.5/Hz time waiting for refresh by rendering new frames until the monitor is ready to display one of them, making the latency 1.5/FPS+1/Hz instead of 1/FPS+1.5/Hz.Finally, he makes the good point that it isn't the average FPS that matters, even though it is the average that is always reported in the benchmarks. It is the minimum! It doesn't matter that the new "Fee Fie Fo Fum" adventure averages 200 FPS if it always slows to 4 FPS right when you are chopping down the beanstalk. The giant will still get you every time.
Time flies like an arrow. Fruit flies like a banana.
Test it yourself, if people are not told beforehand what the framerate is, 99% cannot distinguish whether a game is being displayed at 20 or 30 or 60 or 75 or whatever fps.
It's all hype and power of suggestion.
Take a 30 fps scene, tell someone it's running at 75, and they will tell you, yes, it looks m-u-c-h better.
--FourPak
The article and some of the comments here are all over the map. So to avoid redundancy, I'll point out a few common sense things and a few places where research since the 60s has already addressed these issues.
1. A fixed frame-rate is better than even high but variable frame-rate. A solid 30hz can actually be better than 30-120 fluctuating. A ton of research has gone into how to make the graphics pipeline effectively lock to a fixed rate and there's a good reason: variable frame-rates make people sick; fixed-framerates make things feel smooth and continuous. The article's point about motion blur seems an attempt to reconcile this point, albeit incorrectly. The key is smooth predictable motion. Note: this is harder than just locking to the vsync -- do it wrong and you randomly drop frames, which is exactly what you're trying to avoid.
2. No matter how high your instantaneous framerate, you will _never_ get more FPS than your monitor refresh rate, no matter what the little FPS number in the corner says. For me and my LCD, that's 60HZ. The rest is wasted energy. In fact, it's best if the fixed framerate is locked to the monitor refresh rate in some low multiple (1:1, 1:2, etc..) or it will effectively be a variable framerate (see: temporal aliasing, every nth frame seems to skip ahead or behind in time).
3. I can also tell you from looking at the source code to various demos that FPS is often measured by draw-time, not total time from frame-to-frame! If your game says it's getting 93fps but you don't see any horizontal tearing (partial updates racing the raster scan) on a 72hz monitor, the game is not measuring the total frame time. It is, in effect, lying to you.
4. I don't care what the peak framerate or even the average is. The only benchmark that matters is the _lowest_ framerate, because if that's too low, once you get sick, you'll stay sick for a while.
Personally, I can't stand games that optimize for empty rooms. Add too many characters or lots of action and it turnes into a real-life vomitorium. Graphics developers need to tune for the worst case, not the benchmarks. And the best case, due to locked framerates, will seem no better. Programmers can find some other way to feel macho.
5. There are many ways to reduce latency and increase the fidelity of physical simulations. For one thing, rendering can be made asnychronous from input and simulation. User motion inputs can also be added late in the pipeline (right before draw) with the proper architecture. Imagine how much better a physical simulation can be if we're not busy rendering frames no one will ever see? And given the variability of graphics and CPU performance on PCs, this seems to be critical to getting good gameplay across the spectrum of machines.
Off the top of my head, I don't know where he's getting this "displayed twice" business. The closest thing I could think of the to that is the technique of interlacing frames used for displaying images on a TV screen. But when a series of images are interlaced, they're definitely not being displayed "twice"...more like one half at a time.
Also, motion blur is not "added" in the visual cortex. I don't know if anyone has really proved where the effect comes from but I'd be willing to bet that it's a side-effect of the way in which the eye continuously senses photons as they come in. In fact, I think that if games today attempted to somehow calculate the possible appearance of the blur and display it, we'd end up with much more natural looking motion. Interestingly enough, the author claims that this would NOT be natural to an observer. I think the author has managed to misplace assumption of where the brain is taking over. As he falsely stated earlier that the brain adds the effect of motion blur, he has similarly failed to realize that the brains capabilities here. A series of images with pre-applied motion blur may be somewhat indecipherable if displayed individually. However, the human brain would make quick work of the series if displayed in sequence. Applying motion blur to an image series is a very good way of tricking the brain into thinking it's observing the movement of real-world objects. The games of today make no such attempts at all, leaving the brain to compensate on its own.
I'd actually be willing to bet that a game with properly applied motion blur running at a near-constant or steady framerate above 30 could beat out another running without motion blur and at 2, 3, or even 4 times the framerate.
-Zeecog
Ok, I'm just speculating, but I think I see some things people are missing here...
First, the bare minimum fps should be the rate at which flicker is no longer detected (according to the article its 72 fps). In reality, the decay rate and decay curve of the display device are the real factors here, but this will soon be irrelevant as you'll see.
If you have an object moving across the screen, with no motion blur (such as with 3d games) at a low fps, you see multiple separate instances of that object rather than a single smeared object. The distance between the separate instances of the object increases with increased speed of the object, and decreases with increasing fps. And the opposite goes for the number of separate instances of the object. So the issue is now about minimizing the distance between the separate ghost images, to the point that it is perceived as a smooth blur. I'm assuming that this would actually be less than the resolution of the eye itself (not that it has one exactly), but for arguments sake, lets say the fps have to allow for distances between ghost images less than one pixel equivalent of the human eye with a display device that takes up the viewer's full field of view. This means the final determining factor is the maximum possible speed of the IMAGE of moving objects ON THE VIEWERS RETINA (or the display to be more realistic). In an application per application basis, one could determine the maximum speed of any given object. For example, in Quake 3 one could assume that rockets are the fastest moving object in the game, and the fastest it moves across the display is when it passes perpendicular to your direction of view, and passes as close to the camera as possible. With these assumptions, and the other factors determined before, you should be able to determine an ideal minimum fps. Unfortunately, in more general applications, there is probably no limit to the possible speed of images passing across the viewer's field of view, so plugging it into the equation would result in the need for infinite fps.
FPS=s
where s is the max speed of a moving image on the display in "pixels per second". So an object that moves across 20 pixels in one second would require 20 frames to avoid skipping any pixels (of course this would need to be higher for sub-pixel antialiasing)
So, it depends on the application. OR, the answer is infinity.
OR, I'm missing something.
am I the only one bothered by the fact that the latest generation of graphics cards still can't output high framerates on new games such as UT2k3 and Doom III?? The Radeon 9800 Pro 256MB and the GeForce FX 5900 Ultra run these games fine. Yet if you take a 9700 Pro or a 5800 Ultra, the games get sub 100 FPS, even sub 60 in 1024x768! These cards were released after the games were developed! This is just wrong. I high end card should be able to output 100+FPS at 1600x1200 resolutions on the latest game that is available when the card is released. I am almost afraid to run Deus Ex 2 or Doom III on my GeForce FX 5200.
-illumina+us "I put on my robe and wizard hat..."
Absolutely. Looks like everyone's got bogged down in details about perception and the biology of the eye, and overlooked some of the more mundane points.
The games development algorithms mailing list has recently covered this topic in some depth. (Apologies, the archives don't seem to be working properly at the moment.)
The problem can lie in the collision detection working with sampled points along the player's trajectory during a jump, checking for collisions between those points. The lower the frame rate, the coarser the path, and the less accurate the collision response. Some games have limits after which they'll subdivide the path, giving a better approximation, but still an approximation. Higher and higher frame rates give even better approximations, so you're more likely to get a sample point at the peak of your jump, allowing you to successfully land on that ledge that is almost, but not entirely, out of reach.
I guess the complete separation of game physics and rendering would help put everyone on a level playing field, so to speak.