Uploading 4K images

Running into this issue, looking for solutions other then splitting the image up… Disappointing that roblox does not support 4k or higher…

8 Likes

I’d rather have 4k textures than making my mesh 50k triangles.
If Roblox won’t be implementing 4k then at least make it 2k. Almost every game in this 2023 outside of this platform already use 2k+ texture as default. I don’t see performance problem since it’s really up to the developer, adding 4k possible doesn’t make some game less lag as the developer already using high poly models. If player’s performance is that much matter then make that every game in roblox must not have overall tris count more than 1M triangles.

12 Likes

It’s March of 2023. It is completely unacceptable that we are still dealing with decade+ old texture sizes.

Because of this we have to upload multiple textures, meshes, etc as workarounds.

How is it that we have games with very high poly counts, a new lighting system, and a million other nice changes, yet the resolution is still tiny? Its awful. Should be at least 2048x2048, but ideally 4096x4096. The limit should really be file size.

13 Likes

I completely agree. Roblox is very advanced in some ways but extremely backwards and limited in a lot of others. Even old games like Half Life 2 have no limits on their texture sizes as long as they are a power of 2.

Roblox does have an additional burden of having to send those textures over the internet but that is an issue that can be addressed. Texture streaming and mipmapping are not exactly new techniques, and Roblox does already cut down textures that are too large.

I personally think Roblox should focus on getting their engine up to the standard of last decade at the very least, this would be a good start to that.

9 Likes

Roblox can store and send over textures in the .webp format which has very high compression efficiency (even at resolutions as high as 4K) and minimal artifacts (looks 10x better than JPEG).

The only downside to this is that decompression might be slow on old devices but it would save a lot of internet bandwidth and server storage.

Keep in mind that in a single 4K texture you can put 16 1K textures and uses roughly 1500% more memory uncompressed. A 2K texture alone can already hold 4x 1K textures which already is about 300% more memory usage.

We should totally have 4K textures, I agree. But I can see why Roblox might not have yet.
Majority of Roblox users have outdated phones or potato PCs, most players are likely kids as well so they might not be prioritizing it right now.

I do wish for it to be a feature very soon (along with texture filter options cause I still cannot make 256x256 textures look great either, very ugly and blurry).

Splitting meshes to have high res textures feels really unnecessary, it adds more texture objects to memory and requires more sampling and I’d imagine it also increases draw calls due less efficient clustering/batching.

3 Likes

I’m going to drop in here with an unpopular opinion. Increasing the texture resolution might not necessarily be the best solution. (cue audience gasp)

Not to say it’s never going to be the right solution, but I think that part of the problem is that Roblox doesn’t give us enough tooling to avoid higher texture resolutions.

I think there would be merit in first exploring ways that we can make smaller textures go further. It’s entirely possible we could use smaller, tiled textures to add high frequency details, such as concrete texture, fur, wood grain et cetera. Combine that with some organic tiling methods to break up repetition and you have a very good candidate for a base material - MaterialVariant already does this.

However, this leaves the question of larger variation, such as the large details of a character or large-scale variations in the textures of walls, unresolved. The way I propose this could be addressed is by using various methods to combine material variants. For example, imagine having a low-frequency normal map which stretches to cover an entire character, and outlines the basic form of all of the geometry on the character as perceived at the large scale. This can be lower resolution than normal because it does not have the task of modelling ‘micro’ details such as scales or bumps. On top of that, we could add a smaller, more often tiled material to represent the detail of the surface of the skin or clothing. These textures can also be lower resolution, because they visually appear smaller. This kind of blending allows for greater pixel density without massively increasing memory consumption by loading in larger textures.

Another possible use case would be material blending for solid surfaces, such as brick walls, and adding edge wear to meshes. I previously proposed such a feature request here.

This is not to negate the importance of having high resolution textures in some places, and it is not to negate the fact that having one texture is simpler in workflow terms, but we have to remember that - especially when it comes to textures - working smarter pays off dividends more compared to working harder. Using modern hardware or graceful degradation as an excuse to lob resources at stuff is generally never the right way to solve a problem.

Roblox currently restricts us from exploring these kinds of methods, because Roblox does not offer such blending and texture composition tools. I would hope that Roblox explore methods like these before increasing the texture resolution, because otherwise I fear that everyone will just use unnecessarily high texture resolutions for everything, even when it’s really not a good idea to.

20 Likes

This is a smart idea but, is a lot harder to accomplish correctly and efficiently. It’s a lot easier to just have 2K or 4K resolution and then, scale down, compress, reduce quality, etc based on the “general” hardware specs.

Real issue here is legacy devices. The more high quality images that I put in, the more memory I’m consuming. Legacy devices run incredibly slim. You have to deal with loading models / meshing with assets (images included). That’s a lot for a legacy machine to handle. A phone, unless it’s a cheaper android, can handle 2K and 4K without breaking a sweat.

I really do think the solution here is to just allow developers to scale down / compress images based on broad machine specs.

Either way, what we have now isn’t compatible nor competitive to the market.

5 Likes

The main problem with depending on resolution for detail, though, is that it doesn’t actually solve the detail problem if everything depends on it. If all of your models need high resolution textures to look good, but you’re not running on a machine beastly enough (and a connection strong enough) to handle having every single one of those textures loaded at full resolution, then you’ll end up with your textures degrading in detail anyway. I suspect this will be far more common than some people think, especially if people default to using 2K or 4K textures for everything unquestioningly, and especially for people in areas with poor connectivity or limited/metered bandwidth.

This leads you right back to the problem we have today, where you’re still going to have to manage detail on most of your assets to make them look any good on most devices. Not to mention that you’ll likely have to start signalling to the Roblox engine what textures should take priority to make sure key items like your character’s clothing and gameplay elements aren’t drowned out by the memory usage of other set dressing.

I think raising the resolution ceiling can help in cases but I’m wary of calling it a solution.

6 Likes

This is standard practice among every game or title that you can think of. You have a quality preset and you can use what the developer set or you can choose for yourself.

I don’t think that this is bad per-se. it’s better to degrade the texture a bit than to have a quality restriction among every device. It’s almost common sense that legacy / lower tier devices will have less definition to it. Most users should understand that by now.

Lower spec’ed devices and resolution are mutual. If one’s devices can’t handle it, it’s better to give a smoother experience with lower quality. If the device can handle it then, you can give them the “full” experience. Quite honestly, being able to play the actual game is better than a few image definition changes. Arguably, playing the game is more achievable than adjusting image resolution through painful steps and then, having the user experience be marginally the same.

Your solution is decent but, it doesn’t account for a few things: You need a decent amount of experience to execute it well and it doesn’t not take account for the user’s device. Just Roblox.

My fear is that they attempt to try out your solution, do it wrong and then, the experience is still marginally the same. Rather than just presenting the max image resolution per “broad” device type.

Sure, it’s not the best but, the margin of error is much lower.

5 Likes

To be clear, I have no problem with automatically downscaling images here. I’m more concerned about the effects of raising the ceiling and compensating only with automatic downscaling, rather than giving designers the tools they need to not require such large textures.

I also don’t have a problem with beginners using textures that are larger than they could otherwise get away with. My problem is that everyone has to do things the ‘beginner’ way right now because there are no tools to do anything differently.

4 Likes

Completely agree. Raising the ceiling without any real tools is bad practice.

I hate this but, I get why they do. Ease of use is important and I think when you attach more features, the over-lying concepts becomes trapped with noise.

Not only do we have to do it “beginner” but, the engine quite simply doesn’t afford us any tools to create to get around this. It’s like “that’s what you get” and you have to cope with it.

3 Likes

Great point. I think at this point in time, given the experience level with the average developer, it would make sense to both increase resolution and also start to work on additional features.

It is true that more experienced developers will be able to utilize these features, but many people will not, at least at first.

Yeah. Thats one of the points of Roblox is ease of use. I can’t see Roblox implementing a bunch of features like this without first increasing the resolution limit.

Bumping this again. I bought a 3D model from Sketchfab a few days ago, but since all the textures are 2048x2048 I get less detail in Roblox than I paid for. Because the game I want to use the model in is a VR game this is particularly visible.

I now have to edit the model myself to split all 4 textures into 4 1024x1024 textures which likely takes up as much memory as the original 2048x2048 textures would with significantly more work being needed. (I also can’t use the emission map at all without some trickery with decals, but that’s another feature request)

1024x1024 textures haven’t been the standard since the early 2010s, games have moved on to greener (and significantly higher resolution) pastures. Either let the developer freely use the texture sizes they want with them having to account for memory and performance, or make an automated system that sends smaller textures for weaker devices.

17 Likes

Bumping this again, roblox if you’re trying to mature the platform and make more users inclined to use it, then for god sake add 4k textures. Basically all game engines support 4k textures.

11 Likes

Bumping this. As a 3d modeler, most of my energy (and often time) is disproportionately spent on trying my hardest to maximize the size of UV islands for the sake of detail, while attempting to keep them optimized to roblox’s UV reading system. This is incredibly, stupidly painstaking for absolutely no reason. As others have said, 1024 x 1024 texture maps were the norm a decade ago- we’ve seen years and years of technological progression since then, but we still don’t have access to texture map sizes that are large enough to allow us to make detailed textures.

Even basic, low / mid poly models on sketchfab that could realistically be performant in roblox use multiple 2k and 4k texture maps. Why? It’s the norm now. Most, if not all, devices players use to run roblox can easily render these objects and their texture maps.

There is absolutely no reason we should not have larger image texture sizes (save for UGC- since they’re wearable in virtually every game optimization is outside of the developer’s control). Please give us higher quality options for UV maps and trust us to optimize our games, or base texture quality off of graphics settings.

9 Likes

Bumping this up cuz this just needs to be a thing.

4 Likes

4k images would be a good addition in overall. It just has to be implemented right so users with poor internet connection dont suffer from assets taking forever to load.

Would also help with making higher resolution PBR materials too! So yeah, support.

1 Like

I think they should probably give a warning when an image is uploaded with a high resolution if they do this. Personally, I’d still limit my textures to 1024x maximum and reserve high resolutions for more important things like my game’s minimap texture and large/important meshes.

4 Likes

Importing Textures as 4k to roblox instead of 1024p textures actually do have extra detail because of down sampling since Roblox automatically does this with all textures above 1024p.

3 Likes

Its 2023, this should have been a thing in like 2019. Guess the Roblox devs just don’t listen nor do they care.

4 Likes