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.
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
The Tension data can be baked out using Render
To Texture (RTT), making it useful for even high res meshes
where performance becomes chuggy.
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
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.
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
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.
'Use External Reference' allows you to use an external mesh to define
the rest pose rather than capturing from the stack of the object
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
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:
Tension for 3dsmax6-8/9/2008/2009 - version 1.2
32/64 bits installation options are available for R9/2008/2009
Tension for 2010 is available as zipped plugins - copy the unzipped plugin to your plugins directory:
3dsmax2010 32 bit
3dsmax2010 64 bit
3dsmax2012 32 bit
3dsmax2012 64 bit
3dsmax2013/2014 64/32 bit
1.11 - old build
0.3 - old build
0.13 - old build
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.
For the 2010 version unzip and copy to your plugins directory.
Contact firstname.lastname@example.org with any bug info.
Scene files demonstrating problems are much easier to troubleshoot.
Credits: Tension was
written by Grant Adam.