Welcome to my portfolio gallery! Some of demos are parts of my projects and some of them are related to the animations. These animations are related to mass spring systerm, motion capture interpolation methods, simulation with OpenGL, inverse kinematic and parts of my game applications.
This demo shows some novel-view rendering samples of RenderPeople dataset. Each subject includes views of horizontal rotations, views of different azimuths and inclinations. During the rendering process, all subjects are rendered under the same lighting settings. This novel-view human body dataset are rendered with Blender. The dataset includes the different views of human body images, camera calibrations, depth maps and normal maps. If you want to know more about the rendering implementation, check the code here.
This demo is galaxy roller coaster simulation, which is based on Catmull-Rom splines along with OpenGL lighting and texture mapping. Inspired by Space Mountain roller coaster, I set a galaxy dome for the sky texture, and make the texture-mapped wooden crossbars. Constructing the Catmull-Rom spline is based on control matrix and subdividing-find u to generate points between two control points. Besides, you can see the obvious changes of the velocity in terms of height, so when the roller coaster runs up the hill, it will be slow down; when it is downhill, it will speed up in terms of the current height.
This demo is a fancy jello cube! The jello cube can bounce off the walls and you can use mouse to drag the cube, which is a convenient way of interaction. The simulation uses mass spring system to achieve that. The mass spring system for this project contains structural, shear, bend springs and damping forces. The external forces is the force field (trilinear interpolation). With adding mouse drag forces function to certain simulation points, the jello cube can bounce off the walls with the box collision detection. It also contains a function of inclined plane detection and rendering.
This motion capture video shows three outputs of different interpolation techniques. The skeletons in green color are driven by the original motion capture file. The skeletons in red color are driven by the new motion capture files with different interpolation methods. In this project, I have implemented three interpolation techniques: Bezier Euler interpolation, Linear Quaternion interpolation and Bezier Quaternion interpolation. From the output video, you can see the comparison pair by pair. For more detail on this project, check my Blog here.
Inverse kinematic is useful in making animations and also plays an important role in robotic area. The demo shows how to implement forward kinematic, inverse kinematic and skinning method with OpenGL. As you can see in this video, each avatar with rendered skeleton has several IK handlers, you can use the handles to move these avatars. I used two skinning algorithm and made a comparison between linear blend skinning and dual quaternion skinning method. If you want to know more about the implementation, check the code here.
Glass breaking part. This animation can be use for many game scenes. For the implementation, I used Blender to design the glass object, which included two kinds of glass. The first one is an intact glass, and the other one is composed by numerous pieces of glass. This animation is built with Unity, and each glass fragment has its own kinematic information. When it is triggered under certain conditions, it will fall down due to the gravity. If you want to check the code, click here
When you want to open a door, what do you need? Normally, you need a key or a keypad. This demo shows a keypad application. When you press the key buttons of the keypad, the display screen will show the input numbers. Each key button is covered by a box collider, once you click the button, it will trigger the next process and give users a feedback. Once you enter the correct password, you will open the door! If you want to check the code, click here.