Your UI text looks crisp in the Scene view but soft and fuzzy in the Game view, or blurry on a phone, or pixel fonts turn into smudges. TextMeshPro text blurry in Unity is usually a scaling problem, not a font problem. This guide explains how TextMeshPro renders text, then goes through the fixes: Canvas Scaler, scaled objects, Game view zoom, font atlas settings, pixel fonts and world-space text.
How TextMeshPro Draws Text
TextMeshPro uses Signed Distance Field (SDF) fonts. Instead of storing each letter as a bitmap at one size, the font atlas stores the distance from each pixel to the letter’s edge. A shader turns that distance into a sharp edge at any size. That’s why TMP text stays crisp when scaled up, unlike the old Text component.
The shader decides how sharp the edge is based on how big the text appears on screen. If something confuses that calculation, such as a strange scale, the edge comes out soft. Most blurry text fixes are about giving the shader honest scale information.
New to TMP in general? The TextMeshPro tutorial covers font assets and styling.
Check the Game View First
Before changing anything, look at the Game view toolbar:
- Scale slider. If the Game view scale is above 1x, Unity is zooming the rendered image and everything looks soft. Set it to 1x.
- Low Resolution Aspect Ratios. If this is ticked, the Game view renders at a lower resolution. Untick it.
- Resolution vs window size. If you choose a fixed resolution larger than the Game view panel, Unity scales it down to fit. Text looks blurred because the whole image is resampled.
Many “blurry text” reports are just the Game view. Make a quick build or maximise the Game view at 1x to judge real sharpness.
Scaled Text Objects
Never scale TMP objects to change text size. Scaling a text object’s RectTransform (or a parent) to 0.5 or 2 makes the SDF shader work with the wrong numbers, giving soft or overly bold edges, and it also breaks layout.
Fix: keep scale at 1, 1, 1 on the text and its parents, and set the Font Size property instead. If you used scale to animate text (a pop effect, for instance), that’s fine for short animations, but rest at scale 1.
Also check for non-integer positions in pixel-perfect UIs. A RectTransform sitting at x = 10.5 renders text between pixels. Turning on Pixel Perfect on a Screen Space – Overlay Canvas snaps UI elements to pixels, though it costs some performance with lots of moving UI.
Canvas Scaler and Reference Resolution
With Scale With Screen Size, the Canvas Scaler scales the whole UI to fit the screen. TMP handles this well because it reads the final scale. Problems appear when:
- The reference resolution is tiny. Designing at 320 x 180 and scaling up 6x to 1920 x 1080 is fine for pixel art UI but means every 12px font is really a 12px font magnified. Use a reference resolution near your target, like 1920 x 1080.
- Canvas is World Space with a big scale. See the world-space section below.
- Nested Canvases with their own scale. A child Canvas or a parent object scaled by hand doubles the scaling. Keep nested Canvases at scale 1.
The Canvas Scaler guide explains Match Width or Height and picking a reference resolution.
Font Atlas Size and Padding
If text is still soft at scale 1 and 1x Game view, look at the font asset. Select it and open the Font Asset Creator (Window > TextMeshPro > Font Asset Creator) or check the Generation Settings in the font asset’s Inspector:
- Sampling Point Size. The size each letter is sampled at in the atlas. Higher means more detail. “Auto Sizing” picks the largest that fits. For most fonts, 60 to 90 is enough for any on-screen size.
- Padding. Space around each letter for the distance field. More padding allows bigger outlines and shadows. A ratio of about 10 percent of the sampling size is a common choice (for example 9 padding at 90 point). Too little padding causes hard, clipped outlines; it doesn’t usually cause blur.
- Atlas Resolution. 1024 x 1024 or 2048 x 2048 for fonts with large character sets. If the atlas is too small for the character set at your sampling size, letters get sampled smaller.
- Render Mode. SDFAA is the standard choice for crisp scalable text.
For Dynamic font assets (the default when you create one from a font file in recent TMP versions), characters are added to the atlas as needed. The same sampling and padding settings apply.
In the text material, very high Softness or Dilate values in the shader settings also make text look fuzzy. Reset them to 0 to check.
Pixel Fonts
Pixel fonts are the exception. SDF smooths edges, which is exactly what you don’t want for crisp pixels. For a pixel font:
- In the Font Asset Creator, set Render Mode to a raster mode such as RASTER or RASTER_HINTED.
- Set the Sampling Point Size to the font’s native size (often 8, 16 or a multiple).
- Set Padding low, such as 1 or 2.
- Set the atlas texture’s filter to Point if TMP doesn’t do it for you.
- Only use font sizes that are whole multiples of the native size, and keep positions on whole pixels.
A Pixel Perfect Camera helps keep everything aligned in pixel-art games.
World-Space and 3D Text
For text in the 3D world, use TextMeshPro (the 3D component), not TextMeshPro – Text (UI) on a world-space Canvas, unless you need UI interaction.
For world-space Canvases, the common mistake is leaving the Canvas at scale 1 and making it 1000 units wide. Instead, size the Canvas in “UI units” (for example 400 x 200) and scale the Canvas object down to something like 0.01. Text then has sensible font sizes and the SDF has good data.
Text that’s far away and small on screen will shimmer or look soft because of minification. That’s normal. Make important world text larger or use billboarding to keep it facing the camera.
🔧 Better fonts and UI kits
Good fonts and UI kits make a game look finished. See our list of Asset Store tools for indie devs for UI packs that play nicely with TextMeshPro.
Troubleshooting
Text sharp in Scene view, blurry in Game view
Set the Game view scale to 1x, untick Low Resolution Aspect Ratios, and make sure the chosen resolution fits the panel.
Text blurry only on mobile
Check Canvas Scaler settings and that the build’s render scale (in the URP asset) isn’t below 1. A low render scale doesn’t affect Screen Space – Overlay UI but does affect camera-rendered UI.
Outline looks cut off or blocky
The font atlas padding is too small for the outline width. Regenerate the atlas with more padding.
Pixel font looks smudged
The font uses SDF mode. Regenerate it in a raster mode with point filtering.
Text blurry after scaling an animation
The text is resting at a scale other than 1. Animate font size or reset scale to 1 when the animation ends.
FAQ
Is TextMeshPro sharper than legacy Text?
Yes, at most sizes. SDF rendering stays crisp when scaled, where legacy Text uses bitmaps that blur.
What sampling point size should I use?
Auto Sizing in the Font Asset Creator is a good default. Manually, 60 to 90 suits most fonts.
Does URP render scale affect UI?
Screen Space – Overlay UI is drawn at full resolution. Screen Space – Camera and World Space UI are affected by render scale.
Should I enable Pixel Perfect on the Canvas?
It can help small static UI text. It costs performance when lots of UI moves, so test it.
Why is my text bolder in builds?
Usually a scale difference or a different reference resolution being matched. Check Canvas Scaler match settings on the build’s aspect ratio.
Reader questions
Asked by readers of this article and answered by AI. Behavior can differ between Unity versions, so test in yours.




Leave a Reply