Results 1 to 2 of 2

Thread: Two new flexible takes on mirrored objects:mirror twin vertex data||virtual endomorph

  1. #1

    Lightbulb Two new flexible takes on mirrored objects:mirror twin vertex data||virtual endomorph

    This feature proposal has two subsections, -either of which- could provide abstraction between the actual shape of the object and the concept of acting symmetrical, while being totally backwards compatible. Section 1 is a future proof method, while section 2 is much easier to implement, as it doesn't require fundemental changes to the current mirror system, while providing the abstraction.


    ----section 1-----
    Summary:
    For every vertex that is on one side of the symmetry, there should be a new vertex data containing the id of the vertex it is paired to as a mirror, plus optional extra data *1.

    Explanation:
    This proposal brings a new symmetry concept to the table, symmetry using mirror-pair information. For every vertex mirrored using the mirror tool, the mirror tool will write on a new data for each vertex, that being the ids of the mirror twin vertices.

    This allows us to have a symmetry mode that is not affected by positional discrepancies caused by rotations, scalings, translations and other miscellenous modifications. This method allows us to intentionally break the symmetry on positional level, but reserve the ability to further modify the mesh symmetrically. *2

    The symmetry tool will no longer look for positions, but the vertex data id's for its job.

    Two extra tools must be provided:
    'make points symmetric': a tool that not only positions vertex symmetrically, but also writes in the twin vertex data. (same as many of the make symmetric plugins, additionally writing the vertex data)

    'scan symmetric points': this will convert the older symmetric objects and write in the twin vertex data. This will also be useful for converting the newly created points by 3rd party applications that does not support the new vertex data, but only the positions.

    ----section 2----
    Summary:
    Instead of reading twin pair vertex data from each vertex, the virtual symmetry information could be read from positions, just like the current method, but not from the base object, but from a hidden absolute endomorph When ever the mirror tool is used, the mirror tool not only mirrors the base object, but stores a hidden absolute endomorph for reading the positions. Being absolute and hidden, the positions are never affected by further modifications.

    Explanation:

    The possibilities are same as above.

    Two extra tools must be provided:
    'make points symmetric': a tool that not only positions vertex symmetrically, but also modifies the hidden absolute endomorph.. (same as many of the make symmetric plugins, additionally modifying the hidden endomorph)

    'scan symmetric points': this will convert the older symmetric objects and create the hidden absolute endomorph. This will also be useful for converting the newly created points by 3rd party applications that does not support the new vertex data.

    -------------

    Notes and extra tip and information to keep in mind until such a feature is implemented:

    These methods provide an abstraction between symmetrical concept and the actual shape of the object. The objects form is independent of being symmetric. Both of these ideas spawned from the fact that, while working with endomorph, no matter what you do, you cannot break the virtual symmetrical relationship. This is also a very important aspect of my current workflow. Once I set the geommetry and after I mirror the object, I never work on the base object for further modification, but on the endomorphs, so the symmetry is never broken. This gives me the possibility to break the visual symmetry but keep the virtual symmetry relation. I encourage everybody to use this principle.

    Even with this in mind, there are times you have to work on the base object instead of the endomorph, e.g. applying a relative endomorph to make a gradual change, adding some new geommetry etc. And every now and then, you'll find the symmetry is there no more, for some points. Worst is that, you have gone beyond doing the UV's and some other rigging, and mirroring would be a disaster. If the symmetry info is read from the base object, why couldn't it be read from a vertex data (harder to implement) or a hidden absolute endomorph (much easier to implement)? So here I make these suggestions. Section 2 esp. is very easy to implement, and this is going to be one sexy new feature of lightwave.

    -----

    1* The added optional data may be the symmetry style, for potential future symmetry options.


    2* This currently can be done by working on endomorphs instead of the base mesh. But you can't keep working on the endomorph forever, and it is not -as- intuitive as lightwave doing all the background work for you.

  2. #2
    Oh well.. The (preferably hidden) absolute endomorph to store the symetry is ultra easy to setup, and a less functional lscript version could be programmed, here is the workflow (not as good as if NT implemented it):

    Model your object, use mirror and then store your object in an absolute endomorph. Try to work in endomorphs for changes. But in case symmetry on the base mesh breaks put the base mesh in an absolute endomorph, replace the base with the stored symmetric endomorph. Keep on working from there.

    This workflow could be made a lot faster with one or two helper lscripts. But I'd prefer NT could come up with a 'mirror with hidden absolute endomorph for symmetry referencing' (suggestion number two). With the best solution being solution one, semantically thinking.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •