2
$\begingroup$

I have looked everywhere and cannot find the answer to my question:

Let's say I have a sofa, and I want multiple textures on the entire mesh (not separate faces, but the whole mesh). I then want to switch between these textures (e.g. switch from a red sofa to a black sofa)

How can I do this?

I have made multiple materials, and multiple UV maps for the object. Yet I can't figure out how to assign a specific material to a specific UV map, and then switch between them to change the colour of the object.

Editing anything on one UV map changes the placement and texture on the other UV maps for the object.

Any help is appreciated!

$\endgroup$
  • $\begingroup$ You can create up to 8 UV maps and switch between them in Properties editor > Object Data tab. However in order to change black sofa to red sofa you shouldn't do that; switching between materials (and hence textures assigned to them) is possible only by assigning that material from list. $\endgroup$ – Mr Zak May 1 '16 at 14:38
  • $\begingroup$ Thanks for the reply! So how can I map these textures differently to the same object? I usually would go inside the UV image editor and move around/ enlarge or shrink the mapped mesh to change how the texture looks on the object. But doing this changes how all the other materials that I've applied to the same faces. It makes sense that it does this, but I'd like a way around to map each texture differently to the same object faces, so that when I switch between them, they're all still mapped in the ways I want them mapped. $\endgroup$ – Celeste May 1 '16 at 18:38
  • $\begingroup$ You can assign textures to use specific UV maps, not materials. A mesh face can have one material, one material can have multiple textures, and a texture can use a specific UV map. $\endgroup$ – gandalf3 May 1 '16 at 18:41
1
$\begingroup$

I find it's easiest to do this in Blender Render. (Green oval).

You only need one material and one texture, but a UV map for each couch pattern. Here I have 3 couch patterns so I'm using 3 UV maps. (Magenta circles).

Unwrap the couch for each pattern. For the red, I've used project from view. You can then scale and manipulate the mesh (in UV/Image editor) to reflect how you'd it displayed. (Red ovals).

RED COUCH

Do this this for each couch pattern, but make sure the correct UV Map is selected and the corresponding image is loaded in the UV/Image editor. (Purple ovals). For the pink couch pattern, I've used "Sphere Projection" unwrap.

PINK COUCH

Switching between the UV Maps in the properties window (magenta circle) will switch between the patterns and how you've set them up.

In Cycles:

Add the following nodes (You can easily do this by hitting spacebar and typing in the node name): UV Map (so blender knows what mesh coordinates to use), Image Texture (so blender knows what image to use), Diffuse (so there's actually light to see the image) and then Material Output.

Then follow the steps in red to switch between couch patterns.

enter image description here

enter image description here

$\endgroup$
  • $\begingroup$ That's really helpful thank you! But is there a way to change how each image is mapped to the sofa also? I want to position the each image texture differently. E.g. if I had a floral pattern, and a simple cotton pattern, set up like how you've explained. But I want each one mapped differently to the object. I want to be able to move things around in the UV map area without affecting the other image textures (or something similar at least). $\endgroup$ – Celeste May 1 '16 at 19:00
  • $\begingroup$ Yes! It's no problem. For that you need a separate UV for each, then in the image editor, map each texture or pattern the way you'd like. Don't forget to make sure that each pattern your mapping is loaded in the image editor, and that it's consistent with each UV map. I'll adjust my answer to make it more clear. $\endgroup$ – 360ueck May 1 '16 at 19:10
  • $\begingroup$ That is incredibly helpful! That's exactly what I wanted. Is there any way to do this in cycles? As I only render in the cycles engine. When I switch to cycles, this method no longer works, which is a pain, as this is just what I need! :) $\endgroup$ – Celeste May 1 '16 at 20:24
  • $\begingroup$ Yes :). Just add a node for each property (material, texture and UVMap), then switch between maps and image textures in the node editor. I'll add some pictures. $\endgroup$ – 360ueck May 1 '16 at 21:31
  • $\begingroup$ Thank you so much! You've helped me so much, and you've given me the exact answers I was looking for! :) $\endgroup$ – Celeste May 2 '16 at 19:56
0
$\begingroup$

You may be confused as to what a UV Map is. A UV Map is a set of coordinates that defines the way your texture is wrapped around your object's geometry. It doesn't control the color of your material, nor does it control which material or color is 'active' so to say.

The UV only defines the way and position a texture appears over the surface. If your textures for the red and black sofa are of similar size and proportions (say a repeating pattern with black or red colors) you may even use the same UV map for both, in fact, you are advised to do so if you can. It'll probably save you a lot of work and needless duplication.

What you want is a 'material switch', and this can be achieved in a few different ways:

  1. You can simply switch the material applied to a certain slot (downside is the material may be lost if you save and close the file and it is not used anywhere in the scene).

  2. If your material is applied to the whole of the, mesh create two material slots one with red material other with black, and then alternatively apply each one to all the faces as desired.

  3. Use the Select and Assign buttons on the material slots to quickly switch the material slot some face is assigned to.

  4. The material way, this is probably the most flexible one. If you are using cycles, just create your two independent node setups for each red and black sofa material inside the same Cycles material. Then, either use a Shader Mix node or a Texture Mix node, depending on how you build them - or how different each material is - to mix them together as desired using the mix value.

$\endgroup$
  • $\begingroup$ Thanks for the reply! But that's not quite what I mean. I want each texture to be applied differently to the object. For example, a checkered pattern and a striped pattern. I want the checkered pattern to be large, and the stripes to be small. usually I would go inside the UV image editor and enlarge the mesh inside it to make the pattern look smaller on the object. But I don't want it to change how the other materials look. I hope that was easy to understand.. $\endgroup$ – Celeste May 1 '16 at 18:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.