Which Bitmap Font Creator?

Community Forums/Developer Stations/Which Bitmap Font Creator?

Gabriel(Posted 2006) [#1]
All I want is a very simple bitmap font creator which does the following :

1) Puts Truetype fonts of any size onto a texture.
2) Uses Windows Font-Smoothing to avoid aliased edges.
3) Exports the texture or image coordinates of the top left and bottom right corners ( or data from which these can be derived )

I do not want any fancy stuff. No shadows, no outlines, no trails, no glows, no gradients, none of it. If it does that optionally, fine, but I won't be using it.

So far I've found Big10P's juicy fonts, but it doesn't appear to use Windows Font Smoothing. I've found Bitmap Font Builder, but that doesn't export proper coordinates ( just widths, which is bloody pointless if you don't know the exact pixel to start from ) and the one that came with Sprite Candy, which either blurs everything to buggery or leaves sharp aliased edges.

There must be something which does this, surely? I'd hate to have to use BFB and then measure the coordinates manually.


Gabriel(Posted 2006) [#2]
Hah, always the way, isn't it? I think I've found one, alebit it uses supersampling for smoothing instead of ClearType.

This one :

http://www.angelcode.com/products/bmfont/

Will check back when I've used it for a bit more, but it appears to do just what I need and has XML output, padding options, and more. Perfect ( in theory. )


taumel(Posted 2006) [#3]
May i ask why you wanna do this outside a 3d engine? Isn't TV3D able to do this?


big10p(Posted 2006) [#4]
Don't use Juicy Fonts - it suxxorz! :P


Gabriel(Posted 2006) [#5]
Er.. I don't know of many ( any? ) 3d engines which have a bitmap font builder built in? Yeah, they'll render text, but they either use the GDI stuff ( horribly slow ) or they make their textures on the fly, and that requires distributing the TTF font, which I don't want to do. Besides, in my experience, TTF fonts can't be trusted 100%. You'll always get the odd character which overlaps when it's made into a bitmap font, due to filtering or whatever, even if it's only at certain odd pixel sizes ( which just happens to include the exact pixel size I need ) so you need a tool which gives you tweakables.

And no, the BMFont program I listed above on AngelCode won't suffice. It's another tool which is close to perfect and then makes itself completely worthless by doing something unbelievably stupid ( in this case, having each character with a different height, meaning that your text routines need to render at different heights for each character which is ridiculous ) and so I go back to my original question. I'm still looking for a font creator which does those three things.


taumel(Posted 2006) [#6]
Hmmm i'm used to not thinking about this a lot as sw3d and unity both render the textures for you. So one way or the other a) on the fly, b) or during import or c) when building the project. Including isn't a problem either as you can distribute it encoded if you want.

For just rendering texts on textures i have never encountered problems. You only could get some if you build out meshes for extrusion afterwards or so. There you'll have to do some finetuning with code if you need it...


Gabriel(Posted 2006) [#7]
Don't use Juicy Fonts - it suxxorz! :P

It's great. It just doesn't - as far as I can see - have any options for antialiasing the font, and I can't have jagged edges.

For just rendering texts on textures i have never encountered problems. You only could get some if you build out meshes for extrusion afterwards or so. There you'll have to do some finetuning with code if you need it...


I suspect you're using aliased text. That won't be a problem. When you start antialiasing a font, there's no telling how many extra pixels it might move onto. As I've said, an aliased font is no good for me here. If it was I would just use the creator which comes with Sprite Candy. Heck, I'd probably just let TrueVision create them for me.


taumel(Posted 2006) [#8]
No i'm talking about TTF/AA ones...


Gabriel(Posted 2006) [#9]
Then you've been very fortunate, because antialiasing is not predictable.

Nevertheless, I'm not fortunate, and I'm still looking for a nice simple tool to do what I want. I've found another bunch of tools, none of which can do these three simple things. MudgeFont can't do antialiasing, PopCap's font tool can't export to a proper power of two image.


taumel(Posted 2006) [#10]
Yep never had problems with both serious and wild ones (if not going the mesh route)... Can't you use another one or change the font where it hurts?


GfK(Posted 2006) [#11]
FONText does exactly what you need. I think there's Blitzmax code available for it now, too, although I wrote my own in about half a day.

[edit] Says site is unavailable just now.... Beaker???


big10p(Posted 2006) [#12]
Gabriel: Yeah, I'm afraid Juicy Fonts isn't suitable for this kind of job - it's really for pure 2D apps only. As such, there's no edge anti-aliasing because for that to be useful you need alpha blending, which 2D doesn't support. All font images are exported in 24-bit - no alpha. It also doesn't export pow2 font images - they can basically be any size.


Gabriel(Posted 2006) [#13]
Taumel: I'd prefer not to, but I may have to.

GFK: Yep, I noticed that PlayerFactory was down yesterday. I did buy FonText a long time ago, and I may well still have it somewhere. I think it was only valid for six months of updates or something though, so if the version I have ( even assuming I can find it ) is missing something I need I think I'll have to buy it again when the site comes back.

I may have found a solution in the meantime. I'm using a program called FontAnalyze from Phelios which finds all the characters on a font texture and makes the definition file, albeit with some manual editing. I'm currently writing a convertor to completely automate the manual editing, and it's close to working. Fingers crossed on that, but if not I'll be going through my backup cd's to find FonText.


Beaker(Posted 2006) [#14]
Sorry about the website being down. Moved house and am consolidating my websites/space.

Hopefully be back soon.


Leto(Posted 2006) [#15]
Any news on your site coming back up, Beaker? :)


jhocking(Posted 2006) [#16]
I think there's Blitzmax code available for it now, too, although I wrote my own in about half a day.

I hadn't even thought of this as a solution. I've been having some problems with the included code, and somehow it never even occurred to me to just write my own code for displaying the font.

gabriel, it was years ago that I bought FONText and I still use it often. Don't worry about missing a feature you need, go through your backups and find it already.


D4NM4N(Posted 2006) [#17]
if u have got a linux box kicking about, try font forge (free!). As for rendering to texture you could write a simple bb app to render letters into a grid and copying them to a texture, sprite or saving the imagebuffer.