Similar Surface Modifier proposal
Oct 29th, 2009 by admin
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 they’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 understood 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). The 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.