September 28, 2022

New Font and Text feature

picture about fonts in evergine

In this release, Evergine includes support for fonts and texts without any external libraries. In the past, you needed to use libraries such as NoesisGUI or ImGui to draw text in an Evergine project, this is not necessary now because this new feature has been added to the Evergine libraries and Evergine Studio.

Evergine uses the multi-channel signed distance field technique to generate a prerender sprite font atlas from the original font file. A font atlas is typically stored in texture memory and used to draw text in real-time rendering contexts. The main issue with traditional sprite atlas is that the glyphs are prerendered in a specified resolution, so if you use this sprite atlas to render bigger text or the camera is close to the text, it is possible to detect a loss of resolution and aliasing on the text. Multi-channel signed distance field allows rendering font glyphs minimizing loss of resolution with different font sizes and even when the camera is close to the text.

The Multi-channel signed distance field is an improved technique based on the famous distance field technique created by Valve. This improved technique was created by Viktor Chlumsky. You can find more information about it by reading his paper.

picture about multi-channel distance field

Evergine allows to include TrueType fonts (.ttf) or OpenType font (.otf) files. Dragging these files to the Evergine Studio will create a new font asset automatically.

picture about true type and only type in evergine

A new Font Editor has been added to the Evergine Studio, which will be opened by double-clicking on a font asset. This new editor includes a quick way to test how a text will be rendered with a particular font, and you can modify the charset used for the generated sprite font altas, including additional special characters to the default charset.

picture about font editor in evergine

To ease the task of adding a text to your Evergine scene, a new menu has been added to create an entity with the new text components: Text3DMesh and Text3DRenderer.

picture about entities hierarchy menu in evergine

The Text3DRenderer component includes a debug mode that allows you to better understand text configuration such as text alignment, wrapping, origin …

picture about font and text debug mode in evergine

 

To know more about how to use this new feature, you can visit the new Fonts and Texts documentation section.

Jorge Canton
Author
Jorge Cantón
Plain Concepts Research

Wait! Don't leave yet.

Sign up for our monthly newsletter to be updated on all the latest news, case studies, and more.

We don't send spam and you can unsubscribe at any time.