PDA

View Full Version : Howto animate Bitmap Font



OpenData
06-22-2009, 02:34 AM
Hi!

I am using FTGL to display Text via OpenGL. I tried all the FTGL rendering modes:

* Bitmaps
* Anti-aliased pixmaps
* Texture maps
* Outlines
* Polygon meshes
* Extruded polygon meshes

And noticed that Bitmaps have the lowest data volume (PC-RAM -> VGA-RAM). This is important because i use OpenGL over the network. It all works fine but now i need to animate the Bitmap-Text (Paint it on a cube and rotate the cube).

Do you have an idea?
Is it possible to 3D-Animate this Bitmap-Text? Is it possible to use another rendering mode and load the data in a compressed format to the VGA-RAM? Is it possible to antialias Bitmap Font in VGA-RAM? I also want to up-/downscale the scene. How can i achieve a good font quality at most scaling factors?

scratt
06-22-2009, 03:28 AM
When you say "animate text" what exactly do you mean?

Are you updating the text so that it's actual image changes, or do you simply mean have the text drawn on the cube and the cube spin etc. ?

Not sure what your actual network process is, but I'd still at least take a look at FreeType Fonts in OpenGL. That is reasonably fast and allows really nice smoothed fonts. It is also a support library for a lot of OpenGL Font Libraries, and off the top of my head it may work with FTGL.. But it's been a while, so I may be wrong on that last bit. I just checked and it's based on it...

http://gltt.sourceforge.net/20011027_000000.html

Most of your questions are answered on that site.

OpenData
06-22-2009, 04:18 AM
When you say "animate text" what exactly do you mean?

I simply mean to have the text drawn on the cube and the cube spin etc...

scratt
06-22-2009, 08:15 PM
Then in that case the library you have should be able to do that fine...

If you want it to be super fast what you need to do is pre-render the text to a texture and then simply map that onto the cube.. Obviously then all you need to do is send the text as an image and the texture coords to put that image onto the cube. But the amount of data you will send will be more than doing the following I suspect, and this gives you much more flexibility..

If you need to update the text content from time to time use font glyphs and a font texture atlas to redraw that texture. You can find a lot of examples of that around on the web.

My favorites (although they could do with some optimizations) are in the SDL libraries section..

http://sdlconsole.sourceforge.net/
http://oglconsole.sourceforge.net/

The text in those is mapped onto a screen size QUAD.
If you instead map them onto the QUAD which makes the side of a cube, you could even have scrolling text on the side of the cube..