World Aligned Materials/Textures, please

As a Roblox developer, it is currently too hard to align textures to world-space.

Many engines have the ability to align textures to the world, not the object - As demonstrated in this video:

World aligned textures, to put it simply, are textures that use the environment to align themselves, rather than the object itself.
When aligned to the world, moving the object also moves the texture - If you rotate the object, the material will always be facing “up”, for instance. (imagine Wooden Planks material on a part, and rotating the part sideways keeping the planks ‘upright’). When moving a part to the side, the model will act more like a window, showing the texture as the world has it aligned behind it.

This is a powerful tool for building, as it means no matter how complex your building gets, the materials on the parts will be 100% seamless, since the textures will all be aligned together, with the world, completely seamless with each-other.

I think this feature would be extremely useful in roblox, as there currently is not a lot of ways to manipulate textures. Currently, it is very difficult to make certain things “align”… Things like wooden planks usually align together, given they’re correctly aligned, but that illusion quickly starts to break down as you use more parts, with different positions, sizes, and even rotations.

Something I’ve been working on recently makes a good example - I’ve been trying to make a cliffside out of parts, using different CFrames (The good ol’ fashioned way!). The problem is, the various cliff ridges and edges, all using the Slate material, do not line up in any way! Two parts next to each-other, especially if they’re clipping inside each-other in any way, will constantly clash against eachother.

The ability to make a part or material (Could work with the already-existing material variants system!) have a world-aligned property, and a property for U/V coordinates to control on individual parts, would make roblox such a treat to use, and make Z-Fighting much easier to fight (since World-aligned parts would have identical texture coordinates, and likely not z-fight much)

I’ve seen many posts on the help sections asking about how to align textures, but found no feature requests when searching, so I figured I should make one.

Do any of you have uses for this sort of thing? I can certainly see using it in practically every game I’d make, so IMO it has tremendous use case variety.

37 Likes

Agreed.

13 Likes

this would be mad useful :pray: :pray: :pray:

4 Likes

I’d very much love this to be a real feature. The amount of times I’ve built things and needed something like this is immeasurable. I’m not sure how much of the backend Roblox systems would need to be changed, or whether a new shader can be made that can be assigned via an Enum, e.g. MaterialMappingMode or something like that.

I like to tween the size of objects before destroying them sometimes. In doing this, the current behaviour causes those parts to shift their material UVs so much that it makes the animation look completely unrealistic and sort of disgusting to look at.

Another problem this supposed feature could tackle is z-fighting. A shader-graph solution I whipped up in Unity solved z-fighting with this due to the different objects using the same material UV coordinates in 3D space. Those being world space coordinates, rather than being derived from a random offset when the part was created and its current size.

4 Likes

I agree, i’ve been working on a realistic project recently involving sidewalks with Material Variant textures. The only way to get the textures/sidewalk lines to line up correctly is to union the two opjects which isnt always the best solution.

Unions, or otherwise known as CSG, have had improvements made to them over the years. But these improvements and optomisations still haven’t caught up enough for them to be practical at larger scales. That and the fact they still save their part history means there’s a lot more data for the player to load at runtime than that of a mesh. And converting all your unions to meshes isn’t always possible.

1 Like

The Hunt: Mega Edition could use this, lol.

The floor material breaks down at the color change!

3 Likes