Text size is affected by surfacegui pixel density, when it should instead be based on the surface gui size

Text Labels currently, especially for when used on surface guis on physical objects, have their text size linked to the pixel density. Not only is this incredibly frustrating when trying to adjust pixel density without wanting the text size to change, but it also means that larger text is forced to use a lower resolution, making larger text appear exponentially low-quality.

I am requesting that not only text size is decoupled from pixel density of surface guis, but that developers also have control over the resolution of surface guis. As Roblox now supports QHD and above for the image resolution of uploaded images, their built-in text options should also be capable of matching these resolutions to improve the quality of Roblox games without requiring potentially millions of images being uploaded and streamed to clients just to make text have a reasonable resolution on large parts.

Roblox should also consider the physical size of a part for surface guis and text labels. As part size is increased, the resolution will need to also be increased to maintain the same relative pixel density. Think of how a 27" 1080p monitor will not have the same pixel density as a 72" 1080p screen, the same applies to physical parts.

Here is an example:


Note how the small text below appears much smoother than the text above, despite pixel density for both surface guis being as high as it can be to ensure the text label occupies the intended amount of space on the parts surface.

A private message is associated with this bug report

2 Likes

This is a feature request, not a bug report

I completely disagree. I do not believe that it is intentional for the pixel density to affect the text size, the text size should be coupled to the surface gui size.

The increase of the resolution cap is arguably a feature request though, but I am unable to post there because of the weird way devforums insists on restricting access based on how active users are on this website (developers have a job to do, they dont have time to sit around typing on a platform designed for discussing improvements to Roblox and RobloxStudio rather than casual talk)

3 Likes

What is the bug here? How scaling works for TextLabels or how they render due to the Pixel density?

1 Like

I. The font takes up a certain number of pixels.

II. Less pixel density means the pixels will be larger

III. Larger pixels means larger text because the amount of pixels the text takes up will not change.

IV. You can make the text take up more or less pixels by changing the text size

Both.
TextLabels size should not its pixel density. To clarify, when the pixel density of a surface gui is changed, it should NOT change the size of the text label, and only its resolution. However, current behaviour is that the text will decrease in size when pixel density is increased.

Not only does this reduce the possible true pixel density of text labels (noticeable with larger text), it also limits the resolution of larger text labels, which is extremely noticeable.

(I understand this may instead be a limitation of the engine and not a bug with studio itself, but I wasn’t sure which category to put it in.)

Bump, still haven’t received any official message from a member of staff and its been over 2 weeks which is abnormal in my experience.
This issue to me should be pretty major, as developers who want their text to match the quality of the rest of their experience will waste a lot of Roblox’s storage with multiple similar image uploads for any minor changes to the text or to text within an image which instead could just be a text label overlayed on the unchanging image.

As developers can now upload images with a resolution of 8k, the resolution of the fonts used by textlabels should be updated to accompany that. The main issue with font resolution is that larger text is exponentially less crisp and appears extremely pixelated due to its low resolution and large size.

1 Like

This is how it works on ScreenGuis as well:

1080x1920:

4096x2160:

It appears to function like this to reduce pixelation for ScreenGuis, because the Text will never be lower in resolution than the area it is rendered over. It could also be due to how TextSize itself is implemented, because it represents the absolute number of pixels between the top and the bottom of the characters instead of just being a scale factor.

1 Like

Dear gosh that’s blatantly unplayable. That is literally just punishing people for having a higher resolution by destroying accessibility.

1 Like

Now that I’m thinking about it, it could be affected by your Display Scaling settings like how Roblox reduces it’s resolution with higher scaling values.

This is only a problem when you have high pixel density. Usually higher resolution displays also just end up being larger because the pixels need to packed in a smaller area and at some point it isn’t worth the cost, so the difference won’t necessarily be so obvious.

It probably is, the TextSize property is limited to a maximum of 100 except when RichText is enabled in-where text becomes blurry past that point. This, unfortunately, isn’t as simple as ‘just increasing the limit’ either since all Roblox text are stored in a font atlas; each new font or size of text being used creates a new entry in the atlas which only has a limited texture size. This is why overusing large text sizes or using a lot of TextLabels with variable text sizes is not recommended and can create text flickering. Ideally, you’d want to have as many TextLabels as possible use the same font and text size to reduce the chances of font atlas issues.

-- This isn’t an issue with SurfageGui, this is how Roblox text works. Text can only scale to 100px in Roblox unless you enable Rich Text. If you enable Rich Text, then the text will be blurry when scaled past that point. It doesn’t have anything to do with pixel density, it’s just a Roblox texture size limitations. (Which I think need a rework anyways but that’s a conversation for another day.)

2 Likes