30 July 2000
Forward: I
did not realize it when I first wrote this article, but it
turns out this subject matter is a bit controversial. In fact,
I had one company respond by saying the following
Section
1 - The Basics
In the first
part of this series, we took a look at What does 'Optimal' Refresh Rate
really mean? While that discussion focused on the 2D side
of things, refresh rate also plays an important part in the
3D world...in the form of VSYNC. But what is VSYNC?
Well before
we can answer that, a little discussion of how 3D works is
required. In order to get a smoother transition between frames
in 3D games, the video card puts the contents of the upcoming
frame into its frame buffer. [The frame buffer is part of
the local memory that resides on the video card itself] It
then moves the contents of the frame buffer to the screen.
When this is complete, the frame buffer gets the next frame.
This process repeats its self over and over.
Now, what is
VSYNC? Well, VSYNC is basically the synchronizing of buffer
swaps with your monitor's refresh rate. With VSYNC enabled,
frame rates will not exceed the monitor's current refresh
rate for that particular resolution. For example, if your
monitor is using a refresh rate of 85Hz at 800x600, with VSYNC
enabled, you will theoretically never exceed 85fps. So the
refresh rate creates an artificial barrier that limits the
frame rate.
So what happens
if you are playing on an older monitor that only supports
a 60Hz refresh rate. Will you have to live with a maximum
of 60fps (assuming that your system can generate more fps)?
Not necessarily. Newer video cards give you the option of
disabling VSYNC. What happens is that this allows the buffer
swapping to occur without synchronizing with the monitor's
refresh rate. If it really was the refresh rate limiting you,
disabling VSYNC may allow you to obtain frame rates in excess
of 60fps. This, unfortunately, can also cause what are called
'visual anomalies': image tearing and flashing polygons. Some
games run fine with VSYNC enabled, while other games crumble
when VSYNC is disabled.
If you look
in Display Properties, you may see an option to disable VSYNC
in OpenGL by not Direct3D. Why is this? Well, in order to
receive Microsoft's WHQL certification, this option cannot
be available. Microsoft does not want Direct3D games to be
played without VSYNC.
In the next
section, the difference between Direct3D and OpenGL is explored
from a developers viewpoint.