More separate textures on single mesh, dynamically changed

Hello everyone!

I am about to work on a project, but I am still in the planning and designing phase.
The idea is to have a handful of models which can be customized in various ways. One example is this site:
However, while it doesn’t seem like the mentioned site does this, I would like to apply multiple textures (or materials actually) to a single mesh.I believe it could be done in a modeling software like Blender (I do not create models however), but the idea is to have models initially untextured and programmatically texture different parts of them as users select different materials.

What would be the best approach to this? I was thinking of UV maps initially but I don’t have much knowledge when it comes to 3D applications/rendering in general.

Thanks in advance.

Hello KliPPy,

There are multiple ways to tackle this:

  • UV mapping gives object details via textures while reducing mesh size: great for repeating patterns, text, bump mapping, …
  • Sub-divide object into different components to customize: time consuming, but it is the most flexible approach
  • Create a custom fragment shader, where swapping colors are based on specific channel (RGB): it is an advance setup, but it will perform very fast
  • Multiple textures: this is still under development in three.js (plz someone confirm), but it might let you achieve what you want
  • Combine 2-3 of the previously mentioned approaches
  • Something more custom and specific to the objects displayed: all patterns will need to be identified in order to go this way


Thank you for the reply.

Now I’m wondering is there a way for a single mesh to have multiple UV maps for every separate texture (or material) I would like to apply, or something along those lines? So i’d have an arbitrary number of textures that could be combined on a single mesh, and with UV maps I would select what parts of the mesh would be textured.

I’d like to revive the posed question. Is it possible to assign different sets of UVs to different textures in a material? It is possible to do so in Blender, but when exported to gltf, material just uses the first set of geometry’s UVs for every map.