How does CanvasSize work on SurfaceGUI

Hello everyone.
imma keep it a bit short
I made a portal system using surface UI, for a racing game.


The resolution isn’t very flattering.
it uses PixelPerStud, which roblox clamps to 10000.

i’ve been thinking of using FixedMode’s CanvasSize instead, but the behaviour is a bit weird, and i found no in-depth documentation on it on the website, this forum, reddit or youtube.

How does the sizing work? mainly, what is it relative to?
Any help on this is greatly appreciated!

1 Like

CanvasSize works just like your screen does. A specific X and Y size with GUIs that fit within the premises as set by the viewport size.

It’s relative to the part’s size.

Examples:
A perfectly square part of size 4x4 with a surface gui of canvas size 600x600 with a frame of size 100x100. A perfect square.


A part of size 4x2 with the same surface gui properties listed above.

A square part of size 4x2 with a UI of size 200x400 pixels.

Hope this made sense.

ok i see…
this actually was really insightful. i have some ideas as to how to proceed. thank you.

No worries! Happy developing!

so i was able to use the canvas size to get the portal viewport to work…
but the resolution problem remained… turns out apparently roblox caps resolution for both. too bad.
you still were awesome for helping there, thanks again.

Maybe you can try using multiple surface guis and fixed sizing to improve the resolution? Although a bit costly but will provide for detail that you’re looking for.

that was an option i’d considered. it might just be too costly though for the kind of experience i’m running. thanks anyway.