Skip to main content
GameDev.net gamedev.net
🔒 Locked

Lesson 09 - Transparent color?

Started by Gorkamorka Jun 24, 2010 at 6:59 AM 2 replies 7.2k views
Original Post
Gorkamorka
Gorkamorka
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 );
lc_overlord
lc_overlord
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.
Gorkamorka
Gorkamorka
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.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.