Blog - Wuhao1627003/TechAnimation GitHub Wiki
Welcome to the TechAnimation blog! This is a collection of reflections on each lecture of CMU 15-464 Technical Animation.
1.15 Today was a brief intro into 4 different aspects of technical animation, and the discovery that struck me was how much they all overlap: most animations nowadays use motion capture to collect data and summarize into patterns, from which they use keyframing to generate procedures and simulations. I was also pretty impressed by Avatar's use of motion capture on all parts of the human body, and the difficulty in using procedures on random paths.
1.22 Today we visited the Motion Capture Lab, and Justin, the staff there, demonstrated how the markers and cameras interact. I was amazed by the precision of the markers captured by cameras that seem pretty far away, and the real-time processing and display of the data. What struck me was the ease of this whole process: tight clothes, some reusable markers, cameras, and you're done!
1.27 Today we talked about using Jacobians to approximate smooth motion given source, target, and degrees of freedom. We have to use many degrees of approximations, like approximating curves as lines by assuming small angles, and approximating solutions to linear systems by pseudo-inverses and even transposes of the Jacobians. But because we are working at a really short time scale, the accumulated effects seem pretty realistic.
1.29 Today we were introduced to our first mini-project and learned about some alternative IK techniques like Cyclic-Coordinate Descent and FABRIK. I’m particularly impressed by FABRIK’s concise approach and the smooth results it achieved compared to CCD and Jacobian approaches, and I look forward to reading about how it resolves cases with constraints.
2.3 Today we mainly covered representations of 3D rotations: Euler angles and quaternions, as well as some implementations of motion editing, like pre-computing paths to the goal, and fitting known gestures by b-splines. These interpolations seem not too hard, but it's still impressive that the algorithm can run so fast, even accommodating to dynamic changes in obstacle locations.
2.5 Today we learned how motions can be modified by convoluting with other functions, to exaggerate or smooth a given motion. This technique makes me think of keyframing: what if we just take the original motion to be the linear interpolation of the 2 poses, and directly apply convolution to that? The "cartoon animation filter" is also impressive as a seemingly almighty tool, which makes sense as you can tune many parameters that make motions seem more natural.
2.10 Today we learned about linear blend skinning vs dual quaternion blend skinning. The power of quaternions (now 2 of them) keep amaze me: like gimble lock introduced by Euler angles and rotation matrices, linear interpolation for skinning also has artifacts like the candy-wrapper effect, and introducing more variables to form dual quaternions completely eliminates the issue. Computations may be a bit harder, but the interpolation seems far more natural.
2.12 Paper presentations
2.17 Mini-project 1 demo
2.19 Today we talked about the simulation of particle movements using position, velocity, momentum and angular momentum. I already learned about this process in 15462 but was surprised to learn about the different integrators introduced today, especially Verlet and RK4. I'd like to know more about how they behave differently than Symplectic Euler. The cloth simulations also amazed me, and seem nontrivial.
2.24 Today we talked more about how cloth is modeled as particles and the effects of different parameters on human perception. I'm interested in the paper on learning cloth parameters from video, then reapplying them to cloth simulations. The resulting video is pretty realistic, meaning the parameters have a great impact on perceived cloth qualities.
2.26 Today our TA introduced us to different methods to calculate rigid body collisions--impulse based, constraint based, and penalty based. I was a bit surprised by the complexity of restitution calculation, and the relative simplicity of the constraint and penalty assumptions: speed and acceleration should both be 0 at surface, which makes sense; force should be applied based on potential penetration--both depth and velocity, which makes sense.