Example 6-2 : Sharpen Texture Example
/* tree texture: high alpha in foreground, zero alpha in background */ #define B 0x00000000 #define F 0xA0A0A0ff unsigned int tex[] = { B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B, B,B,B,B,B,B,B,F,F,B,B,B,B,B,B,B, B,B,B,B,B,B,B,F,F,B,B,B,B,B,B,B, B,B,B,B,B,B,F,F,F,F,B,B,B,B,B,B, B,B,B,B,B,B,F,F,F,F,B,B,B,B,B,B, B,B,B,B,B,F,F,F,F,F,F,B,B,B,B,B, B,B,B,B,B,F,F,F,F,F,F,B,B,B,B,B, B,B,B,B,F,F,F,F,F,F,F,F,B,B,B,B, B,B,B,B,F,F,F,F,F,F,F,F,B,B,B,B, B,B,B,F,F,F,F,F,F,F,F,F,F,B,B,B, B,B,B,F,F,F,F,F,F,F,F,F,F,B,B,B, B,B,F,F,F,F,F,F,F,F,F,F,F,F,B,B, B,B,F,F,F,F,F,F,F,F,F,F,F,F,B,B, B,B,B,B,B,B,F,F,F,F,B,B,B,B,B,B, B,B,B,B,B,B,F,F,F,F,B,B,B,B,B,B, B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B, }; static void init(void) { glEnable(GL_TEXTURE_2D); glMatrixMode(GL_PROJECTION); gluPerspective(60.0, 1.0, 1.0, 10.0 ); glMatrixMode(GL_MODELVIEW); glTranslatef(0.,0.,-2.5); glColor4f(0,0,0,1); glClearColor(0.0, 0.0, 0.0, 1.0); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); /* sharpening just alpha keeps the tree outline crisp */ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_SHARPEN_ALPHA_SGIS); /* generate mipmaps; levels 0 and 1 are needed for sharpening */ gluBuild2DMipmaps(GL_TEXTURE_2D, 4, 16, 16, GL_RGBA, GL_UNSIGNED_BYTE, tex); } static void draw_scene(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLE_STRIP); glTexCoord2f( 0, 1); glVertex2f(-1,-1); glTexCoord2f( 0, 0); glVertex2f(-1, 1); glTexCoord2f( 1, 1); glVertex2f( 1,-1); glTexCoord2f( 1, 0); glVertex2f( 1, 1); glEnd(); glFlush(); }