Double-sided Decals

As a roblox developer, it is currently too hard to put decals on transparent surfaces. For instance, I’m placing a decal on a window like a decal. I’d like for the decal to go through to the other side so it will appear backwards from inside the store. This would keep users from having to upload two images for one decal. Not only could this be used for decals on transparent surfaces, but it allows for flags to be made a lot easier. Finally, it would save storage space on roblox servers and replicate less assets to the client. Here’s an example of my scenario:

This would be a nice little check box that could make life a lot easier. Thanks!

21 Likes

Yes please! Additionally, I think it should be an Enum as opposed to a bool value:

Enum.DecalDoubleSidingStyle.None - the image is not replicated
Enum.DecalDoubleSidingStyle.SamePlane - the image is replicated in the exact same spot
Enum.DecalDoubleSidingStyle.OppositeFace - the image is replicated to the opposite surface

DecalDoubleSidingStyle is a mouthful, so it would probably be something different. Still, finer control would be nice to have.

5 Likes

You could create a MeshPart where the uv map is mirrored on the opposite face.

I’d prefer a more generalized feature for transforming textures, so instead of setting the decal to be double-sided, you’d create a second decal and mirror the texture somehow in the API.

6 Likes

I’d have no opposition to this approach, but for people who aren’t into scripting, it may be confusing. A property would help with that.

1 Like

Texture transformations could be implemented as a property with a new type. It would be possible to create this new type in a script, or edited via its properties in studio. The value could contain data like mirroring, be an alternative to ImageColor3, and potentially allow for texture compositing. A feature for mirroring MeshParts would also be very useful.

1 Like

I think something like this would be acceptable for a feature. The current method I use is a bit strange but it ensures a 2D placement.

Here’s my method for the time being. The decal is placed on the surface of the blue block that’s against the window’s surface, and the red block also has that same decal, but it is facing inward. Using the exact same decal asset is doable but only for decals with horizontal symmetry. Otherwise, your second decal will have to be mirrored horizontally.