As a Roblox developer, it is currently impossible to create beautiful worlds using textured MeshParts. To my knowledge, image upload size is limited to 1024 pixels on the largest dimension, and this is grossly insufficient since MeshParts can be scaled up massively. Scaling up MeshParts to sizes larger than the character is required to create anything other than tiny inconsequential props, such as terrain and architecture.
An excellent example of the horrendous consequences of this hard limit can be seen all over the place in the current sponsored Wonder Woman game. This game is clearly trying to push the envelope by using textured MeshParts and smooth terrain for the entire world, and this falls completely flat in many places due to textures on large MeshParts appearing grossly blown up with pixels muddy and almost as large as the character is.
This game makes great reuse of MeshParts. Increasing texture size for these large pieces of geometry is a theoretically negligible cost for a dramatic improvement in visual quality.
To preface the rest of this feature request, I realize that textures are typically the largest memory sink in video games. I don’t care; as a developer, I want the option to be able to use high-resolution textures. I will accept the consequences and balance my game’s data requirements myself.
Here are some particularly gross examples:
In my own projects, I’m currently looking into using textured MeshParts for showcase purposes, but to achieve the amount of detail needed to cover a large wall with grunge and dirt without having the depth-sorting issues inherent with Decal and Texture instances, I would need to use many, many stacked and textured smaller MeshParts. Custom materials might partially alleviate this but would not solve many issues shown in this topic. I could use a tiling texture and subdivide and overlap UV islands over this tiling texture, but obviously this results in unattractive tiling in most cases, which defeats the purpose of a showcase, and in real game applications may not always be desirable either.
Developers that know what they’re doing should be able to upload textures as large as even 8192 pixels if needed for large pieces of geometry. With a large amount of re-use of the same texture, spending 5-30 seconds downloading a texture like this should be fine. Breaking these meshes up into many smaller MeshParts with their own textures, or severely micromanaging UV maps unnecessarily increases development effort and either increases the number of instances required in-game to achieve the same appearance, or increases the repetitiveness of textures and makes it nearly impossible to bake attractive lighting.
Babyproofing the platform and holding our hands because phones and old devices do not have enough memory for games with 40 unique 4k textures is disheartening and unnecessary, especially when we already know that overusing huge textures is foolish. We know what we’re doing, let us optimize our games for both appearance, and performance. Developers who want to push the envelope end up with PlayStation 1 era graphics.
Other applications of larger textures can include full-screen images, which are usually used for loading screens and intro/splash screens. Display resolutions these days are usually 2k or more, so doing full-screen images requires breaking the image up into several smaller ones and stitching them back together in-game.
Please dramatically increase this limit. Provide an option when uploading decals to have them automatically downscaled to 512, 1024, and 2048 px with the default left at 1024. Warn developers that large images are expensive. Let developers themselves choose whether or not they can afford larger textures.