3
$\begingroup$

I'm trying to mirror an object like this (see picture) such that the mirrored object behaves exactly like it would using the Mirror Modifier - that is, mirrored transforms and mesh. Currently I have achieved this using drivers and linking mesh data. But can it be done by not using drivers - either by modifying the Mirror Modifier itself, or creating a custom modifier, or by linking a modified source object data, or any other method?

I'm really grasping at straws because I have no idea about the directions this can go in.

PS: Note that using the array modifier with an object offset is no good since it needs the transforms to be applied.

PPS: You can suggest an Add-on if you know any.

Mirrored Sphere

$\endgroup$
2
  • $\begingroup$ maybe you want to do a center point symetry (there is no such functino integrated I think) ? I don't really understand why you want to do this... You may use animation nodes, by substracting some vectors, it can be done pretty easily $\endgroup$ May 23 '17 at 8:59
  • $\begingroup$ @PascalNardi: I don't know animation nodes. Okay, I will look into it. I'm writing a script to generate a procedural scissor lift and I once I have made one zig-zag ladder strand, I want to mirror it in the X and Y to get the other strand of the ladder. This can only be done by flipping it twice as mentioned, and obviously I want the location and mesh mirroring the source. $\endgroup$
    – Log
    May 23 '17 at 9:47
4
$\begingroup$

Point Reflection.

As pointed out by @RobinBetts can achieve point reflection by using the array modifier, with offset object and the offset objects scale inverted.

enter image description here

In this case have constrained the offset empty's location to the inverse of the original.

Rotate the Mirror Object.

If the object already has symmetry in X & Y

enter image description here

The mirror object set via the modifier acts like the mirror plane. Rotating the object, rotates the reflection.

In example above, mirroring in $X$ axis, which is normal to the mirror plane, and at the location of the empty. Any 3d plane can be defined by a point in space, and the normal vector to the plane

Similarly could mirror in $Y$ and rotate empty 45 to achieve same result.

$\endgroup$
7
  • $\begingroup$ That's is not a point reflection. Try it with an object that's not a cube or a sphere, like the letter F for example and compare it to the picture in this article: Wikipedia: point reflection $\endgroup$ Apr 26 at 9:48
  • 1
    $\begingroup$ @GordonBrinkmann Point reflection could be an object-offset array through an object scaled to -1 in XYZ.. I don' think it's very clear what OP Log wanted. $\endgroup$ Apr 26 at 10:59
  • 1
    $\begingroup$ Looks like animation nodes was only suggested, rather than requested. May never know since OP has been inactive > 2yrs. Cheers for the heads up, will test with F's in the future, lol. $\endgroup$
    – batFINGER
    Apr 26 at 12:11
  • 1
    $\begingroup$ @batFINGER, don't forget to put a Z-axis-knob somewhere on your F... ( I can't believe I'm having this conversation :) ) $\endgroup$ Apr 26 at 12:19
  • 1
    $\begingroup$ :D What I like about my Geometry Nodes version is that you can always reflect the object relative to the origin of the empty, no matter where the objects are. The only thing that bothers me is that the normals are flipped because of scaling Z by -1. I don't know how to flip/recalculate normals in Geometry Nodes. $\endgroup$ Apr 26 at 13:21
3
$\begingroup$

If it's point reflection you would like to achieve, with Geometry Nodes I would do it this way:

  1. Subtract the Location of the target object from the Location of the mirror object with a Vector Math node (set both Object Info nodes to "Relative", so both objects are independent from the World Origin).
  2. Multiply the difference by 2 with a Vector Math node.
  3. Plug the result into the Translation input of a Geometry > Transform node.
  4. In the Transform node, set 180° for Rotation > Z (leave X, Y at default 0).
  5. For Scale > Z set -1 (leave X, Y at default 1).
  6. Plug the original geometry and the transformed geometry into a Join Geometry node that goes into the ouput.

Here's the node setup:

enter image description here

$\endgroup$
2
  • $\begingroup$ Agree it's nice to have the point-origin of reflection where you would expect it to be. On the normals. struggling! Are polygon Normals write-only? Looks like it. $\endgroup$ Apr 27 at 6:16
  • $\begingroup$ I really don't know. I just thought since there are functions like Flip Normals and Recalculate Normals in Edit Mode there might be something comparable in Geometry Nodes . $\endgroup$ Apr 27 at 6:36

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.