Trim Sheets Vs. Tileable Materials

Hi there! So I’ve recently started getting more in depth into optimizing texturing for game-ready environments, and I only just learned about trim sheets and their application. However, I was curious as to general thoughts as to when to apply tileable materials vs. when to apply trim sheets. It is based more on personal preference? What’s the safest way to gauge what would work better?

For example, I’m creating an environment with a lot of wooden beams, many of which have different dimensions to them. Would it be smarter to unwrap the beams in a way that I could apply the trim, or where I could simply apply the tileable material? When it gets to creating a variety within the wood so it’s not the same kind every time, is it smarter to create different wooden materials for each trim section on the sheet and overlapping UVs that way, or simply create four different instanced materials, each with different tiled wooden materials where I could then use that wood for different sections of the environment as well?

Thank you! I appreciate any and all feedback :slight_smile:

Trim sheets are tileable materials, they just typically only tile in one direction and are used for things like… well… trims.

For a wooden beam I would just use a fully tileable material. If you don’t want all your beams to look the same I would just instance the material and offset the texture coordinates in each one, you could do this with a construction script blueprint so that you didn’t have to fill up your project with material instances. Epic does this in their particles demo (learn tab of the launcher) for the fog sheets, if you want an implementation to look at.

You could also add a some color parameters and a normal flatten node to get added variation out of the material. Could even set up your construction script so that it picked all the parameters at random (within acceptable ranges) when the object was placed.

My 2cents would be to push as much of this to a general material and just make ‘wood’.

Have a wood-texture, but mix in a world-aligned detail, or something set to world coordinates so as you move the wood around the world, it’s always got something unique. That way as you place beams, they would ‘automagically’ be differentiated in some way.

You can add additional maths/variation using per-intance-random. I recommend using Frac and working off the decimal portion. Clamp it to make sure you get values inside a range, although this method tends to ‘bunch’ at the edges. LERP can work too. Plug the random into the Alpha and set A/B as min/max; this would tend to remap/soften the values w/o such a hard falloff like Clamp.

I wouldn’t even make a trim-sheet unless you need something like carvings or other worked-details you might apply as, well, trim… :smiley:

If you need just straight-up-wood to make a buncha beams and general stuff, scaffolding, etc, I’d make a master material and try to do 100% in there.

1 material instance = less draw calls.
if you got into optimization that’s pretty important.

Instance the beams (using the same base geometry will do it automatically) make sure they all have the default instance applied.
work the material shader to automatically generate variations.

A good way to do that is to use a world aligned texture as the alpha for fading different textures in.

Because of the nature of wood, you coold also change the hue based on the per instance random as suggested above.