Following this, I'll be working on a brand new UI framework (which should take significantly less time) using this font rendering as basis after which the UI/UX itself will be redesigned.
New features:
- Added a brand new custom Neos text rendering system, replacing the old Unity one-- This new system is heavily asynchronous and multi-threaded, utilizing multi-core systems and removing all lag when changing/generating lots of text
-- It uses a higher quality MSDF rendering method (old one uses SDF), preserving more detail and sharp edges in font
-- It supports dynamic glyph atlas generation on the fly, rather than a fixed pre-generated atlas, allowing for any glyphs from the font file to be displayed
-- Supports significantly more languages now, including Japanese, Chinese and Korean
-- Languages with complex text shaping rules and right-to-left writing aren't supported yet (e.g. Arabic)
-- This currently replaces the text rendering in TextRenderer, Text within UI canvas (e.g. inspectors, friends list) still uses old one. Will be replaced with new UI system
IMPORTANT: This upgrades all existing instances of TextRenderer. If you encounter anything breaking, DO NOT SAVE the world or item and report the issue. Some small visual differences are expected.
- Added support for importing Font asset files (TrueType/OpenType font formats are supported: .ttf, .ttc, .otf and .otc)
-- You can configure glyph size in atlas, signed distance field range and padding on the asset.
-- Increase the glyph size for fonts with think or small features to reduce artifacts
-- Neos now uses Noto Sans as its default font, replacing previous Liberation Sans
- Added TextUnlit material, which supports MSDF rendering and is used by the new text.
-- You can use this material fully standalone as well, it isn't technically tied to the text
-- It supports different blending modes, offsets and other material settings that the old FontMaterial didn't support
-- More font materials to come in the future!
- TextRenderer now uses regular Neos materials, rather than a specific FontMaterial asset and generates a regular mesh, fitting elegantly into Neos' pipeline
- Added "BoundsAlignment" property to TextRenderer, allowing to set alignment of the BoundsAlignment
- Separated "Align" into HorizontalAlign and Vertical Align for TextRenderer
- HorizontalAlign now supports "Justify" alignment
- Added FontChain component, which allow specifying a main font and a set of fallback fonts used for glyphs missing from the main one
- Added FontCollection component which allows specifying a collection of fonts
- Added <font="Font Name"> </font> tags, which allows using different font for a section of the text. This requires those fonts to be supplied in the FontCollection
- Added <sprite=index> or <glyph=index> tag for rich text, allowing to select a specific glyph ID from a font file
Tweaks:
- Categorized LogixTip corretly (based on report by @DeliriousJax)Bugfixes:
- Fixed broken syncing of items/worlds loaded from the database (reported by @Alex from Alaska)- Fixed TooltipMultiplexer not forwarding the circular menu items correctly (based on report by @DeliriousJax)
- Removed a bunch of old testing and debug components



Changed files in this update