5
$\begingroup$

When I use object mapping and use an empty to position decals on objects, the relationship is not preserved in linked instance of the group of objects. Is there a way to force the decals to stay in their original location?

Let me explain:

On the left we have a cube and an empty. The blender logo on the cube is positioned using the object coordinates of the empty. Now I grouped the cube and empty, and created a group instance on the right. As you can see in the rendered preview the position of the decal on the linked cube is not the same as the original. Is there a way to make it so?

Solid view Rendered prieview

P.S. Using UV's is an obvious way but as in my particular use-case I have an array of cubes, I will have to apply the array to use UV's. Object coordinates help keep a non-destructive workflow.

$\endgroup$
  • $\begingroup$ Nice question, Curious about this as well. Have you tried parenting the empty to the cube, see if it makes any difference? I am guessing this is a limitation of the current system $\endgroup$ – Duarte Farrajota Ramos Aug 8 '17 at 17:33
  • $\begingroup$ Tried it right now, same behavior. $\endgroup$ – qwazix Aug 8 '17 at 17:47
4
$\begingroup$

Vector math

You can get get rid of the dependence from object's transformation with vector math. Take for instance the location: by subtracting to the empty's object Texture coordinate the location coordinates of the rendered object you find in the Object info node.

enter image description here

enter image description here

Now all your instances will look the same as the group whatever their location is.

Notes:

  • this works only for location, rotation and scaling of the instances require more complex math
  • there is no need of assigning the empty to the group
$\endgroup$
  • $\begingroup$ Wow! Impressive solution. I'll give it a try. $\endgroup$ – qwazix Aug 8 '17 at 20:48

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.