Tension
Modifier
Tension is a modifier that
compares the current deformation of a mesh with a reference pose,
and generates relative compression and expansion data of the edges
in the mesh. It dumps the data into either the vertex colour channel
or standard mapping channel, where it can be used for display, selection
(using volume select and a vertex color map) or at render-time (using
a vertex color map, usually as a mask).
In Addition to Tension (Expansion and Compression)
there is the option of using surface (edge based) convexity, either
absolute or relative to the captured pose, to generate data.
Tension works with edges - testing edge lengths
and concavity/convexity, and modifies vertex colours or the mapping
channel of your choice.
NEW As of 1.11, it can also work with dPdu and dPdv (change in U and V, per face) as well, for the expansion and compression calculations. Slightly different, not necessarily better, and you will need at least basic mapping. ie a cylinder with default capping will not work as the cap mapping is not great. Add spherical mapping and it will then be fine (better mapping is recommended, but just as an example). Note that face selection is what is used in this mode to mask, not edge selections.
It works with the epoly data structure, so incoming
trimeshes are converted to epoly (which is slower - feeding a poly
mesh in will be faster, though it is not especially slow).
It uses Green for Expansion, Red for Compression,
Green for Convexity, Red for Concavity.
In addition to working with the 99 mapping channels,
it also can work with the Vertex Color channel: the advantage of
this, and also where being a modifier is an advantage, is that the
results can be seen interactively in the viewport as you work.
It can be used to produce data to drive different
maps at render time based on stresses, but it is also ideal for
surface evaluation: you can see if morph targets are unevenly stressing
a surface, or if skinning at a joint is unevenly deforming the mesh,
and interactively modify your model underneath the tension modifier
and see the result in the viewport as you work. It can be used to
generate data fed into a Volume Select modifier (via the mapping
type), genrating a soft selection of verts, to do stuff like relax
just the compressed areas, or push stretched areas.
I hope to have some quicktimes up of usage some
time soon.
The Tension data can be baked out using Render
To Texture (RTT), making it useful for even high res meshes
where performance becomes chuggy.

Usage:
Most of the UI stuff should be fairly self explanatory,
but until I get time to put a help file together what you need to
know is:
If you have compression and expansion set to
the same mapping channel as the convexity stuff, what happens is
that Red = Compression, Green = expansion, and Blue = convexity
AND concavity, with the channel being the combined values, where
0-0.5 is one part and 0.5-1 is the other part.
What I recommend is using different channels
for tension and convexity; most visually rewarding is using the
vertex colour channel for the data you want to work with, and toggle
the show vertex colours.
Individual channels determines whether each
data channel is blurred separately, or if the values are blurred
as one dataset: what this means is that you will not get overlapping
colours if blurred together, which may or may not be desireable.
The mask stuff uses EDGE masks coming up the
stack - so use a poly select to select edges below this modifier. (Note that the dPdu/dPdv stuff uses FACE masks. I could support either but since it works with face data, it is much easier just to support that...)
Since this plugin works with E.poly data, it
is faster when working with incoming E.poly from the stack since
it does not have to convert it.
If the vert count changes, the solution will
be invalid. If the 'Lock Reference Data' is on, this will stop it
doing anything until the vert count is once again what it was, if
this checkbox is off it will automatically recapture the default
pose at the current frame: you can manually recapture the pose by
going to the frame you want and hitting the 'Recapture Pose' button.
The Compositing stuff is so you can use multiple
tensions together in the stack and combine the results in interesting
ways.
The 'Do Delta' shows which way the surface tension
is changing - becoming more stretched or more compressed. It uses
an external node, usually a pointcached version of the same mesh,
but is labelled experimental as currently it is very slow (it puts
the data into the blue channel, above .5 is moving towards tense,
below moving towards compressed, and the value is how fast). Might
be useful for some subtle effects, but overall probably not terribly.
The 'Use External Reference' allows you to use an external mesh to define the rest pose rather than capturing from the stack of the object itself.
Limitations - No support for Patches or Nurbs.
Supported types are TriMeshes, (ie regular
editable mesh stack), and PolyMeshes.
Demonstration Quicktime - 4.3 megs. Just
a quick demo on my old ape scene.
Demonstration Quicktime - 6.3 megs. Showing
interactively editing skin envelopes and seeing the vertex colours
update.
Quicktime - 1 meg. Cloth Sim 1
Quicktime - 1 meg. Cloth Sim 2
Quicktime - 125K . Showing using volume
select modifiers + vertex color maps, along with Tensionin the stack
in a max viewport preview
Screenshot of a head model displaying
the convexity data.
Same model showing the tension on the
surface of the current morph pose.
Tension Modifier is not freeware (but it no longer has any licensing as of 1.1)
For licensees of RPManager and RPManagerLite,
commercial or personal use is freely permitted. For everyone else
there is a US$20 fee for commercial use per site. Personal/Academic
use is permitted without payment.
There are no licenses, limited/demo versions
or what-not - the version you download here is the full unlimited plugin- just this button here:
which will get you a Thanks! email and the knowledge
you are both supporting a tool developer and legitimately using the
plugin, and this link here:
Download
Tension for 3dsmax6-8/9/2008/2009 - version 1.2
32/64 bits installation options are available for R9/2008/2009
Version
1.11 - old build
Version
0.3 - old build
Version
0.13 - old build
Installation instructions
Run the Tension installer downloadable
above, which puts it into your plugins directory and then start
3dsmax. It is a modifier, so will
appear in the modifier stack.
Contact bugs@rpmanager.com with any bug info.
Scene files demonstrating problems are much easier to troubleshoot.
Credits: Tension was
written by Grant Adam.
|