Smart way to texture modular tiles

Godot Version



Constraint: Assume the user wants to use realistic quality textures (which would be an arbitrarily high resolution, take up a large amount of memory.

What would you use as a rule of thumbs or starting point when deciding on the balance between the following two tools for texturing your 3d meshes?

A) Number of (4k) Textures (in memory). Baking different mask permutations of various mono surface materials (stone, moss, wood, etc) into many high-res textures, each texture corresponding to a “lego” piece level tile.

B) Godot Shader complexity. Minimize the number of textures used by relying on a combination of a small set of mono surface textures and texture masks (corresponding to 1 tile type each) and other fancy shader nodes to mix and overlay textures based on properties such as surface normals.

Screenshot: In the screenshot, you can see a single type of hexagon shaped tile of a straight corridor. Examples of other tiles include a corridor taking a 60 degree turn, or a 120 degree turn, or an evenly space 3 way fork junction, or stairs in the vertical axis, or stair versions of angled corridors, or the edge of a room, or a different “biome” kit. I have never really worked on texturing before, so I think I am very likely to choose a very unoptimized heuristic.

Geometry: The geometry complexity is trivial, with very low vertex count.

Culling: Given the closed “dungeon”, there would be LOTS of culling. Not a lot of meshes on screen at a time.

Target Aesthetic : In this example, I might use a rock texture for my over-sized bricks, some dirt etxture in between the bricks, maybe crudely shaped marble tiles on the floor, wooden beams, tree roots inside the large gaps between the bricks. Maybe even some metal beams.

TL;DR Should I use masks and a small set of materials, or have a set of textures for each lego piece (out of say, 100 different pieces). Are both approaches equally limited and impractical given that mask textures would have to be 4k sized to match 4k mono-material textures being applied? Or can texture masks of a much smaller size be combined with high resolution mono-material textures given the low geometry quantity?

I don’t understand what you mean with option A or B. I have no experience in texturing things.

This one I found interesting though and gave me some ideas: