As a Roblox developer, it is currently cumbersome to make pixel art and low-fidelity style games. Recently, ImageObjects such as ImageLabels and ImageButtons recieved the new property to set their resample mode to pixelated. Right now, the only way to have a similar effect on textures and materials is to upscale the pixel art up to 1024x1024 to get sharp edges. However, these are still not sharp when you zoom in on them, and they also take up much more memory.
For example, minecraft blocks use 16x16 textures. To get a similar effect in Roblox with as close as possible results, you would have to make them 1024x1024, using up to 4096x more data (not taking into account compression). This adds up very fast for pixel art games, reducing the performance and increasing load times.
If Roblox is able to address this issue, it would improve our development experience for pixel art and low fidelity games, as well as increase their performance on all platforms, reduce load times, and reduce data footprint and networking strain on Roblox.
If image labels and image buttons have it, I don’t understand why decals/textures don’t have such an option. This would really help with pixelarts and other low-resolution stuff as you mentioned.
Having resampling in general would be really helpful for games relying on pixel arts (we could also have 2x2 checker textures or other extremely small repetitive patterns that dont require much resolution to replicate)
Huge support. Memory is a huge limitation for Roblox in general. This has been a highly requested feature for years.
People are currently using work arounds that significantly impact memory, like adding hundreds of extra faces and using unnecessarily large textures like preacher_online mentioned.
What a waste!
Different texture sampling modes would allow for games that are very memory efficient, new game aesthetics, and easier modeling (using softwares like block bench).
Considering there are so many instances in need of this, I wonder if it would be a good idea to add a dedicated image instance which consolidates all the image related properties into one (ResampleMode, ImageColor, ImageAssetId etc), that could then be used by other instances as a replacement for an image id.
here are 2 images i made. one is 16x16 and the other is 64x64, and they both use very few colors. theres no need to compress them at all, yet i have to use imagelabels (which dont wrap onto shapes) to fix the very bad compression.
I can’t stand how Roblox keeps withholding these essential features for no apparent reason. Why do I need a 1024p texture just to somewhat resemble a 128p texture? It’s stupid. Because the geniuses at Roblox didn’t implement something like this earlier in development, we now have a situation where there are numerous instances supporting images such as decals, textures, tools, mesh parts, particle emitters, etc. I doubt there’s a universally good solution for all of these.
And given Roblox’s current approach of ignoring developers and focusing on investors, I doubt we’ll ever see something like this in a timely manner.
i dont think it would reduce storage on their servers since imagelabels arent compressed which means their servers save the exact un-compressed image. idk why the client gets a compressed version of the image, since the textures are (i think) immediately deleted after leaving the game, so lowering the size of the image can’t be that beneficial, especially since the compression doesn’t look like it reduces file size that much
Ohhh now you got me thinking.
Roblox may not be actually compresses the images that are uploaded but the images that are loaded in game.
So quick explanation, graphics cards have very small and limited amounts of memory and storing uncompressed data in their memory consumes lots of space.
So what a lotta game engines do is they use something whiiiiich I think is called… DXT compression?
(Because algorithms like PNG and JPEG compression are WAYYYYYYY too slow and can’t run on the GPU due to how GPUs are designed.)
It’s basically a way of compressing images that breaks them up into little chunks/blocks that are each individually compressed on the graphics card and the algorithm that is typically used is VERY fast and relatively efficient but comes at the cost of slightly lower image quality.
This makes it so games use less graphics memory and can load more complex textures and models.
I think here you can see how different texture compression methods affect details in different ways.
When will we get any news regarding this extremely needed feature??? I don’t want to have to do crazy workarounds to achieve something simple as that. If imagelabels can have ResampleMode then so should textures. Can we get any info on the status regarding this?
This would be really useful right now! I’ve exported the palette from MagicaVoxel to use as a texture, it looks great in blender:
However when in Studio, the texture ends up looking like this, because (I’m assuming) all the dark greens must merge into one sloppy colour by default, due to the small size.
I believe this is also due to the resampling, on an ImageLabel, default looks like this:
Whereas pixelated makes it so much clearer:
And I just can’t see why this wouldn’t be an option for textures, decals, and other objects that utilise images in Roblox, not just GUI.
At that rate give it to materials too, it’d be an awesome new look and personally, I’ve never done it because A) It’s impossible to do without jumping through hoops at the moment. (and) B) My games (at least the one I’m working on now) is resource heavy as is, much less does it need more memory used up by oversized parts that clog up the physics engine calculations.
i still can’t believe roblox seems to completely ignore the idea of this specific feature that couldn’t possibly have any drawbacks
i’ve been praying for this feature for 6+ years, i’ve always had to resort to surfaceguis and 1024x1024 images if i need them to wrap around parts, or for materials, when i want pixelated textures in my games
and i often do, because i love experimenting with what kinds of art styles and graphics can be achieved in roblox, despite all of the limitations placed over us
if this one simple feature can be added, the quality and possibilities in retro-styled roblox games would be increased drastically, so would the performance of said games because NEAREST NEIGHBOUR FILTERING IS LITERALLY FASTER! plus the fact that it would take up EXTREME amounts of memory usage which preacher_online mentioned, when we’re FORCED to upscale all of our necessary textures to 1024x1024, to BARELY mimic what effect we’re actually trying to achieve!
there is absolutely no reason for why this simple feature shouldn’t be added, no argument. if imagelabels support it, how come decals, textures, surfaceappearances, and custom materials don’t?
i don’t understand why roblox ignores the most unnecessary issues that are the simplest to fix, this has been an issue for forever, and yet we’ve seen no effort from roblox and it’s moderators to even TALK about it
the closest we’ve got to this has been the resamplemode, property and when was that released? back in august of 2021
Upscaling textures to 1024x1024 is time-consuming and memory-intensive. I hope Roblox implements this feature, as it would be very beneficial for independent games.