As a Roblox developer, it is currently too hard to scale meshes/models in a way that suits the individual needs of a build.
Stretch scaling limits how meshes can be adapted to different proportions. Currently the options are:
- Stretch Mesh: Just stretch your original mesh. It will probably warp grotesquely.
- Unique Meshes: Modify and reupload a new version of the mesh for each new situation. Uses tons of different meshes for the same purpose. Difficult to organize, lots of extra work, and high memory usage at scale.
- Individual Components: Break model down into lowest common denominator of components. Uses many parts, which becomes difficult to organize and reduces performance at scale. This problem is further compounded if components require additional separation for functionality such as recolorability.
I believe the following scaling features would solve this problem:
Mesh Slice Scaling
Slice scaling would work much like 9-Slice scaling for UI. Developers would specify 2 points on each scalable axis that would designate the scalable region. They could then resize the mesh without the undesirable stretching of the end pieces.
By setting slice points, user could stretch fence without having to upload a differently sized fence or building the fence out of 3 separate components.
Tiling could work similarly to texture tiling or grid layouts. Players could specify the properties of the cell, and it would tile as it stretched.
Ideally these systems could work together. Being able to select a specific region within the mesh to tile would be allow for the greatest potential for use and performance improvement.
By setting slice points and tiling, the user could create a resizable fence with repeating fence posts
- Reduce the number of unique mesh ids required for a build, potentially lowering overall memory cost
- Reduce the number of unique instances and parts required, further reducing memory and physics processing.
- Allow developers to remove unnecessary faces from repeating patterns, aiding rendering
- Allow developers to pass usage onto players for enhanced UGC options.
- Make world development, maintenance, and organization much easier
There are many cases that would benefit from this tech. All of the following examples come from RoCitizens. Each example shows a high part count build with a repeating pattern that could be reduced to a single mesh or handful of meshes with proper scaling options. If anyone has any others, please add them in the replies!
Note: while some of these could be achieved with textures, there are often similar cases where 3D is the preferred or only option
Roblox modelers & builders often live in fear of the ominous part/poly/mesh count destroying the performance of their builds. These features would not only help performance, but also make building & maintaining these types of models much easier. Thank you for your consideration.