UI text still blurry...

How is this still a thing?

I’ve read all the forum posts with people giving fixes and I don’t like any of them.

Right now I’m using the screen space overlay canvas, so there is no option for dynamic pixels per unit.
It does show up if you turn on the debug mode, but it doesn’t change anything, and I just want to keep using screen space overlay…

Increasing the size and scaling of the text down is an awful solution.
Not only will you have to keep track of scales and size now, it actually causes the bounding box of the text to be the original size with the text being scaled down, creating like a sort of padding between the text rectangle and the rect transform.

I’ve also read this being caused by turning on/off directx 11, but that option seems to be gone sort off. I can turn directx 11 to only work in exclusive mode or something, but that doesn’t do much.

Any word on this being fixed, or possible other solutions?

1 Like

lol
You have to remember the text system is still the legacy text system and it currently renders each letter in it’s own quad.
So the only way to get any decent quality is to use massive text sizes and scale down the Rect Transform.

FOr a better result, check out the text assets on the store which use differnet implementations for text. I usually recommend TextMeshPro as it’s good value for money.

Unity (I’ve heard) are planning on a replacement text system but it’s yet to hit the active roadmap

The font rendering tech in Unity is really old. Text Mesh Pro is good, you should check it out.

Ye, I’m not paying 60 bucks to have my text be sharp :stuck_out_tongue:

Every game has text, unity is a game engine, hence the text should be decent.
Heck, why don’t they just build in the text mesh pro addon.

It’s just ridiculous.

1 Like

It is decent. It’s just not great.

It would be nice if text rendering size were responsive to ppu size. There are a few work arounds, like increasing your canvas scale or scaling down text areas with a large size font.

If you want pixel perfect text, check my sig :wink:

So much this.
Annoyingly enough, pre-generated fonts (ie every importer setting apart from ‘dynamic’) work great. You just specify the import size and it works more or less how you’d expect it to.

The main problem (and one not covered by TextMeshPro) is dynamic fonts. Changing font size in importer does nothing.

That is correct. When creating your font asset, you need to select what characters to include. There are several options for doing this.

For most Latin based languages, you can fit all the characters into a single font asset. This is trickier for CJK where the character sets are much larger but still manageable. With the next release, this will get easier with the Font Fallback system making it possible to spread those characters into several font assets.

What do you mean by this? When creating SDF Font Assets using the include Font Asset Creator, you only need (1) Font Asset for any point size and resolution.

That was regarding UGUI’s Text component, not TMP. Sorry, could’ve made it clearer.

Thanks for clarifying :slight_smile:

If anyone’s still looking, I’ve added pixelPerUnit scale for dynamic fonts to the Text component.

Disclaimer: I’ve done some very basic tests, so YMMV. Backup everything you change etc.

Get UT’s UI project from their repo (5.2 branch), replace Text.cs, build it and replace relevant .dlls
Refer to their readme if you have any problems with that. Also, don’t nuke their line endings by mistake, might save you some time.

The other file is a usage example.

It’s still a pretty bad solution since you need to add the .dlls on (at the very least) every machine you’re gonna build and design it from, but eh, at least it isn’t that horrible scale down/size up thing.

2509118–173644–Text.cs (15.5 KB)
2509118–173645–DynamicTextAdjuster.cs (649 Bytes)

1 Like

See here : http://forum.unity3d.com/threads/infamous-blurry-text-problem-confirmed-as-bug-not-limitation.392363/: