Difference between revisions of "Morph Target Community Proposal"

From Second Life Wiki
Jump to navigation Jump to search
Line 21: Line 21:
Qarl's mesh deformer has the benefit, and caveat, of deforming a rigged mesh in accordance to the avatar's current shape automatically.  The reason why some may see this as a caveat, is because this doesn't ensure correct deformation all the time.  An example of where this may be undesirable can include custom mesh avatars, where the entire avatar mesh is replaced.  A content creator may want to make their avatar's belly deform differently than the avatar mesh's belly does, or may want to have their avatar's breasts deform differently.  This is a problem that morph targets could easily solve, by putting content creators in control of how a rigged mesh deforms.  The mesh deformer also currently depends on the content creator making their content around a specific shape for it to work properly.  Morph targets would lessen the need for this to some degree.
Qarl's mesh deformer has the benefit, and caveat, of deforming a rigged mesh in accordance to the avatar's current shape automatically.  The reason why some may see this as a caveat, is because this doesn't ensure correct deformation all the time.  An example of where this may be undesirable can include custom mesh avatars, where the entire avatar mesh is replaced.  A content creator may want to make their avatar's belly deform differently than the avatar mesh's belly does, or may want to have their avatar's breasts deform differently.  This is a problem that morph targets could easily solve, by putting content creators in control of how a rigged mesh deforms.  The mesh deformer also currently depends on the content creator making their content around a specific shape for it to work properly.  Morph targets would lessen the need for this to some degree.
==Morph Target Advantages==
==Morph Target Advantages==
Morph targets would enable greater control over how a clothing item would "fit" on an avatar.  Tools already exist that allow content creators to check the fit of their clothing using rigged meshes using existing rigging techniques, and with morph targets, not only will they be able to use existing rigging techniques, but they'll have an even easier and more customizable solution to allow them to create a much broader range of clothing that fits avatars in far more realistic ways.
There are a few advantages of morph targets that existing solutions do not provide.
 
Testing these morph targets would be a somewhat trivial process, and could be done directly in whatever 3D application the content creator uses.  No additional tools would be needed to make morph targets work for content creators; they already exist, and have for several years!
 
They can also operate faster than the upcoming "Mesh Deformer" by Qarl Fizz.  No setup is required beforehand for a morph target to work, meaning no additional thread is required to calculate morph target values and weights.  They can be directly applied to a mesh at any time, and generally with a minimal number of instructions.  There's also the possibility of using them with GPU hardware acceleration as well.
===Workflow===
===Workflow===
Morph targets allow a content creator to literally "sculpt" how a morph target should appear, directly within their 3D application of choice.  An ideal workflow would enable content creators to create a "morph map", a special vertex map in their 3D application of choice, and begin sculpting how that morph target should look in-world with respect to the associated avatar mesh morph target.
Morph targets allow a content creator to literally "sculpt" how a morph target should appear, directly within their 3D application of choice.  This gives them the ability to directly control over how a mesh "deforms" around the avatar, or in the context of rigged mesh replacement avatars, how an avatar "deforms".  An ideal workflow would enable content creators to create a "morph map", a special vertex map in their 3D application of choice, and begin sculpting how that morph target should look in-world with respect to the associated avatar mesh morph target.


Each morph target currently should correspond to an existing morph target on the avatar mesh.  Some examples include:
Each morph target currently should correspond to an existing morph target on the avatar mesh.  Some examples include:
Line 35: Line 31:
* Body fat
* Body fat
* Breast size
* Breast size
There are already several pre-existing tools that can work with morph targets, and there's several ways morph targets can be tested.  3D modeling applications such as Autodesk Maya, Autodesk 3ds Max, and Luxology Modo all support morph targets out of the box, and the Collada file format also supports morph targets.  One could effectively test different morph target combinations directly within their 3D modeling application of choice, or even existing game-engine toolsets.  This would allow for content creators to rapidly iterate with their work, making adjustments on the fly with minimal slow down by cutting out the need to upload meshes to test their work.
Another workflow possibility is one could effectively "bake" the different potential morphs of a mesh, and simply tweak them until the content creator has the general effect they're looking for.
===Performance===
Morph targets do have some performance implications, however they're largely mitigable.  Depending on the implementation, morph targets could have a very small performance impact that could be less than that of Qarl's deformer.  This would mean more avatars could be in view using morph targets on more rigged meshes, enabling more people to experience the benefits of mesh clothing that fits properly.
Furthermore, morph targets could some day become an optimization to Qarl's deformer by precalculating the morph targets for a mesh on import.  This would provide the potential performance benefits that morph targets provide, while still enabling an automatic solution for content creators to make use of.


==Morph Target Disadvantages==
==Morph Target Disadvantages==

Revision as of 18:50, 19 July 2012

This page is to contain the overall community proposal for "Morph Targets".

Please do not add to this page without authorization from a co-chair or a co-chair's assistant from the Content Creation Improvement User Group first. Please discuss any relevant points in the discussion tab in the wiki.

What is a Morph Target?

A morph target, also known as a blend shape, or a shape key in some 3D applications, is a special kind of "vertex map" containing the positions of vertices in relation to their original position on a mesh. They are relatively easy to work with, only requiring the content creator to "sculpt" or otherwise move the vertices on their meshes to the positions they'd like for a morph target.

Most 3D applications support authoring morph targets, such as Luxology Modo, Autodesk 3ds Max, Autodesk Maya, and Blender. The Collada file format also supports morph targets.

What are they used for?

Most modern video games use morph targets for complex animations that would otherwise be hard to accomplish with skeletal animation, such as facial animation, and even things like character customization. The viewer its self actually uses morph targets to enable avatar customization as-is.

A a small list of examples of what they could be used for in the context of Second Life include:

  • Complex facial animations on rigged meshes
  • Additional ways for a user to customize the appearance of their avatar
  • Animating the surface of a prim without the need to use a custom skeleton
  • Fine grained control for content creators over how their clothing deforms

Caveats of Existing Techniques

Existing techniques, such as RedPoly's proposed cBones technique and Qarl Fizz's Mesh Deformer, have their own disadvantages that morph targets are intended to either mitigate, or solve completely.

"cBones" as they're called, have the caveat of requiring content creators to rig many more bones than what would otherwise be necessary for simply animating a rigged mesh. It extends the workflow of rigging a mesh substantially into taking several hours of work; sometimes with a significant amount of trial and error. On top of that, a content creator sometimes is working "blind" with regards to what the final outcome will be in-world. This is not seen as an ideal workflow, as it increases the burden on content creators to produce this content. It does, however, provide more control over the deformation process, and is potentially faster than Qarl's mesh deformer.

Qarl's mesh deformer has the benefit, and caveat, of deforming a rigged mesh in accordance to the avatar's current shape automatically. The reason why some may see this as a caveat, is because this doesn't ensure correct deformation all the time. An example of where this may be undesirable can include custom mesh avatars, where the entire avatar mesh is replaced. A content creator may want to make their avatar's belly deform differently than the avatar mesh's belly does, or may want to have their avatar's breasts deform differently. This is a problem that morph targets could easily solve, by putting content creators in control of how a rigged mesh deforms. The mesh deformer also currently depends on the content creator making their content around a specific shape for it to work properly. Morph targets would lessen the need for this to some degree.

Morph Target Advantages

There are a few advantages of morph targets that existing solutions do not provide.

Workflow

Morph targets allow a content creator to literally "sculpt" how a morph target should appear, directly within their 3D application of choice. This gives them the ability to directly control over how a mesh "deforms" around the avatar, or in the context of rigged mesh replacement avatars, how an avatar "deforms". An ideal workflow would enable content creators to create a "morph map", a special vertex map in their 3D application of choice, and begin sculpting how that morph target should look in-world with respect to the associated avatar mesh morph target.

Each morph target currently should correspond to an existing morph target on the avatar mesh. Some examples include:

  • Belly size
  • Torso muscularity
  • Saddle bags
  • Body fat
  • Breast size

There are already several pre-existing tools that can work with morph targets, and there's several ways morph targets can be tested. 3D modeling applications such as Autodesk Maya, Autodesk 3ds Max, and Luxology Modo all support morph targets out of the box, and the Collada file format also supports morph targets. One could effectively test different morph target combinations directly within their 3D modeling application of choice, or even existing game-engine toolsets. This would allow for content creators to rapidly iterate with their work, making adjustments on the fly with minimal slow down by cutting out the need to upload meshes to test their work.

Another workflow possibility is one could effectively "bake" the different potential morphs of a mesh, and simply tweak them until the content creator has the general effect they're looking for.

Performance

Morph targets do have some performance implications, however they're largely mitigable. Depending on the implementation, morph targets could have a very small performance impact that could be less than that of Qarl's deformer. This would mean more avatars could be in view using morph targets on more rigged meshes, enabling more people to experience the benefits of mesh clothing that fits properly.

Furthermore, morph targets could some day become an optimization to Qarl's deformer by precalculating the morph targets for a mesh on import. This would provide the potential performance benefits that morph targets provide, while still enabling an automatic solution for content creators to make use of.

Morph Target Disadvantages

TBD

Morph Target Workflow

TBD

Proposed Initial Feature Set

TBD

Implementation Approaches

TBD

Conclusion

TBD