# [Platform Differences]

Why does (e.g.) Quake3 look that different between windows, mac os x, and linux platforms? Is there any way to make it look the same (or a lot closer than it is now) on two different platforms. I would appreciate it if an expert would give me a complete explanation. Thanks.

This may not be complete and I’m not necessarily an expert but I can tell you one thing: OpenGL is not a pixel-exact graphics library.

When an OpenGL game like Quake 3 gives a command to (for example) draw a triangle on the screen, the graphics card obviously has to turn some screen pixels on and leave others turned off.

How does the OpenGL card choose the set of pixels to be turned on to represent the mathematical lines composing a triangle?

Even for a relatively simple case of drawing only a white triangle outline on a black background, you have to be aware that a mathematical line (which is infinitely thin) can never be exactly represented by a chain of pixels (which have a measurable and visible thickness). To show this to yourself, get a piece of graph paper and draw a thin, diagonal line with a pencil and a ruler (representing our mathematical line). Then try to color in all of the graph squares (representing screen pixels) touching the thin line and see what a blocky result you end up with.

One card might turn on every pixel that touches the mathematical line. Another might turn on only those pixels that are to the left of the line and touching it. See where I’m going with this? (see also: http://en.wikipedia.org/wiki/Bresenham's_algorithm )

The OpenGL spec leaves these kind of low-level decisions to the graphics card vendor.

Now add in a million complex OpenGL features such as line or polygon antialiasing, color blending, transparency, etc. etc. etc., and it’s actually rather unlikely that one game image generated on one card will ever be exactly like the “same” image generated on another card. No typical game is ever going to draw one pixel at a time for every pixel on the screen, it merely specifies a bunch of polygon vertexes and lets the card figure out the per pixel rasterization details.

Even the same card, drawing the same picture over and over, is allowed to draw each frame slightly differently from one frame to the next if it wants.

The benefits to all this inexactness are mainly: higher performance and lower price. Allowing the card some leeway in the exactness of it’s graphics pipeline has alot of value to the designers of the card.

Hope this helps you out!

Thanks, but I’m sure it ain’t the hardware. The discussion is going on here:
http://www.gamedev.net/community/forums/topic.asp?topic_id=308254

It is either the hardware or the hardware drivers or the game settings. The first two are totally controlled by the hardware vendor.

The operating system does not noramlly take part in generating the any of OpenGL graphics, or in choosing any settings that would affect the generation of the graphics.

In quake 3 in particular, the quality level of (for example) the curved surfaces is a setting that is totally controlled by the game developer (Id Software a.k.a. John Carmack). John uses flat surfaces to approximate a curved surface, and the number of surfaces used is selectable with some quake setting. Possibly John puts some limit on that particular setting based on what operating system Q3 detects it is running on, but I doubt it. The OS is not a likely culprit here.

I don’t understand why you are so sure the hardware is not making any differences.

BSD, as you seem to have access to multiple OS, record a small static Q3 demo and post a screenshot of each, so that we can avoid speaking in the void.

other thing that can be different, is the overriden “quality settings” ie with display control panel for Windows, such as textures, aniso, FSAA, trilinear quality.

Originally posted by sparkster:
It is either the hardware or the hardware drivers or the game settings. The first two are totally controlled by the hardware vendor.

Thats what one would like to believe. One thing I hear from many people (for example) is that macs are better for graphics. I have never found any explaination for this, it is mysterious at this point, but I do know that games (esp. quake, since I have a lot of experience with it) look different rendered on macs (os x or 9, no matter what hardware).

I do know that games (esp. quake, since I have a lot of experience with it) look different rendered on macs