GML [solved] Best way to do HD graphics (HUD)

trentallain

Member
I currently have HUD sprites that are made for 4K (3840x2160) and I scale them depending on the screen size. So if the display was 1920x1080, the scale would be 0.5.

These sprites are basically just 1 to 2 colour shapes and icons (not pixel art) that consist of lines and curves (such as circles) that aren't smoothed along the edges and don't have any multicolored pictures within them.

I can see the jagged edges so do you guys think that the sprites need some sort of anti-aliasing shader on them or something along those lines? I am currently also using interpolate colours between pixels but that doesn't really do anything other than make it look blurry, and obviously I want the edges to look clean and sharp.

Also any aa level in display_reset causes massive slowdowns, with the lowest value causing the game to run at about 30fps out of 60fps.

Edit: how do most games these days do this?
 
Last edited:

trentallain

Member
Don't scale them, just let game maker do it.
I'd rather scale them myself so I don't have to have a 4K GUI layer. Also it lets me have things such as widescreen without the horizontal stretching.
If that's not what you mean, the sprites are for 4K and I just use image_xscale and image_yscale to scale them to the correct size to fit the screen.
 
T

Thunder Lion

Guest
Oh so you need to down scale to fit the images on the screen.
 
T

Thunder Lion

Guest
If anything remake it in an image editor and fix up the parts that get messy.

E.g. scale the image in the editor to HD then brush it up to look good.
 

Fishman1175

Member
What kind of hardware are you testing on? Even on my weak gtx 630M display_reset() was over 60fps in a full 3D environment.

But yeah, just aliasing the sprites in an image editor is an option.
 

trentallain

Member
What is your port view size?
No views are used but the camera is set up like this (GMS1.4):
Code:
//size of view
    view_w = display_get_width();
    view_h = display_get_height();
    surface_resize(application_surface,view_w,view_h);
    window_set_size(view_w,view_h);
    room_width = view_w
    room_height = view_h
    display_set_gui_size(view_w,view_h)
 

JackTurbo

Member
If they're just solid shapes and lines why not use vector sprites?

The would look fine at any size.

They'd likely be smaller file size wise too
 

hamdrax24

Member
I think the problem is that the sprites are too low res for your resolution. Try using a lower resolution and see what happens.
 
Top