1 / 62

Raycasting based auto-rigging method for humanoid meshes

Raycasting based auto-rigging method for humanoid meshes. Romain LOPEZ Christophe POIREL. Rigging. AutoRigging. Biped. Armature. Similar Works Frankenrig. Christian Miller Okan Arikan Don Fussell Symposium on Interactive 3D Graphics and Games (I3D) 2010.

yuval
Download Presentation

Raycasting based auto-rigging method for humanoid meshes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Raycasting based auto-rigging method for humanoid meshes Romain LOPEZ Christophe POIREL

  2. Rigging

  3. AutoRigging • Biped • Armature

  4. Similar WorksFrankenrig Christian Miller OkanArikan Don Fussell Symposium on Interactive 3D Graphics and Games (I3D) 2010

  5. Similar WorksSkeleton Extraction from a Mesh for Easy Skinning Animation Martin Madaras Roman Durikovic Tomas Agoston Tomoyuki Nishita 13th International Conference on Human and Computer - HC 2010

  6. Similar WorksPinocchio • Ilya Baran & Jovan Popovi´c • SIGGRAPH 2007

  7. The method • It’s in two parts: • 2D body-mapping of the mesh. • 3D raycasting to center the bones. • Tools used: Blender, Python

  8. Body mapping:Silhouette

  9. Why a body mapping? Armature: Legs Arms Head Torso

  10. Human point of view Anybody can identify the differents body parts of a mesh. It’s more difficult for a computer…

  11. Computer point of view It’s a 3D points cloud. How to simplify the mesh?

  12. Creating a 2D projection Using a grid in front of the mesh: A ray is cast through each hole in the grid. A a ray hits the mesh, we keep the instersection point.

  13. Silhouette Each intersection point is put on the same plane: silhouette Requirement: all limbs must be separated and visible.

  14. Outlining

  15. Final silhouette Only the outlining points are necessary to identify the limbs. How to find them?

  16. First step • The lower slice with four points matches the legs.

  17. Navigation

  18. Paths • We link the points regarding three paths. • What for?

  19. Finding the legs We go through the middle path, from point to point, keeping the max height.

  20. Finding the arms We save the legs and remove them. Among the remaining points, the edges are the arms. The points along the edge of the legs are the hips.

  21. Starting point We calculate the line equation between the arm and the hip. If there’s a point between them on the line, it’s the starting point. Y = A*X + B

  22. Finding the arm pits We increase ‘b’ in the line equation. At each step, we look for the closest point to the line. The point ends up being « stuck » in the arm pit.

  23. Finding the arm The points between the hip and the arm pit are stored and removed. Starting with the arm pit, from point to point, we reach the point with the same abscissa as the arm pit.

  24. Finding the head We remove the arms, and the remaining points are the head.

  25. Result Here is a body mapping. Now, how to place the bones using it?

  26. Raycasting Placing the bones

  27. Entry points Provided by the body mapping.

  28. The arm We start in the arm. The arm pit is the height limit, the stop point. How to use these points to place the bones?

  29. Raycasting From the entry point, inside the slice, we cast rays in all directions.

  30. Inside view We keep the closest intersection points from the entry point.

  31. Projection The rays are cast from the entry point.

  32. Polygon A polygon is made of the intersection points. How the find its center?

  33. Barycenter Each point has weight depending on the distance to its closest neighbour. Therefore, for this slice, the bone will go through the barycenter.

  34. Step by step From the barycenter we go down the limb. Again, at each slice, we cast rays to find the next barycenter.

  35. Stop condition The algorithm stops when it’s outside the mesh. Then it goes back in the opposite direction. N.B. : There’s no hand rigging for now.

  36. Stop condition We stop when we reach the arm pit.

  37. Bone path The barycenters found at each step are candidates for the joint positions.

  38. Bone path The joints positions will be used to place the bones.

  39. Shoulder The shoulder is found by casting a ray in the opposite direction of the arm path. It’s placed half way of the intersection point. What about he other limbs ?

  40. Leg

  41. Hip The hip is on the vector of the path at an anatomical ratio of the leg length.

  42. All the points are found

  43. Placement de l’armature

  44. Armature ratios

  45. Head

  46. Head

  47. Foot

  48. Foot

  49. Final result

  50. Motion capture linking

More Related