Ferramenta para criar uma fonte de bitmap a partir de uma fonte de tipo verdadeiro [fechado]


26

Qual ferramenta você usa para converter fontes ttf em fontes de bitmap?

A seguir, é apresentada uma lista dos recursos que estou procurando. Eu ficaria feliz com qualquer ferramenta, mas uma que tivesse esses recursos seria melhor.

  • produz atlas de textura power-of-2
  • arquivo de configuração parsible (para que eu não precise usar a biblioteca de renderização)
  • informações de kerning de saída
  • plataforma cruzada
  • uma biblioteca de renderização seria ótima se me permitir fazer as chamadas reais do OpenGL.

Então, qual ferramenta você usou? Você ficou feliz com isso?


Mencionei multiplataforma enquanto programa em uma máquina Linux. Eu faço o Windows7 de inicialização dupla para poder jogar, mas geralmente não desenvolvo lá.
Deft_code

Respostas:


19

Font Builder

O Font Builder faz quase tudo o que eu preciso. O Font Studio e o BMFont da Angel Code e executam tarefas semelhantes. Aqui estão alguns dos recursos do Font Builders.

  • Um aplicativo QT e, portanto, funciona igualmente bem em todas as plataformas.
  • Código aberto para estender facilmente o aplicativo, se necessário
  • Projetado para permitir exportadores personalizados de imagem e descrição (layout), facilitando ainda mais a extensão
  • Carrega fontes do sistema de arquivos em vez do registro do Windows. Isso facilita muito a geração de fontes de textura a partir dos meus próprios TTFs.
  • O Auto dimensiona a imagem final para que eu não precise adivinhar (como no FontStudio). Além disso, essas texturas podem ser restritas a potência de 2 tamanhos.
  • Os pares Kerning são suportados, para que as informações possam ser exportadas se o seu TTF os usar.

No entanto, nem tudo é perfeito. Os plug-ins de layout padrão são péssimos. A ferramenta de layout Caixa apenas preenche a textura do canto superior esquerdo para o canto inferior direito usando os caracteres em ordem alfabética. Não é muito eficiente. Eu mudei para classificar os caracteres pela altura primeiro e melhorei rapidamente sua eficiência (uma alteração de 2 linhas).


BmFont faz o trabalho, tinha boas opções e eu posso usar textura mais de 128x128 tamanho, Thanks A única coisa que precisava era certo ajuste de exportação como png textura e tipo de fonte de 32 bits
Diljeet

10

O Google mostrou algumas dessas bestas. Isso pode estar próximo do que você está procurando
http://www.angelcode.com/products/bmfont/

Você menciona plataformas cruzadas, mas você quer dizer a ferramenta ou a saída? (o que seria uma plataforma cruzada, talvez fora do endianness)


Ótima ferramenta, mas só gera bitmaps a partir das fontes do sistema. Eu tenho um arquivo TTF específico que gostaria de usar. Além disso, não gosta muito de vinho.
Deft_code 9/09/10

8
Não foi possível adicionar o TTF como fonte do sistema?
Kaj

4

Tente FontStudio: http://www.ogre3d.org/forums/viewtopic.php?f=11&t=47802

É feito especialmente para criar fontes de bitmap para jogos.

Publico um link no fórum Ogre3D, porque ele não possui uma casa própria atualmente.

Encontre um link para a versão mais recente na última postagem desse tópico (página 2).


Ótima ferramenta, mas só gera bitmaps a partir das fontes do sistema. Eu tenho um arquivo TTF específico que gostaria de usar.
Deft_code 8/09/10

11
Ei, eu sou o criador do Font Studio, coloquei a fonte do Font Studio no bitbucket. bitbucket.org/michael_pote/font-studio
Mikepote


2

Existem muitas ferramentas complicadas e ricas em recursos por aí, mas minha ferramenta favorita para criar fontes de bitmap é o Bitmap Font Generator (CBFG) da Codehead . É uma ferramenta simples que faz uma coisa muito bem. Está claramente documentado com dicas de implementação.

Como a maioria dos criadores de fontes de bitmap, é claro que é independente da API gráfica, porque simplesmente exporta uma imagem (e uma estrutura de dados de fácil leitura). No entanto, a implementação de seu próprio sistema de renderização de texto, no OpenGL ou no Direct3D, não é muito difícil - renderize um quad para cada letra e aplique a textura da fonte de bitmap com as coordenadas apropriadas.

Eu espero que isso ajude!

Nota: Este é apenas um aplicativo Win32, mas eu ainda o recomendo!


2

Uma ótima ferramenta para o Mac é o Glyph Designer e se tornou a ferramenta preferida entre os usuários do Cocos2D. Possui muitos recursos e foi atualizado recentemente para incluir suporte à linha de comando!


9
Geralmente, é considerado ruim aqui não divulgar claramente sua afiliação com os produtos que você está recomendando.
21413 Josh

1

A última vez que eu estava procurando por isso (para um jogo para iPhone), tentei várias opções, mas não consegui encontrar uma que fizesse tudo o que eu queria. Eu precisava renderizar uma única textura usando caracteres muito pequenos de uma fonte TTF comercial. Eu precisava ser capaz de especificar intervalos de caracteres, para que só contivessem os caracteres que eu precisava. Eu queria que ele empacotasse os glifos o mais firmemente possível. Eu precisava de coordenadas de textura em tempo de execução. Eu não me importava com o kerning "real", mas precisava de medições de glifos em tempo de execução, para que fossem espaçadas sensivelmente. Então, escrevi um pequeno aplicativo do Windows que renderizou todos os caracteres e salvou os espaçamentos ABC (conforme relatado pelo Windows) junto com as coordenadas de textura.

BTW, se você quiser renderizar um texto muito pequeno (com menos de 16 pixels de altura) no XP ou Vista, encontrará falhas no anti-aliasing do Windows. Uma solução fácil para mim foi usar http://drwatson.nobody.jp/gdi++/index-en.html para obter uma superamostragem transparente. Se eu estivesse começando de novo, provavelmente adotaria a mesma abordagem, mas observaria o FreeType2 em vez da renderização de texto nativo.

Se o seu texto não for atualizado com frequência, você poderá usar a renderização de texto da plataforma (ou talvez o FreeType) para renderizar pedaços inteiros para a textura conforme necessário em tempo de execução. Então você só precisa renderizar um único quad para cada string, mas a alocação de textura fica mais complicada. No lado positivo, você obtém renderização e layout de texto sem falhas gratuitamente nesses difíceis idiomas asiáticos, juntamente com o seu código GL significativamente mais rápido. A renderização de muitos caracteres individuais é cara, mesmo com três faixas degeneradas ou outros enfeites.


1

No Mac, você só pode usar o Hiero ( http://slick.cokeandcode.com/demos/hiero.jnlp ) até onde eu sei. Não é tão poderoso quanto o descrito acima, mas com um pouco de mágica do Photoshop é suficiente.


Só posso desencorajar o Hiero. Havia sempre alguns pixels de distância quando eu o usava. Testado com várias fontes. Mas acho que não há outra solução OSX.
martinpi 16/09/10

0

A palavra-chave que você está procurando é um "rasterizador". O XNA possui um embutido. Uma rápida pesquisa no Google traz o FreeType . Não tenho certeza do que mais há por aí.


2
O FreeType é mais uma "biblioteca de rasterização de fontes". Não é exatamente um aplicativo que cria texturas (com potência de 2) a partir de fontes. O FreeType seria uma boa opção se você decidisse escrever essa ferramenta por conta própria.
bummzack

0

Se você deseja uma ferramenta interativa, dê uma olhada no FontForge , um editor de fontes completo que suporta uma variedade de ferramentas para converter fontes TTF em formatos de bitmap. Ele suporta vários tipos de script, portanto, você também deve integrá-lo a um pipeline.


11
O AFAIK FontForge pode criar fontes de bitmap, mas elas são fundamentalmente diferentes daquilo que o OP precisa. Uma fonte de bitmap é como um arquivo de fonte, mas contém bitmaps (de preferência em vários tamanhos) para cada caractere. Ele precisa que uma fonte seja renderizada em uma textura, para que o resultado não seja uma fonte de bitmap, mas uma imagem.
bummzack


0

um novo gerador de fontes de bitmap foi lançado para o OS X: bmGlyph (http://www.bmglyph.com). disponível apenas na mac app store. produz atlas e bitmaps de fontes (hd / sd) com muitos recursos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.