Image resize interpolation option!

Currently on Roblox it’s almost impossible or too hard to disable texture filtering.

I came with the idea to make a game on Roblox that uses semi-low-poly models with a low resolution/pixelated texture style to make it look more retro/classic/old.

But stumbled upon this problem.

Image of my texture getting blurry/stretched out due the “texture quality filter”.

So to test this out, I uploaded a cube that I UV mapped and that uses a 400x400 texture (I use only about 1/20th of the whole image to go down to even lower resolutions), the issue is, when a texture is stretched over a surface, the render engine begins to filter and blur it, which is going to be a big problem.

I have found a band-aid solution to this which is to downscale my textures and then rescale them to full resolution with nearest-neighbor on, that way it still looks pixely, sort of, it still tends to get blurry at some edges or when you stretch the texture over a part, it’s impossible to get 100% sharp/hard pixels without a filter applied to it.

I’d greatly appreciate if Roblox (or the engineers) were to implement a feature where this blurry texture filter can be disabled on textures that have to be intentionally low-resolution/pixelated for the style and feel of certain games.

Because of this issue I have to seek band-aid solutions and makes it fairly difficult to make my game, forcing me almost to come up with a new graphics design.

Just a simple feature to set texture quality filtering mode or at least be able to exclude some textures/decals from it would be amazing so said graphic styles can be made more easily without this obnoxious blurring and stretching.

Edit: It so appears to be 2021 and somehow this is still a feature request despite a ton of game engines already having this as a literal primitive/default option for textures ever since the beginning of the first 3D games that supported rendering with textures.

13 Likes

This is especially true for sprite sheets. The new video frame feature isn’t a good alternative for this use case, but stuffing 10 or more frames into a single pitiful 1024x1024, only to have them upscaled with the worst possible algorithm isn’t much better.

6 Likes

Five years later and this is still an issue:
image
My use case is also spritesheets. If I had a series of 16x16 sprites I’d be able to fit 4096 of them onto one 1024x1024 image (the maximum image size), but if I have to scale them up to 128x128, I’d only be able to fit 64 into one image. A property to select scaling quality on a Decal/ImageLabel/ImageButton would help us out immensely.
image

25 Likes

Bumping again. This would be incredibly valuable for Islands. We currently are using 128x128 texture files to try to get the same visual effect as Nearest Neighbor on 16x16 game textures. Another pixel game that has a better visual effect said their solution is 1024x1024 texture files for 16x16 game textures. This is horribly inefficient and causes the client to download way more data than should be necessary. If we were to follow that same approach, we would force clients to download 4096x more data for block textures than is required.

To summarize our issue quickly: we are forced to decide between sharp graphics and performance. This feature would allow us to have both.

25 Likes

This is still a major issue. Roblox is a web-based platform, meaning download sizes are everything. Having to upload 1024x1024 images to represent 16x16 pixels is unacceptable.

28 Likes

Pardon the bump, but this was filed Jan '19, albeit in a different topic, though there does not appear to have been a situation update by @RoughSphereBlox since. See:


EDIT: Here’s a useful addition to this request I would appreciate:

BlendIgnoreAlpha option. In a LOT of video games you get this appearance, albedo separates full alpha transparent from blend. Performant, quick to make, an interesting organic smoothing effect as well.
As a dropdown also including a sharp or inorganic corners option to alphaSeperate would improve the case for metal bars, tbh HL1 weird here:


(HL1)
image
(SMS)

7 Likes

Roblox really should take action fixing this issue as soon as possible. As days pass, there will be more and more images uploaded that are upscaled to 1024 pixels, further deteriorating player experience. This is also a comparably minor change (compared to Luau and everything else on the roadmap) that would have a high impact on network performance and visual presentation in the long run.

14 Likes

It would be awesome if nearest neighbor for images was added. Roblox has done a great job expanding into more realistic art styles, but I think they should also focus on making other styles possible. Adding nearest neighbor interpolation for images would enable developers to create pixel art games, which would diversify the appearance of games experiences on Roblox.

Also, many games that aren’t necessarily pixel art games would be able to make use of this. Things like pixelated weapon skins, vehicle wraps, signs, etc. could be added much easier.

If an Enum for image interpolation is added, it should be added to all instances with an image property. That includes:

  • ImageLabel
  • ImageButton
  • Decal
  • Texture
  • SurfaceAppearance
  • Sky
  • ImageHandleAdornment
  • ParticleEmitter
  • MeshPart
  • SpecialMesh
  • There’s probably others that I forgot

Most pixel art games are 2D, but Roblox doesn’t really have 2D. While they are rarer, there are some good examples of 3D pixel art games. These types of games could exist on Roblox if nearest neighbor was added.

21 Likes

Looks like they’re rolling this out for UI objects:
https://developer.roblox.com/resources/release-note/Release-Notes-for-490

Unfortunately doesn’t include anything other than ImageObjects in UI by the looks of it, but that’s still a lot of use cases related to this fulfilled already.

18 Likes

Still very sad to see this as an issue… 7 years later. It’s not just the Image resizing that would help, it would be the ease. It’s SUPER annoying upscaling all these images, and uploading them to Roblox, and even then the end result is still blurry. A whole genre of pixel art on Roblox is sort of being held back imo.

6 Likes

Image.ResampleMode exists. ImageLabel | Roblox Creator Documentation

We need the ability to resize images on parts too, if we are talking about decals.

1 Like

Yes! I would be talking about decals.

2 Likes

So is this incredibly simple easy feature ever being implemented? Ever?
They added this for GUIs back in 2021, and the entire thread for that announcement was people begging for the same thing to be added to 3D textures, but no dice.

As Grey mentioned, alpha testing would also be really nice, let’s say you’ve got a texture like this:
robloxtex1
Right now, if you put that into Roblox, it looks like this:


But for things like text and foliage, it would be really nice (and also, more performant, since there’s no translucency calculations of any kind) to have this as an option:

It’s honestly baffling how Roblox is a platform where you can instantly spawn a fully-simulated 3D physics object with one line, but yet in 2023 can’t do something as simple as change GL texture modes, or have multiple materials on a part/mesh.

(PS: If alpha testing is added, it would be nice to see a field to change the alpha threshold value, you could make some cool animated effects by tweening it back and forth)

6 Likes

I forgot about masked alpha being a thing.
It’s a feature in Unreal Engine where you can set alpha blend mode to masked.

This makes it so pixels can only be fully solid or invisible but no in-between.
It is SIGNIFICANTLY cheaper than using standard alpha blending.

It reduces overdraw and other performance issues caused by drawing way too many alpha layers on top of each other.

Roblox literally has NO EXCUSE not to add this, mobile devices can support this without an issue.

In fact it’s an ancient rendering technique that was used before alpha blending existed to make things look semi-transparent (by using a noise or sine wave texture that gave a net/checkerboard pattern, in high density this would make things look semi-see-through).

This rendering method is ESSENTIAL for rendering foliage such as trees, bushes and grass.

Realistic trees in Roblox are currently ABSURDLY expensive to render thanks to overdraw and too many objects with alpha being drawn on top of each other.

To work around this performance issue I’d have to use hand-crafted LODs for trees and disable alpha entirely for trees and bushes that are far away which even with hand-crafted LODs can look a little wonky at best or requires an entire switch of graphics style.

4 Likes

It’s been 8 years and there is nothing about this being implemented yet?

This was already implemented in the Surface GUI’s, but now the problem is that for some reason this implementation isn’t done on SpecialMesh, MeshParts, Decals and Textures?

If there’s is any engineer that can address this, can we have some response to why’s this STILL not a thing for 4 (and potentially more) of those classes, or just classes that accept images in general?

If this was implemented for Surface GUI’s, why not other image containing classes?

  1. Years. Later. Roblox. WHAT ARE YOU DOING!!

I need to upscale images for it to sort of look like that, yet, upscaling images makes them a bigger file size, which in turn uploading them onto Roblox means Roblox needs more storage space for the huge sizes of these textures. It can be so much more efficient if they just did it. Devs could take advantage of that. And I’m sure Roblox could too.

Like @nooneisback stated

Having to upload 1024x1024 images to represent 16x16 pixels is unacceptable.

Roblox is one of those platforms that can be so good, but just hate money. And it affects us! This page is a great example of this underlying issue. One upscaled texture is one thing, but a whole game? Gigabytes, when it could’ve been a few megabytes.

2 Likes

Many years later and this still ain’t a think yet, that’s crazy.
My current work around for this seems to have images be double their normal scale.

Upscaling a 32x32 image up to 64x64 should still give decent looking pixels without making them too blurry and without increasing memory usage by a ridiculous amount.

1024x1024 seems a bit overkill, from what I’ve seen, Roblox texture filter is linear so it interpolates pixels between each other as far as I know and doubling the resolution of your pixel art somewhat solves the blur problem to a degree.

But it’s still very unnecessary that we have to do this.

3 Likes

Needed this today, was looking for a solution. Just to find out its impossible as of right now.