Quick Reference

FeatureFunctionsExample
Geometry glBegin(geometryType)
glEnd()
glVertex3f(x, y, z)
glVertex3fv(v)
glBegin(GL_TRIANGLES)
glVertex3f(0.0, 0.0, 0.0)
glVertex3f(10.0, 0.0, -1.0)
glVertex3f(5.0, 7.0, -1.0)
glEnd()
Perspective projection gluPerspective(fov, aspect, near, far)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluPerspective(30.0, 1.0, 1.0, 100.0)
glMatrixMode(GL_MODELVIEW)
Depth buffering glEnable(GL_DEPTH_TEST)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH)
in main code:
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH)
in draw function:
glEnable(GL_DEPTH_TEST)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
Transformations glLoadIdentity()
glTranslatef(x, y, z)
glRotatef(angle, x, y, z)
glScalef(x, y, z)
glLoadIdentity()
glTranslatef(0.0, 0.0, -20.0)
glRotatef(30.0, 1.0, 0.0, 0.0)    # Rotate 30 degrees about X 
glRotatef(-45.0, 0.0, 1.0, 0.0)   # Rotate -45 degrees about Y 
Hierarchical transformations glPushMatrix()
glPopMatrix()
glPushMatrix()
glTranslatef(-3.0, 0.0, 0.0)
glutWireTorus(0.2, 1.0, 6, 12)
glPopMatrix()
glPushMatrix()
glTranslatef(0.0, 0.0, 2.0)
glScalef(0.25, 0.5, 0.5)
glutWireTorus(0.2, 1.0, 6, 12)
glPopMatrix()
Light source glEnable(lightSource)
glLightfv(lightSource, GL_DIFFUSE, color)
glLightfv(lightSource, GL_AMBIENT, color)
glLightfv(lightSource, GL_SPECULAR, color)
glLightfv(lightSource, GL_POSITION, position)
glLightf(lightSource, GL_CONSTANT_ATTENUATION, value)
glLightf(lightSource, GL_LINEAR_ATTENUATION, value)
glLightf(lightSource, GL_QUADRATIC_ATTENUATION, value)
glLightfv(lightSource, GL_SPOT_DIRECTION, direction)
glLightf(lightSource, GL_SPOT_CUTOFF, cutoffAngle)
glLightf(lightSource, GL_SPOT_EXPONENT, exponent)
white = [ 1, 1, 1, 1 ]
lightPos = [ -5, 4, 0, 1 ]
spotDirection = [ 0, -1, -1 ]

glEnable(GL_LIGHT0)
glLightfv(GL_LIGHT0, GL_DIFFUSE, white)
glLightfv(GL_LIGHT0, GL_POSITION, lightPos)
glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.0)
glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.1)
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, spotDirection)
glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 30)
glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 10.0)
Material glMaterialfv(GL_FRONT, GL_DIFFUSE, color)
glMaterialfv(GL_FRONT, GL_AMBIENT, color)
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color)
glMaterialfv(GL_FRONT, GL_SPECULAR, color)
glMaterialfv(GL_FRONT, GL_EMISSION, color)
glMaterialf(GL_FRONT, GL_SHININESS, shininess)
blue = [ .1, .4, 1, 1 ]
white = [ 1, 1, 1, 1 ]
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue)
glMaterialfv(GL_FRONT, GL_SPECULAR, white)
glMaterialf(GL_FRONT, GL_SHININESS, 120.0)
Surface normal glNormal3f(x, y, z)
glNormal3fv(vector)
glBegin(GL_TRIANGLES)
glNormal3f(-0.707, 0.0, 0.707)
glVertex3f(-9.0, 1.0, -7.0)
glVertex3f(-3.0, 1.0, -1.0)
glVertex3f(-3.0, 7.0, -1.0)
glEnd()
Define a texture glGenTextures(1)
glBindTexture(GL_TEXTURE_2D, textureID)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, mode)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, mode)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mode)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mode)
glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, width, height, 0,
         format, GL_UNSIGNED_BYTE, textureImage)
gluBuild2DMipmaps(GL_TEXTURE_2D, internalFormat, width, height,
         format, GL_UNSIGNED_BYTE, textureImage)
textureID1 = glGenTextures(1)
glBindTexture(GL_TEXTURE_2D, textureID1)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, xdim, ydim,
                0, GL_RGBA, GL_UNSIGNED_BYTE, imagedata)
Apply a texture glEnable(GL_TEXTURE_2D)
glBindTexture(GL_TEXTURE_2D, textureID)
glTexCoord2f(s, t)
glEnable(GL_TEXTURE_2D)
glBindTexture(GL_TEXTURE_2D, textureID1)
glBegin(GL_QUADS)
glTexCoord2f(0.0, 0.0)
glVertex3f(-2.0, -1.0, 0.0)
glTexCoord2f(1.0, 0.0)
glVertex3f(-0.1, -1.0, 0.0)
glTexCoord2f(1.0, 1.0)
glVertex3f(-0.1, 1.0, 0.0)
glTexCoord2f(0.0, 1.0)
glVertex3f(-2.0, 1.0, 0.0)
glEnd()
Fog glEnable(GL_FOG)
glFogi(GL_FOG_MODE, mode)
glFogfv(GL_FOG_COLOR, color)
glFogf(GL_FOG_START, distance)
glFogf(GL_FOG_END, distance)
glFogf(GL_FOG_DENSITY, exponent)
sky = [ 0.5, 0.8, 1.0, 0.0 ]
glEnable(GL_FOG)
glFogi(GL_FOG_MODE, GL_LINEAR)
glFogfv(GL_FOG_COLOR, sky)
glFogf(GL_FOG_START, 5.0)
glFogf(GL_FOG_END, 40.0)
Blending glEnable(GL_BLEND)
glBlendFunc(sourceFactor, destinationFactor)
glColor4f(r, g, b, alpha)
glColor4fv(color)
   (or include alpha in material or texture)
translucentRed = [ 1, 0, 0, 0.5 ]
glEnable(GL_BLEND)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
glMaterialfv(GL_FRONT, GL_DIFFUSE, translucentRed)
glutSolidCube(2.0)
Alpha-test transparency glEnable(GL_ALPHA_TEST)
glAlphaFunc(function, referenceValue)
glEnable(GL_ALPHA_TEST)
glAlphaFunc(GL_GREATER, 0.25)

next