3
$\begingroup$

This might be a silly question, but I wasn't able to find any relevant solution when googling.

I have a mirrored mesh. How do I mirror the texture applied to the mesh? I would like to have both wings have the same texture.

I tried playing around with texture coordinates and math nodes, but didn't even come close to a relevant solution. And I haven't used UV maps yet at all, so feel free to tell me to go learn if that's the way:)

Edit: The wings will also be animated. They are parented to an empty between them and both the empty and the wings will be rotating around Z.

Thank you!

enter image description here

$\endgroup$
3
  • 2
    $\begingroup$ Is this a single object with a Mirror modifier? If so, unwrap it, turn on mirroring of UV coordinates in the Mirror modifier, then use UV Coordinates for your voronoi texture $\endgroup$ Dec 9, 2021 at 10:28
  • $\begingroup$ Although I already posted an answer, I will refine it a little more. $\endgroup$ Dec 9, 2021 at 11:58
  • $\begingroup$ I've added another example for why the 3D approach gives you more options than a 2D solution. $\endgroup$ Dec 9, 2021 at 12:38

1 Answer 1

6
$\begingroup$

EDIT: I've changed the answer a few times because I realised you can achieve different results easier than with my first solution. Here are some examples from very simple to a little more complicated to get more control.

2. EDIT: Since you've added in the question that the wings should be animated and rotating around an axis, I've made new version which is a bit more complicated, you'll find it at the end of this answer together with a blend file.

But here is the most simple version for mirrored procedural textures without the need of unwrapping UVs (let's say you want a 3D texture not mapped onto the surface): Use Texture Corrdinate > Object with a Vector Math node set to Absolute, this way the texture is mirrored on all axes across the object's origin.

mirror all axes

If you want to mirror only on one axis, you can simply do this by using the Separate XYZ node and only setting that value to Absolute which axis you want to mirror, for example X, then Combine XYZ to get the vector for the texure:

mirror one axis

If you want a mirrored texture but somehow make slight variations between the left and the right side, you can do this by using the same Voronoi texture twice and mixing the left and right side together using a Greater Than > 0 node and a Color > Mix RGB node, for example in the next image thetexture is mirrored, but one side is greyscale and the other colored:

different sides

A last example for something you simply couldn't do if you would have to use UVs: here you have mirrored 3D volumetric balls inside the object.

volumetric balls

So, here comes the version to be moved around (more or less freely):

To achieve that, first of all I need the wings object. It's the right wingside mirrored on an empty's X axis (cross shape in example) and parented to it.

To rotate the left wingside correctly when the right is rotated, I'll take a second empty (cube shape) with a Copy Rotation constraint with the wings object as Target, copying and inverting all axes and setting Target and Owner to "Local Space".

This cube empty is parented to another empty (circle shape) which is used to moving and rotating the wings around in world space. The circle empty has Copy Location and Copy Rotation constraints, both targeted to the circle, all set to "World Space" except for the rotation Owner > "Local Space".

All objects have their origins in the same location. To combine them in the Voronoi material I use the follwoing node setup:

moving mirror texture

With this setup you can move and rotate the complete wings by the circle empty and flap the wings by rotating the wing object:

moving wings

Because this is all very complicated, here's the file:

$\endgroup$
5
  • 1
    $\begingroup$ Thank you! I used the Math node instead of Vector Math, after switching the nodes it worked. However, one thing I forgot to add (and I will edit the topic) - the wings will be animated. When they flap, the original's texture stays, while the mirrored wings' texture changes with movement. Any way to prevent that? They are mirrored on the Z axis, on an empty between them and will be also rotating on the Z axis. $\endgroup$
    – David
    Dec 9, 2021 at 12:40
  • $\begingroup$ @David You're welcome, I tried a little here and there as well to come to this result. I guess there might still be room for improvement and of course you can go on and make it far more complex, but just to mirror a texture this should be sufficient. Oh, I just read your addition with rotating the wings... Well, that's a problem actually. They would rotate with the object if the whole object is rotated.... maybe I will find a solution for that, but I'm no expert in normals manipulation. $\endgroup$ Dec 9, 2021 at 12:50
  • 1
    $\begingroup$ No worries, for now I just duplicated and rotated the object without the mirror modifier, it will be a bit more work to animate but luckily it's not a complicated animation anyway. A very pleasant side effect of your answer was that it made for a much more pleasant pattern on the wings, so I'm very happy about that at least. $\endgroup$
    – David
    Dec 9, 2021 at 13:22
  • 1
    $\begingroup$ @David There it is, a setup to move and rotate wings around and keep the texture mirrored in place. I've tried to explain it but didn't want to write too long, so there is also the file to download which I used for the animation. $\endgroup$ Dec 9, 2021 at 16:30
  • $\begingroup$ thank you so much! $\endgroup$
    – David
    Dec 9, 2021 at 19:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .