Jump to content

  • Log In with Google      Sign In   
  • Create Account

paulhankin

Member Since 08 Oct 2011
Offline Last Active Oct 08 2011 08:56 AM

Topics I've Started

Bug in the freetype openGL tutorial

08 October 2011 - 07:31 AM

I've just looked at the NeHe freetype tutorial. http://nehe.gamedev....n_opengl/24001/

It's a great tutorial, and I managed to get freetype fonts in my opengl game in no time at all :)

There's a small, but significant problem with the code though! The textures are created as luminance-alpha textures, which is good, but the mistake is that both the luminance _and_ the alpha are set to the value from the glyph bitmap.

This basically produces an image with premultiplied alpha, yet the alpha gets applied once more during rendering -- causing the edges of glyphs to become much more jaggy.
Simply changing the bitmap creation code from:

for(int j = 0; j <height ; j++) {
  for(int i = 0; i < width; i++) {
    expanded_data[2 * (i + j * width)] = expanded_data[2 * (i + j * width) + 1] = 
        (i >= bitmap.width || j >= bitmap.rows) ? 0 : bitmap.buffer[i + bitmap.width * j];
  }
}

to:
for(int j = 0; j <height ; j++) {
  for(int i = 0; i < width; i++) {
    expanded_data[2 * (i + j * width)] = 255;
    expanded_data[2 * (i + j * width) + 1] = 
        (i >= bitmap.width || j >= bitmap.rows) ? 0 : bitmap.buffer[i + bitmap.width * j];
  }
}
produces a softer, less jaggy image.

PARTNERS