Or you can simply use alpha channels. Where you would normally give opengl an GL_RGB data, you can also give 4 bytes per pixel, GL_RGBA. This allows using of translucent png textures too. There you could give texture loading function a colorkey.