FyroxEngine / Fyrox

3D and 2D game engine written in Rust
https://fyrox.rs
MIT License
7.49k stars 340 forks source link

[editor bug] Fonts blurry with display scaling 200% in GNOME using X11 #501

Open fnune opened 11 months ago

fnune commented 11 months ago

The fonts in the editor look blurry. Note that it's only the fonts: other graphics such as the scene preview and icons scale up properly.

image

Here's a close-up:

image

And here's a comparison with another window with correct scaling:

image

Some information about my system:

 ~/Development/fyrox/game => uname -a
Linux feanor 6.1.0-11-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.38-4 (2023-08-08) x86_64 GNU/Linux

 ~/Development/fyrox/game => gnome-shell --version
GNOME Shell 43.6

 ~/Development/fyrox/game => echo $XDG_SESSION_TYPE
x11
mrDIMAS commented 11 months ago

Hi, this is because Fyrox uses bitmap fonts and bakes font atlas in 1:1 ratio.

fnune commented 10 months ago

I see. Do you think it's feasible to change that?

If I were to take a look at it myself, where should I start?

mrDIMAS commented 10 months ago

Hard to tell, the problem is quite complex. At first, when display scaling is applied to the UI, it just scales the geometry of the text (each quad per glyph). This means that the UI does not care what is actually placed on these text quads, it just generates geometry of a proper size. The renderer then using a font atlas to render glyphs. This is where the problem hides - font atlas was generated to 100% display scaling, but used with 200%. So you can begin at https://github.com/FyroxEngine/Fyrox/blob/master/fyrox-ui/src/ttf.rs and try to play with the font atlas bitmap size.

perry-blueberry commented 9 months ago

This seems to be an issue on 100% scaling X11 as well. image

DanielJoyce commented 3 months ago

Hmm, so no support for Signed Distance Field fonts?

mrDIMAS commented 3 months ago

This issue should be partially fixed by layout rounding feature, that was added recently.