|Physics and Advanced Collision Detection (Advanced Course)|
|Creating a realistic behavior of all 3D objects in video games adds to the realism of the whole game. That is why physics used in games has become a major topic in current titles. This course teaches you how to do physics from scratch. Starting with point masses and rigid bodies we finally end up with rag doll and character animation, cloth simulation, and accurate collision detection.|
In this course you dive into the awesome world of realtime-physics in video games. It starts with the basic concepts of physics and shows you how to implement physics equations into algorithms and C++ classes. Week by week this course adds different kind of physical objects and behaviors to the code base leading to a full sail physics engine. But even the smartest physics implementation is useless without an advanced collision detection system. Therefore, you will also learn how to implement advanced animation techniques. And we are not talking about boundig boxes here but arbitrary, moving polyhedra (arbitrary convex meshes). After going through the collision detection part of this course you will be able to fire rather small objects with super-sonic speed at rather thin objects without missing a single collision. Optimization of the collision detection is also discussed. Finally, besides point masses, rigid bodies, and soft bodies such as cloths the class will also teach you how to do skin and bones animation without any kind of helper library and finally show you how to create a rag doll effect.
The major highlights of this course include:
- point masses and rigid bodies
- bodies floating in liquids like water
- cloths simulation
- fast and efficient collision detection
- skinned mesh 3d model animation
- rag doll effect for skinned meshes
- and much more.
Free Sample Material
Below you can find the complete first week's course book, so you can check the quality and contents for yourself.
Download Course Book
The screenshots are directly taken from these demo applications.
Who should take the Class?
The class is tailored for game programmers who want to bring simulated reality to their game projects. Also, the students should have a basic understanding of 3D graphics. For the rendering output this class uses the Sipogen engine who's implmentaion is dicussed in the Introduction to Direct3D and Engine Programming course. But basic knowledge of either Direct3D, or OpenGL, or any other 3D engine would be sufficient to be able to follow this course.
Students are required to know how to use Visual C++ 6.0 or better, C/C++ and do basic vector mathematics.
The following 9lessons are to be completed in 10 weeks:
- Lesson 1: Point Mass Dynamics
Linear dynamics for point mass objects having a mass but no volume. This lessons includes real world forces and physical laws such as applying gravity and let objects float in liquids.
- Lesson 2: Advanced Collision Detection
Do intersection detection for static and dynamic objects. Learn how to use planes, spheres, bounding boxes, arbitrary triangle meshes, and frustums in collision detection.
- Lesson 3: Point Mass Collision Response
Apply the collision detection functionality to point masses and see how you actually have to respond to a collision to simulate physical behavior.
- Lesson 4: Rigid Bodies
Now its time for angular dynamics. As opposed to point masses the rigid bodies have a shape and a volume. Forces exerted onto rigid bodies do not only create linear movement but also rotational movement.
- Lesson 5: Rigid Bodies Collision Response
Now its time to hit the ground - literally. This week you will learn how to create collision response for rigid bodies including collision response between the rigid bodies with each other as well as with additional geometry such as walls and floors. The problem of stacking is discussed here as well.
- Lesson 6: Skeletal Animation and Rag Dolls
Learn how to do character animation using skin and bones. This week develops a comprehensive character class that lets you easily add bones and skins and animation sequences either by hard-coding the corresponding data or by loading it from 3D model files. Next, the use of constraints in rigid body simulation is discussed and brought to good use by integrating the rag doll effect into the character class. This enables you to throw your character into your scene and let it bounce and whirl around to correspond to the laws of physics.
- Lesson 7: Soft Bodies
As opposed to rigid bodies the soft bodies can change their shape due to incoming forces. This includes simpe ropes, waving flags / cloths, as well as complex deformable meshs.
- Lesson 8: Vehicle Dynamics
So far you only know how to deal with rather simple shapes such as spheres and cubes. In this lesson you will learn how to build a more complex geometrical structure such as a ground vehicle.
- Lesson 9: Final Project
Now you have to show what you have learned. The final project requires you to implement a small predefined game project that makes good use of the physics.
|Unique users today:|
| ||Forum stats:|
| ||Since March'06:|