- Fix incompatibility with EMI
- Fix selection highlights in text field widgets failing to render in versions prior to 1.19.3
- Implement outlined text (such as on glow ink signs) for
raster
fonts. This is controlled by therange
parameter in the font metadata JSON. - Force glyphs to be rasterized such that the baseline is aligned to a pixel boundary at the highest mipmap level requested. In less technical terms, this fixes an issue where text would render without a consistent baseline in raster fonts, especially at high mipmap levels.
- Implement the
blur
option for raster fonts, which specifies whether texels in the glyph bitmaps should be interpolated. The option is set in the font provider JSON and not the font metadata JSON as previously specified. - Fix a bug where reloading resource packs would break text rendering.
- Patch the vanilla
rendertype_text_intensity
andrendertype_text_intensity_see_through
core shaders so that the texel intensity only affects the alpha component of the fragment colors (instead of all components). This means that raster fonts with partial transparency should no longer have gray edges when rendered.
This release requires Fabric Loader 0.14.16 or later.
Limitations
- Outlined text is still not implemented properly for raster fonts.
- Text in raster fonts with smooth outlines (i.e.
blur
set to true) look blurry.
This is an experimental version for testing non-MSDF-based text rendering.
Originally, Caxton has supported MSDF-based text rendering only. However, there are situations in which this method is not ideal:
- Pixel fonts: the MSDF-based method does not render with crisp borders. However, the ability to have advanced text layout support is useful enough to have better support for these types of fonts.
- Use with shader mods such as Iris Shaders: Caxton currently adds its own core shaders. These work as long as text is rendered outside the world, such as in GUIs or HUDs. Text rendered inside the world, such as on signs and name tags, however, does not render when a shader is active. A conventional bitmap-based pipeline would allow Caxton to work with Iris, albeit with lower graphical quality than with the MSDF-based pipeline.
Configuration
The following options have been added to the font metadata JSON:
{
// Specifies whether to use the MSDF-based rendering method ("msdf") or
// to use glyph bitmaps ("raster").
// "msdf" is recommended for most fonts, but "raster" is more suitable for
// pixel fonts.
// Neither method is currently compatible with Iris Shaders, but support for
// "raster" when a shader is present is planned.
"tech": "msdf",
// Whether to interpolate texels in the bitmap (NOT YET IMPLEMENTED).
// Only has an effect on raster tech.
"blur": false,
// The maximum mipmap level (0 – 4).
// This is pointless to set if you’re using the MSDF rendering tech.
// However, it can be useful for non-pixel fonts when you’re using the raster
// rendering tech.
"max_mipmap": 0
}
Limitations
- Outline text (such as on signs with glow ink) does not render with outlines in
raster
fonts. - Currently, Caxton still uses custom core shaders for
raster
text. This will probably be fixed in a later snapshot.