[SOUND] [BLANK_AUDIO] hello. This is Week 4 of Interactive Computer Graphics Course. The topic of this week is Deformation and Animation. So, last week we discussed the modeling of 3D shapes. And, they are kind of rigid shapes, there is no deformation there is no motion. In this week we will discuss how to make them move, or deform. So one possible- One way is to change the pose of articulated character, like this frog. And the other possibility is, is to deform a object consisting of deformable objects like clothes or robes or jellyfish and so. And this as you see it’s much more difficult because there are lots of more information there the time sequence of vertices’ positions. And then we will discuss algorithm and user interface to control so many information. So these are the topics we discussed here. The first one is Clothing Manipulations, so putting garment on the character. And the next one is Layer Operations for controlling stacked clothes or robes, and so on. And then, we will describe Spatial Key Framing technique to animate characters. And then also, a Procedural Deformation technique for animating jellyfish and other worm and so on. And then, finally we will describe a method to handle large motion capture database. The topic- the first one is Clothing Manipulations. So this is work titled as Clothing Manipulation and published in 2002. The problem we wanted to address here is that clothing manipulation is difficult. Many people are working on clothes simulation, but I thought that not so many people working on manipulation or control of clothing. So this is, these are the popular techniques in the field. The one possibi-, popular approach is to put rigid clothes pieces along the body and then start simulation and the clothes will snap to the body. This is very popular with clothes. However, from users point of view it's very tedious to place piece of clothing around the body with 3D rotation and 3D position control. And the other popular demonstration is this kind of real-time simulation of clothes material. But from user interest point of view, it's like manipulating a handkerchief using a chopstick. It's not very good for putting clothing on a character. So what we want to do here, is a way to make it easy to put clothes on a character in a very flex way, flexible way. You know, there are so many different way of putting clothing on a character. And we want to develop interaction techniques to make it easy to test many variations. Okay let me show you, a video. So we introduce two techniques here, wrapping and then dragging, the first one is wrapping. [BLANK_AUDIO] So here you have a 3D character here, and then we try to put clothing on this 3D character. And on the right hand you have a garment editor. And then, you design a garment here as a 2D pattern. So you will, you design a 2D shape, and then put this garment onto this character. And I just said, typical approach to push and pull, each individual vertices around this 3D body, but it can be very time-consuming and difficult. So our approach is to use painting interface. So user roughly specify which part should go where. So this line, these three lines should go here, and then here, and then here. And then with this hint, the system tries to put the clothing on the character so that these painted marks matches together. So just press wrap button. [BLANK_AUDIO] And then you will instantly get the final shape. And I think much more faster and efficient than standard dragging operations. [BLANK_AUDIO] So here's another example. Here we tried to make our skirt and then we tried to put this garment on this character. So you draw lines here. And then there is also a line here, corresponding lines on this character. And then just press wrap, and then you suddenly get the skirt on this character. And here is a little bit more complicated example. So you would paint four strokes and then also corresponding strokes on this character. So in this way you can get a specific way of putting garment on the character [BLANK_AUDIO] And here's a little bit more complicated example. So you can quickly design this kind of t-shirt and then a shirt and then you can put in this garment. Again, if you use traditional drag-ons pull operation it can be very tedious to control this. [BLANK_AUDIO] So this shows the algorithm. So instead of moving around the garment, the system actually grows a garment on this character. So next operation, is Surface dragging. So after putting a garment on a character you may want to relocate or adjust the position. And this is a technique. [BLANK_AUDIO] Here’s a basic idea, so typical dragging in real time clothes simulation is just move single vertex. And then rely on physics to move around the other vertices. However, this is not convenient for making a drastic, a large deform, large motion around the body surface. [BLANK_AUDIO] So this is an example of traditional single vertex dragging. So it can make a very local shape change, but it's very hard to make a global change. So what people propose is called surface dragging. So as you drag a single vertex, the you directly- the system directly propagates the motion around the body surface. So if we make a small motion, all vertices move together, so you can make a big change with a single drag. [BLANK_AUDIO] So here's an example. So you can easily up or down or even you can rotate the skirt around the body surface. And this kind of dynamic fast motion is not possible with standard single vertex clothes simulation method. So you can move this cloth around the body surface. [BLANK_AUDIO] And the system also takes care of the basic physics, so there is no penetration, and then also some gravity effect. And you can get further control by putting pushpins on the body surface. So you can put pushpin and then you constrain the position. And after putting pushpin it's a fix, the location is fixed and then you can get further control. Yeah again, by pushpin you can constrain the propagation, so you can just move one part of the garment. [BLANK_AUDIO] You can also use same painting interface for changing the position after putting the garment on a character. So this is useful to make discontinuous mo- change, like this one, so you can suddenly jump part of the cloth to the arm. [BLANK_AUDIO] So here is a couple of examples of 3D models created using the technique. So here is an octopus, a mommy octopus. So you can put long garment, clothes on the octopus. And again, I think this is very tedious to do using standard dragging operation. [BLANK_AUDIO] And this is something we wanted to do using the interface, you can put clothing on the head. And you can play around with this. [BLANK_AUDIO] Okay, so that's video. So as I said what we propose is surface dragging. So traditional approach is single vertex dragging, or rigid dragging moves all the vertices into the same direction. But here, what we propose is propagation of moving vector around the body surface like this way. Okay so let me briefly describe the implementation of these techniques, so wrapping and dragging. And then, I will first explain the wrapping algorithm. So wrapping is, as I said, instead of moving integrated entire clothes to the body, we actually grow the cloth on the body surface. That's the basic idea. So in this way, you can avoid difficult collision detection and so on. So here is a look at details. At the beginning, system first computes dependency graph or propagation graph. Starting from the painted triangle to the other triangles. So this is a kind of directed graph. And then, according to the directed graph, dependence graph, we grows the cloth on the body surface. So first, we transplant, 2D clothes to the 3D surface. And then we paste, a new triangles, one by one, on the body surface, using, according to the dependency graph. An interesting question here is how to grow the surface. Please consider that there are two possible approaches. One is you paste, triangle one by one, pasting on, directly on the body. And another possibility is, instead of directly painting, it's a kind of more straight a- along the cloth surface. And we actually implemented the first one, as a naive approach. However, we found it problematic and then we switched to this planar growth, let me describe it a little bit more. So if you stick to the body it can have a problem when you have a, like a sleeve. You know, if you start to make a sleeve from both sides, if you stick to body, there are so many- It causes many many folds, you know, around here. So we find it problematic. If you use a planar growth, then it works this way, and then afterwards physics will stitch together and then you will get a reasonable result. And here's another example, if you use stick to body, then if you start growing here it goes around the body. And it is not very desirable. So we decided to use planar growth for the ruffle. Okay, so now let me move on to our dragging implementation. So as I said, dragging is to propagate the motion directly along the body and then all the vertices move together along the body surface. And at the beginning as, as soon as you click down and then start dragging, system first compute this again this dependency graph or propagation graph. Starting from grabbed vertices, vertex and to the rest of the vertices. And then again, there are two, two possibilities. So one is propagate cloths, along the cloth's surface. And then, you know, as you see the vector. You know vector changes along, across surface. And then the other possibility is changes the vector direction according to the body surface. And then, we again tested both. And then usual naive approach was this changing vectors along the body, cloth surface. However, it turned out to be very ,very unstable because the shape changes all the time. However, if you switch to body based propagation, you know body shape doesn't change. It is very stable. And we found that this is much better. So in summary, in this video we discussed clothing manipulation methods. So we introduced our painting interface for wrapping and also dragging along the on-surface dragging. And for implementation, wrapping is achieved by growing or pasting triangles one by one on the body surface. And for the dragging we propagate some motion around the body surface. So to learn more the technique itself is published as clothing manipulation. And if you want to know more about clothes simulation, yeah, there are so many information. But I just want to point to a very famous, good paper called Large Steps in Cloth Simulation. It's a little bit old paper, but I think still very popular and a good starting point for further study. Thank you.