# The Omniverous Biped's FAQ's

by Steve Baker

## Introduction.

I have always been impressed by the information in The Carniverous Hexapod's FAQ's but they tend to be a bit terse - and many beginners need more explanation and perhaps a more visual insight to the math behind OpenGL programs.

Anyway, since I'm an omnivore with but two legs, I'll just present these FAQ's for your enlightenment.

• Keyboards Are Evil: An explanation of the problems with detecting multiple simultaneous key presses.

• OpenGL Lighting: A clarification of the oddities of Lighting (and especially glColorMaterial) in OpenGL.

• Learn to Love your Z Buffer: An explanation of how Z buffer precision is affected by the position of the near clip plane.

• Matrices can be your friends: A simple explanation of how matrices work that should make sense to the 'math-impaired'.

• Eulers are Evil: Most people soon discover that rotations around three axes don't work 'intuitively'. This document explains why that is and offers some suggestions for how you take control of this situation.

• JPEG's are Evil too: The JPEG image format is great for photo's and such that are being displayed or printed at high resoluion. There are hopeless for texture mapping though. This document explains why.

• How to Tile Textures without seams: When you chop a large texture up into little ones, you tend to get seams between them when you glue them back together in the 3D scene. Here is an explanation of the problem and what to do about it.

• How to do Efficient View Frustum Culling: Culling your scene to the view frustum is generally one of the most important ways to improve the graphical throughput of an OpenGL program. Here is ONE way to go about doing that.

• Help Stamp out Projection Abuse: It seems logical in OpenGL to put the 'camera' position into the GL_PROJECTION matrix. That's a really BAD thing to do - but the reasons are subtle - and your program may appear to be working even though you are doing this stuff all wrong. This document explains why that is and what to do about it.

• A Teapot? Why does GLUT have a routine to render a teapot? It's a long story - and a piece of history that you should know about if you are going to be a graphics programmer.

• Drawing Text In OpenGL This is a subtle problem - and it's all to easy to fall into the trap of drawing text very inefficiently.

• The ten (or is it eleven) things that can potentially go wrong while smooth-shading a polygon.

• Alpha-blending and the Z-buffer

• Don't Use MUI because it's obsolete.

• Will CPU's ever get fast enough so we won't need graphics accelleration anymore? Short Answer: No.
Enjoy!