[Bf-committers] Similar Surface modifier

Roland Hess rolandh at reed-witting.com
Thu Oct 29 15:59:20 CET 2009


Hi folks --

With Durian in progress, I wanted to share a thought I'd had with both 
the artistic and development teams. Having tried to use the cloth sim a 
number of times in a production capacity, one of the critical 
shortcomings I've identified (and one that I'm sure you'll run into) is 
the deficiencies the system has with complex clothing designs. I don't 
mean high poly counts, but places where in an actual piece of clothing 
the fabric is layered: cuffs, the doubled ridge of cloth that runs down 
the front of an Oxford, pockets, lapels, etc.

Obviously, there are workarounds, but I have a solution that I'm not 
going to have time to implement myself. I built the modifier structure 
and basics, but once I realized I'd never coded with the modifier system 
or dealt with mesh data directly I realized that it would require more 
time than I had, and would be fairly easily accomplished by someone 
already familiar with it.

I think a good solution to this problem would be a "Similar Surface" 
(name for artists) or a "Hook Web" (name for devs) modifier. Simply put, 
the modifier is a "bind" type one, a la the cage deformer. The user 
creates a fairly simple structure upon which to run a cloth sim (or any 
other deform technique, actually). Then, the user creates their "high 
res" clothing, which includes all the nice things like buttons, 
epaulets, cuffs, pockets, layering, etc. Clearly that would never 
survive an actual cloth sim. When the user BINDS the high res clothing 
to the sim'ed simpler one, the following happens:

1. For each vert in the high res, a virtual hook is created. Within the 
modifier, it would be an array of hook objects (obHook). Hook data 
structure is deprecated in favor of the hook modifier, but the DNA is 
still there.
2. Where does the virtual hook attach? The shrink wrap "nearest point on 
mesh" procedure is used to identify. Then, the verts that make up the 
identified face of the underlying mesh become the vertex parents of the 
virtual hook.

That's it. This would allow complex, multi-layered clothing to be driven 
by an underlying cloth simulation.

 From reading the DNA and modifier code, it appears that everything is 
already there. We need someone who is familiar with mesh coding and 
modifiers to put it together. Unless I miss my guess, the Durian team 
WILL be asking for something like this in the near future.

-- 
Roland Hess
harkyman



More information about the Bf-committers mailing list