Pokethrough!


3d clothing proved to be surprisingly tricky in that fox treadmill animation from my previous post! :O

The biggest issue was something known as "Poke Through". This is where 3d clothes don't perfectly fit and the character model becomes visible underneath.

Pokethrough usually shows up when the character starts moving and the clothes try to follow and deform to the motion. It's a common problem for game engines or 3d tools like Daz Studio that try to support an interchangeable wardrobe that fits a base character.



Why does it happen?

Clothes are weight-painted to deform exactly the same amounts as the character. The exact same character rig moves the clothes the same distances as the character. But somehow, pokethrough still happens! :O

Take a look at how much geometry there is for the clothing, compared to the character. (The clothing is much more dense.)




Turns out, the deformation math produces a different outcome for the character and her clothing, since all the vertexes start in different places. There's no way to weight paint it to work for all poses. Sometimes it'll overshoot, sometimes it'll undershoot.


How can we fix it?

My first idea was to fix it with masks. I can select a group of vertices and add a Mask modifier to show or hide them depending on if they're covered with clothing. This leaves a physical hole in the character model - there's *no* geometry visible underneath clothes.


This approach improves pokethrough for some poses, but not *all* poses. When the character moves, you can sometimes see right through her! Or else, pokethrough still happens at the edge of the mask where character and clothing geometry intersect.


A better way to fix it is to use the sculpt tool to inflate the clothing slightly. Then it's technically lifted off her body, but it's hard to tell when zoomed out. I step through the animation frame-by-frame, and fix pokethrough on each frame.



Inflating the clothes is delicate, because it can introduce strange wrinkles or bulges, or make clothes appear to be floating around the character. Inflating too much quickly makes gym shorts look like a diaper, for instance. >w>

I haven't found a quick fix that works for extreme close ups. I figure I'll have to manually align the clothing verts to the character verts so their positions are precisely the same, and then inflate the middle areas of the clothing to move them off the body. I'll cross that bridge when I get there! ^.^