Advertisement

Lesson 09 - Transparent color?

Started by June 24, 2010 06:59 AM
2 comments, last by lc_overlord 14 years, 4 months ago
I'm looking at lesson 9 (Moving Bitmaps In 3D Space, http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=09) and I can't figure out what part selects the color that is made transparent.

Basically, what the example program does is load a bmp-file and remove all the black color (#000000) in it, replacing it with transparent color. What I want to do is to specify another color to be replaced, for example #FFFF00.

Quote: /* Load in the texture */
if ( !LoadGLTextures( ) )
return FALSE;

/* Enable Texture Mapping */
glEnable( GL_TEXTURE_2D );

/* Enable smooth shading */
glShadeModel( GL_SMOOTH );

/* Set the background black */
glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );

/* Depth buffer setup */
glClearDepth( 1.0f );

/* Really Nice Perspective Calculations */
glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );

/* Set The Blending Function For Translucency */
glBlendFunc( GL_SRC_ALPHA, GL_ONE );

/* Enable Blending */
glEnable( GL_BLEND );
it's the last two commands, they make it so that anything that is drawn gets added to the screen instead of replacing whats on the screen, thus giving the appearance of transparency, but it's really not.

It's harder to take a specific color and make it transparent.
But what you can do is to have a specific alpha channel that takes care of the transparencies in a much better way.
More about that is in lessons 8, 24, 32 and 33.
Advertisement
Yep, the three main solutions seem to be using black backgrounds or painting your own alpha layer onto TGA's or looping through the texture pixel by pixel.

I found this example app, http://www.codehead.co.uk/glsandbox.html , which helped out a lot.
well there is a fourth, but it involves using shaders to set the alpha or just discard the pixel.

This topic is closed to new replies.

Advertisement