Skip to content

Repository files navigation

Galacean Engine BitmapFont

A text renderer based on bitmapfont for galacean engine.

Features

  •  Fnt or json format - Load json or fnt files as bitmapfont resource
  •  MSDF - Support rendering text using MSDF rules.
  •  SDF - Support rendering text using SDF rules.
  •  PSDF - Support rendering text using PSDF rules.

npm

The library is published on npm with full typing support. To install, use:

npm install @galacean/engine-bitmapfont

This will allow you to import bitmapfont entirely using:

import * as BitmapFont from "@galacean/engine-bitmapfont";

or individual classes using:

import { BitmapFontRenderer } from "@galacean/engine-bitmapfont";

Loading fonts

The .fnt extension is detected automatically. Bitmap-font descriptors stored as JSON must use the dedicated fnt asset type so that the plugin does not replace Galacean's generic JSON loader:

const font = await engine.resourceManager.load<BitmapFont>({
  url: "/assets/font.json",
  type: "fnt",
});

SDF, PSDF and MSDF atlas pages are loaded in linear color space by default. Page URLs and Texture2D loader options can be overridden when needed:

const font = await engine.resourceManager.load<BitmapFont>({
  url: "/assets/font.json",
  type: "fnt",
  params: {
    pages: ["/assets/font.0.png"],
    texture: { mipmap: false },
  },
});

Buffer allocation

All bitmap-font renderers in one engine share the static quad vertex/index buffers, and every text mesh reuses the same vertex declaration. Instance data remains renderer-local and grows geometrically only when its current capacity is exceeded.

This separation is intentional: WebGL instanced drawing has no portable firstInstance offset. A global instance buffer therefore needs to be owned by an engine-level batcher that also controls draw ordering and range allocation; it cannot be safely introduced as a renderer-local optimization.

Contributing

Everyone is welcome to join us! Whether you find a bug, have a great feature request or you fancy owning a task from the road map feel free to get in touch.

Make sure to read the Contributing Guide / 贡献指南 before submitting changes.

Build

prerequisites:

First, you need to install the dependencies:

npm install

Then, to build the source, using npm:

npm run build

Links

License

The engine is released under the MIT license. See LICENSE file.

About

Bitmapfont rendering component for galacean

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages