We need the option to choose interpolation of images.
My inventory has 32x32 images.
When hovering over the item it should display a bigger image with information next to it.
But this bigger image gets SOOO blurry when resized.
Therefore I suggest we had the option to choose nearest neighbor as interpolation method when resizing images. This I believe will open for a world of new pixely games and would be VERY appreciated by the community.
What is the current method? Because if youāre adding Nearest Neighbor, might as well add Bilinear and Bicubic (but I think the default is probably something like those last 2).
Yea, well the most distinctive difference is nearest neighbor and all other algorithms. Sure Id appreciate them all to be implemented but to make pixel games you really need nearest neighbor.
MAN! Id be sooo happy if this got implemented I always have to upload highres images along with my pixely ones to make it workā¦
There would be no real need for such a property. Realistically you should have used bigger images and scaled them down, rather than using smaller images and scaling them up.
This is also a waste of GPU RAM, which is limited to a few MBs on integrated chips, thereās also not much reason to waste all that file size in useless pixels
This is also a waste of GPU RAM, which is limited to a few MBs on integrated chips, thereās also not much reason to waste all that file size in useless pixels[/quote]
Plus it takes years to download the image in the first place on some connections. I hate staring at my invisible, non-usable Gui while every other player jumps around laughing and overall having a great time without me
For whatever reason it takes the Roblox client a lot more time to load a decal than it does my browser for the same decal :uhhh:
[quote] This is also a waste of GPU RAM, which is limited to a few MBs on integrated chips, thereās also not much reason to waste all that file size in useless pixels [/quote]If you want to display a larger image, you use a larger image. GPU RAM is irrelevant since the image is being scaled regardless given the context.
[quote] Scaling highres images gives u a blurry small image aswell. [/quote]If you are scaling uniformly then this shouldn't be an issue.
@Woot: Larger image dimensions = larger file size = longer download time. Lots of big images = noticeable download time. Better to upload as a small image.
There should be an ImageInterpolationStyle Enum. It will contain:
None ā i.e. when you make the image larger, each āpixelā scales with the image. It will produce results similar to Minecraft (where you make a small 16x16 texture, and it ends up something like 128x128 in-game keeping the same ratio)
Linear/Bilinear ā Normal scaling (current)
This way, the option is there in the future to add more interpolation types which improve the quality of the image more, at the cost of CPU cycles. For example, Lanczos3 interpolation could be added in the future.
Iām currently working on a project which has a pixelized style, and I would like to render these at 2-5x in both dimensions.
It would be really nice if we could have constant / nearest-neighbor interpolation as a feature for textures, at the very least for the 2D image objects (ImageLabel and ImageButton).
Right now, if I donāt want the image to look smoothed due to interpolation like in OP, with N the scale factor:
I would have to upload about O(N^2) times the amount of spritesheets
Clients would have to download ~O(N^2) times the size in textures
Devices would need to use/swap/free/whatever O(N^2) times as much texture memory as well
This all seems really inefficient especially for large pixel-art backgrounds. More interpolation methods for textures would make this kind of art style a lot easier to pull off.
Iām also working on a game whose art style would benefit from nearest neighbor interpolation. Since I doubt weād use anything beyond NN or bilinear interpolation, a boolean āSmoothā parameter could be added to textures etc. Alternatively there could be an Enum āInterpolationā that could be either āSmoothā or āNoneā to keep names simple.
Been making my game entirely around a pixelated style. Itās pretty annoying having to deal with blurry images, even in non-pixelated games. Even if the image looks off, I want it to look crisp ā we should at least have the option to choose blurry or crisp.
I say Roblox implement some level of MipMaps to images. Sure, it would increase load times (which is minuscule 99% of the time. If your connection is too poor to handle a few images, you shouldnāt be on an Online platform in the first place in my opinion) but it would definitely increase the range of the type of games people could create.
The only problem I can see with choosing what texture-filter an image uses is I think filtering like Bilinear and Trilinear might have some level of performance impact, or that might just be Anisotropic Filtering x2 and above. But something like Nearest Neighbor, aka pretty much no filtering at all, should definitely be an option.
In the mean time, you can increase an imageās size to 512 x 512 in Gimp or PaintDOTNet and set the rescaling system to Nearest Neighbor. Of course, youāll have to reupload your assets, but itāll give you the effect you want.
As a Roblox developer, it is currently too hard to have pixelated textures look smooth when upscaled, so please just add a toggle or something to make this not happen.
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.
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.
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.