
OpenGL implementation guide 1–11
overview of OpenGL
GLubyte purpleRGBA[]= {255.0, 0.0, 255.0, 255.0};
GLubyte cyanRGBA[]= {0.0, 255.0, 255.0, 255.0};
GLubyte greyRGBA[] = {125.0, 125.0, 125.0, 255.0};
main(int argc, char *argv[]) {
/* Open window for displaying.Put your favorite code here to open
a window and perform perspective setup */
glEnable(GL_TEXTURE_3D_EXT);
checkerPattern(TEXTURE_WIDTH, TEXTURE_HEIGHT,
blueRGBA, whiteRGBA, &texture1[0][0][0], 4);
checkerPattern(TEXTURE_WIDTH, TEXTURE_HEIGHT,
redRGBA, yellowRGBA, &texture2[0][0][0], 4);
checkerPattern(TEXTURE_WIDTH, TEXTURE_HEIGHT,
greenRGBA, blackRGBA, &texture3[0][0][0], 4);
checkerPattern(TEXTURE_WIDTH, TEXTURE_HEIGHT,
purpleRGBA, cyanRGBA, &texture4[0][0][0], 4);
/* create a 3D texture, textureConcat, which has a different
checker pattern at each depth */
memcpy(&textureConcat[0][0][0], texture1, sizeof(texture1));
memcpy(&textureConcat[1][0][0], texture2, sizeof(texture2));
memcpy(&textureConcat[2][0][0], texture3, sizeof(texture3));
memcpy(&textureConcat[3][0][0], texture4, sizeof(texture4));
glTexParameterf(GL_TEXTURE_3D_EXT, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameterf(GL_TEXTURE_3D_EXT, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexParameterf(GL_TEXTURE_3D_EXT, GL_TEXTURE_WRAP_R_EXT,
GL_CLAMP);
glTexParameterf(GL_TEXTURE_3D_EXT, GL_TEXTURE_MAG_FILTER,
GL_NEAREST);
glTexParameterf(GL_TEXTURE_3D_EXT, GL_TEXTURE_MIN_FILTER,
GL_NEAREST);
glTexImage3DEXT(GL_TEXTURE_3D_EXT, 0, GL_RGBA, TEXTURE_WIDTH,
TEXTURE_HEIGHT, TEXTURE_DEPTH, 0, GL_RGBA, GL_UNSIGNED_BYTE,
&textureConcat);
/* Fill a quad with depth of r = 0.125, passed into glTexCoord
for every vertex. */ Add your quad code here
/* Fill a quad with depth of r = 0.375, passed into glTexCoord
for every vertex. */ Add your quad code here
/* Fill a quad with depth of r = 0.625, passed into glTexCoord
for every vertex. */ Add your quad code here
/* Fill a quad with depth of r = 0.875, passed into glTexCoord
for every vertex. */ Add your quad code here
/* Now get a slice across the quad. Here’s some quad code for a
sample. Make sure you have appropriate viewing perspectives. */
glBegin(GL_QUADS);
glNormal3f(0., 0., 1.);
glTexCoord3f(0.0, 0.0, 0.0);
glVertex3f(0.5, 0.5, 0.);
glNormal3f(0., 0., 1.);
glTexCoord3f(0.0, 1.0, 0.0);