Mirror Geometry

 
Result of a Mirror Geometry layout node

The Mirror Geometry node allows to mirror the geometry of affected Entities.

The Mirror Geometry node is applied on the geometry only, and its results won't be visible on nodes such as Posture and Rig.

Add node


Mirror Geometry node in the Layout Graph Edition panel

Node parameters

Parameters are accessible by double-clicking on the node in the Layout Graph Edition panel:


Mirror Geometry node parameters

Name Name of the node
Active Whether the node is active or not
Mirror On Entity Pos If true, the center of the mirror operation for each entity will be it's own position (local mirror). Otherwise, all entities will use the same mirror center position (world mirror)
Mirror On Entity Ori If true, the center of the mirror operation for each entity will be it's own orientation (local mirror). Otherwise, all entities will use the same mirror center orientation (world mirror)
Mirror Offset Pos Position offset to add to the mirror's center. If not using the Mirror On Entity Pos option, this is the unique mirror center position.
Mirror Offset Ori Orientation offset to add to the mirror's center. If not using the Mirror On Entity Ori option, this is the unique mirror center orientation.
Use Reference Frame Index

If set to true, a reference frame will be used to get all entity's position/orientation. If not, the mirror's center will be done on the entity's position/orientation of each frame (which means that the mirror's center may vary over time when an entity moves)

Performance might be affected depending on this value. Check the Layout Editor Performances page for more information.

Reference Frame Index

The reference frame index to use to get the entity's position/orientation to use as mirror center

Performance might be affected depending on this value. Check the Layout Editor Performances page for more information.

Configuring the correct mirror parameters

Configuring the mirror can be more complicated than it seems at first tought.

With mirror on entity pos/ori OFF

When the mirror on entity options are off, the mirror acts like a giant mirror that would reflect entities like as in the real world:


Mirror plane: original entities are on the left (on poptool slots), mirrored entities are on the right.
The mirror plane has a null offset pos and ori, and is configured with mirror on entity pos and ori to Off.

The mirror can be moved and rotated thanks to the Mirror Offset Pos and Ori parameters:

Changing the Mirror Offset Pos on X axis Changing the Mirror Offset Ori on Y Axis

Note that like real mirrors, changing the offset on some axis has no effect on the reflection.

 

The mirror with mirror on entity pos/ori set to OFF is the simpliest to understand, but the drawback is that when using it on a lot of entities, they will all be moved in a way that is not always practical. Setting the Mirror on entity pos/ori to ON allows to mirror each entity on its own spot rather than relatively to a global mirror plane.

With mirror on entity pos/ori ON

When the mirror on entity options are on, then the node acts like each entity had its own dedicated mirror, centered on its pelvis:


Mirror plane: original entities are facing the camera (on poptool slots), mirrored entities are looking the opposite way.
The mirror plane has a null offset pos and ori, and is configured with mirror on entity pos and ori to On.

The mirrors can also be moved and rotated thanks to the Mirror Offset Pos and Ori parameters, but this time it's moved/rotated in the entity's coordinate system:

Reference frame for the mirror offset on entity pos/ori:
Z up and X front
Changing the Mirror Offset Pos on X axis Changing the Mirror Offset Ori on Z Axis

Note that here also, changing the offset on same axis has no effect on the reflection.

Using the reference frame index

The problem when using the mirror on entity pos/ori, is that as the entity is moving, the mirror is also moving, and this produce animation that are usually not desired:


Using a mirror on entity pos/ori on a moving entity, without reference frame index

To counter this effect, one can simply use a frame reference, and the position/orientation of the mirror during the whole timeframe will stay at the position/orientation at which the entity was during the given frame:

Reference frame index at 2 Reference frame index at 200