Bitmap Font Creator improvement idea

Started by
3 comments, last by WitchLord 10 years, 5 months ago

Hello,

I've noticed that with a char height of 24 px the Asian glyphs are sometimes hard to identify, while the normal letters are way too big.

Maybe another option would be nice: "adjust size to visual detail" - though that would need some mathematical calculations based on the pixels.

Another solution might be a widget for the unicode blocks, where you define a scaling value (e.g. the chinese symbols with factor = 2.0 -> 200%).

So, next to the unicode blocks there is already this checkbox where you decide whether to include this block. Next to it could be a number field with default value of 1.0 (100%) and the user would be able to change that number.

Both solutions would take the Size (px) (Line Height) as a suggestion for the biggest glyphs in the output image:

32 px Size means: chinese symbols with 32 px (which is 200%), and normal letters with 16 px (which is 100%).

Your tool is very cool! smile.png

Advertisement

Here is an example of what I did with Bitmap Font Creator in conjunction with GIMP - with just some clicks here and there:

http://www.lostplanets.de/pics/fonttest11_outline_with_alpha_option_inverted_with_gimp.png (9.4 MB, 4096x4096)

http://www.lostplanets.de/pics/fonttest11_outline_with_alpha_option_inverted_with_gimp_grey.png (7.1 MB grey version)

So your tool is really useful, the problem is the fonts. None I've seen so far supports all Asian glyphs or full unicode.

This font gives around 20,000 glyphs of the > 100,000 glyphs that unicode comprises. A good start, but not perfect.

Maybe I will need to use a mixture of several fonts -

another idea for improvement: Make mixture of several fonts possible via Bitmap Font Creator! :-)

The TrueType font format is limited to a maximum of 65536 glyphs (2^16), so no single TrueType font will be able to cover all possible unicode characters that have more than a million defined characters.

The suggestion to support generating bitmap fonts from multiple input TrueType fonts has been made before and is on my to-do list. I have no idea when I'll find the time to implement this though.

I'll consider the suggestion to allow the user to scale individual glyphs differently. Though I have a feeling that would be more easy to solve by using the other improvement. When the tool supports using multiple fonts, then you could just use the same font at different sizes to generate the different glyphs.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

Yes, you're right, but I guess it would be easier to implement the idea with the factor number fields into the GUI and config files.

Another idea might be: Create a Font-Merge-Tool that iterates over a collection of .fnt files and their according image files.

I imagine that to be quite easy to achieve, I could even try to do it on my own in my spare time.

The whole topic is very complex.

I just stumbled into font wonderland and wanted it all. But there are many things to consider (things like licensing).

I guess it will stay a dream of me, to support the full unicode in 3d software with only creative commons fonts.

The goal of supporting all living languages is more in reach, but Asian languages give me headaches.

Maybe I will need to make even further compromises like "All non-asian languages and ASCII signs".

Ha, I actually just had the same idea of creating a font-merge-tool. It would be a rather simple way to solve the multi-truetype fonts into single-bitmap font. Should you decide to implement this on your own I'll gladly link to it or even host it on my site if you wish. :)

Fonts is a really complex area indeed. Most latin languages are quite simple to support. Even the chinese-japanese-korean family of languages is technically quite easy to support as the rules for rendering the text are easy even though the amount of glyphs is huge.

The complexity really shows when you come to those languages that have complex rules for writing text. For example, some languages require the application to use different glyphs for the same character in different situations. Others may require placing subsequent characters in a text not side-by-side, but over or under the previous character.

I suggest you read articles on Microsoft's Uniscribe API and other existing text rendering APIs, even if you don't intend to use them. At least it will give you an idea of what you're up against if you plan to really go ahead with the idea of supporting all living languages.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

This topic is closed to new replies.

Advertisement