Written by Sovogal – Edited by DreamingImLatios
Calligraphics is a small module that leverages the Kinemation backend rendering systems, Unity’s Shader Graph, and a little bit of pixie dust to render world-space text in a similar manner to TextMesh Pro.
Check out the Getting Started page!
Calligraphics can parse Unity-supported Rich Text tags with rendering support for a subset of those. What Calligraphics supports, it will render, and what it does not, it will ignore, so you can port existing Rich Text without concern that you'll expose any unseemly alligator brackets to your players.
Unless you're animating text, Calligraphics is essentially idle after it has parsed and rendered once.
Just like TextMesh Pro, Calligraphics supports any SDF Font via a custom-included shader. Custom shader graph nodes, subgraphs, and SDF utilities are provided if you need more control.
Calligraphics leverages Kinemation’s rendering pipeline, and supports Entities Graphics material property workflows. It uses batching and instancing for all text at once, so you know it's fast!
Calligraphics supports the exclusion of all recognized Rich Text tags from the rendering engine, both start and optional end tags. It also has rendering support for a small subset of tags:
- Alpha
- Color
- Gradient
- Size
Eventually, I plan to support the same set of tags as Unity TextCore, but these can get you started.
Calligraphics provides some basic animation tools to give your world space text a little pep. Animations are independent of the main rendering system, so they produce overhead only if you want to use them. Calligraphics currently supports five types of animation:
- Color
- Position
- Rotation
- Opacity
- Scale
- Limited tag support. Many fundamental tags, such as bold and italics, don't affect text rendering. I recognize this as a major issue and will be prioritizing tag support in future releases.
- Animation systems require glyphs to regenerate each frame in order for transitions to work, even when the transition is complete. This performance overhead is not ideal.
- Limited authoring support. Unity native support for Rich Text editing keeps finding itself on the back-burner. A rich text editor would offer the most comfortable authoring experience, but creating one from scratch is a TON of work.
- The Calligraphics shader does not render text edges as sharply as it should. The cause of this is unknown. The shader is based on TextMeshPro 4.0.0-pre.2.
- While Calligraphics represents strings internally as UTF-8, it does not handle glyph generation mechanisms for all languages correctly. Feel free to get involved to help support your native language.
- Commonly-used Tag support
- Billboards
- 9-Slice Panels
- Decals
- Animation overhaul (solid-state after transition is complete)
- Complete tag support