Average mirror\symmetry

I have a raw mesh, obtained from photogrammetry (see picture).

  1. I interested in head. (Neck i can cut off).
  2. Open holes and some model defects i can repair by some modelling and sculpting. So, model will be manifold.
  3. My friend wants lowpoly model for game industry. (I know retopology etc.)

The problems are:

  1. Photogrammetry model does not have “middle (symmetry) point”.
  2. Model is not exactly symmetrical.

Simple solution in Blender

  1. Define midpoint of nose tip as center of vertical symmetry.
  2. Rotate model around midpoint for approximately vertical symmetry.
  3. Cut model via center.
  4. Mirror and merge halfs
  5. Correct model in sculpting mode (symmetrical mode)

I did it, but resulting model not similar to original (I tried A-half mirror and B-half mirror)

The questions are:

  1. How to define “most certain” vertical axe of symmetry and rotation of head for defining A-half and B-half? (Maybe with help of any 3D-modelling software)
  2. How to modify A-half and B-half by following formula
    A-half_new= (0.5xA-half) + (0.5xB-half) and B-half_new= (0.5xA-half) + (0.5xB-half)
    as result A-half_new = B-half_new , so i obtain some kind of “average symmetry” for the model.

https://img.techpowerup.org/200201/641acf1efbaa73cb32dd23671a8aff0ac8c5c4cb-2-634x500.jpg

below i attached example of “average mirror”

Hi!

When we thought about this problem last time, we came with such conclusions:

Human faces are always assymetrical. As far as I know, there is no biological possibility to grow up having perfectly symmetrical face. So every attempt to make symmetrical face for whatever reason is faking this face. By making this you kill perception of aliveness of the character. I suppose that our visual system percepts lack of assymmetry as signal to warn about. Like “this something pretends to be a live person but it is definitely not”.

OK, we still live in the real world and artists want symmetrical characters to integrate into 3D-engine since nobody knows how to properly rig unsymmetrical ones. How can we achieve the result which will not destroy character’s personality? Finding a plane and smoothing the scan alongside it will almost always fail because in reality there is no such single plane. Nose of a person can have its own symmetry plane which doesn’t match with eyes symmetry plane. Ears and lips can have its own planes etc. We can be little closer to the solution if we find curved surface, which will approximate this “axe of symmetry” little better.

How can we find this surface (if it exists)? I don’t know what do to if you have raw scan. But you know which points on left side of the scan should correspond to the right side of scan. They can form a basis to find this symmetry surface. So you can do a little cheating. You can take symmetrical basemesh and wrap it onto the scan using such points. So the surface of the wrapped basemesh will become unsymmetrical, but the topology is still symmetrical. So now wrapped basemesh holds local information about unsymmetriness of the character. By local I mean for example, that the differece between corresponding polygons on the left ear and on the right ear will show us how unsymmetrical related to each other those regions of the ears are.

But we know exactly where topological symmetry of the basemesh is! The symmetry plane of the original basemesh becomes now curved surface. So now we can mix both parts of the basemesh to produce perfectly symmetrical result and in whatever proportion of left and right we want. The naive mixing will still produce freaky result, but we can make some tricks reinforced with more tricks like volume preservation.  And here comes the “FixSymmetry” node - https://www.russian3dscanner.com/docs/Wrap3/Nodes/FixSymmetry/FixSymmetry.html .

You can see how it works here: https://vimeo.com/187608159. This example operates with bodies, but in the context of the task there is no difference at all.

Ivan