Sunday, March 5, 2017

Skinning - Wait, now?!

It has been quite a long time since we discussed about skinning techniques, but I still want to revise some of the points that I found interesting.

The basic idea of skinning is easy to understand: just to assign the vertices on the "skin" to corresponding bones, so the "skin" will move together with its bone. It becomes interesting when the "Candy Wrapper" artifact appears. Since the connected bones might rotate to different directions, the skin at the joint will twist because its vertices are assigned to different bones. The visual results can be improved by assigning more weights to a vertex. The non-linear method called Dual Quaternion Blending method (DQB) can also solve the problem. This method is very fast, although it might work when strange motions are involved, like wrapping around. This can be solved by breaking the transformation into phases.

There are also issues with bulging artifacts, and a "cage" method was introduced by a research to guide the muscle bulging, sliding and twisting. I found it interesting because the "cage" method was an old technique introduced for skinning, and it's surprising to see modern modifications based on historic methods.

Some research about general deformers were also discussed during classes. I was wondering why my artist friends still hate skinning so much due to massive manual operations involved in the process. Maybe the good methods are not well developed for prevalent commercial use.

Cloth Simulation

Last week we discussed about some cloth simulation techniques. We watched several demo videos of the research results published over the decade. They look amazing! But I also noticed that the simulated cloth seems too light, and when there are movements involved, the cloth tends to oscillate more at the edges before recovering to the original state. That's why the result of the knitted cloth simulation paper was so impressive: The scarf model seems to have mass and volume. Of course, this method takes more resources to render. And at the same time I found the force against each yarn was too strong, that each knot seems to puff and form a round shape, especially at edges. But in reality, there's not only repulsion but also attraction between yarns. I guess the subtle force relations are hard to balance. This is somewhat like what another student commented during class: the wrinkle simulation in a demo seems unnatural when the cloth completely comes back to its original state after wrinkling. Some left-over creases might make it better. It was mentioned that there are also methods that simulate cloth based on texture mapping. I hope that I can have a chance to look into that.

Another research that I found interesting was to precompute simulation for each state and apply the same simulation to the repeating states. It is clever and fits in the game development needs, but with the expanding decision tree for transitions between each state, the problem becomes more complicated.

Given all the challenges, cloth simulation seems like still an open space to explore. I wish I can gain more insights after hands-on practice for the second mini project.