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
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
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
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.
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.
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
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'
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.
'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 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
Screenshot of a head model displaying the
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
2010 is available as zipped plugins - copy the unzipped plugin to your
3dsmax2010 32 bit
3dsmax2012 32 bit
3dsmax2012 64 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.
firstname.lastname@example.org with any bug info. Scene files demonstrating
problems are much easier to troubleshoot.
Credits: Tension was written by Grant Adam.