stride3d / stride3d/stride

Font Rendering: Inconsistent Blending between font types

Open
#2,171 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C#
Stars
7.8k
Forks
1.2k
Avg merge
2d 17h
Merged PRs (30d)
49

Description

Release Type: Official Release 4.2

Version: 4.2.0.2067 on .NET 8.0.2

Platform(s): Windows 11, in Editor and in-Game

Describe the bug
Dynamically Runtime Rasterized fonts render / blend with much different opacity than offline SDF Rasterized fonts.

They SDF fonts also blend differently at runtime than in the editor.

To Reproduce
Steps to reproduce the behavior:

  1. download Bai Jamjuree font from Google Fonts
  2. create SDF font
  3. create Dynamic font
  4. create a grid with 30% opacity
  5. create two text blocks, one for each font
  6. compare lettering in editor
  7. compare actual blending at runtime

Sample project, you should be able to see it in the UI page:
Cubes.zip

Expected behavior
Consistent opacity between fonts.
For what it's worth, even if it differs from all other opacities, the Dynamic Font's opacity would be my personal EXPECTED one and all other UI, including ImageElement, should blend like it. (that's a greater issue with UI compositing in Stride, though)

Screenshots
image

image
(left is dynamic font, right is SDF font... btw, UI editor contrast is terrible when opacities are involved because of the very bright blue window background)

Visual tree:
image
image
image
image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the attached Cubes.zip sample project and reproduce the comparison between Dynamic and SDF fonts in the editor and at runtime on Windows 11. Compare the font blending against the 30% opacity grid and the ImageElement behavior. Done means the font types render with consistent opacity in both editor and runtime contexts.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.