OpenGL Robot
This project was to build a robot in OpenGL that could be interacted with
and moved using keyboard input. The robot has six degrees of freedom which are
controlled hierarchically. The robot also lives in a fairly complex OpenGL scene
with multiple light sources, as well as a reflective floor using the stencil
buffer, shadows with polygon offset, transparency using alpha blending, etc.
There is also the ability to switch view points so that the user can either
look at the scene from an independent view point, or can look out from where
the robot is looking.
Implemented Features
- Hierarchically controllable robot with multiple degrees of freedom
- OpenGL menus for things like placing and moving light sources
- Multiple light sources
- Complicated scene for the robot to live in
- Viewpoint that can be toggled between an independent view, and the robots
view
- Shadows with polygon offset
- Reflections using the stencil buffer
- Transparent objects using alpha-blending
- A smooth surface (Bezier patch)
- Display Lists
- Simple animation - the snowman throws a snowball
Images
This image shows most of the interesting things in the scene, the snowman is
the 'robot', and his arm contains most of the degrees of freedom. The shadows
are also obvious on the floor, and the reflections can also be seen in the
floor. Transparency can be seen in the truncated cone in the background, and
the bezier patch is floating in the foreground. Many of the objects in the
scene (the cone, floor, etc.) are also drawn using display lists to help
speed up processing.
This image is taken from the robots view point of it's own hand. The other
interesting thing is that the spotlight that moves with the robots head can
also be seen on part of the hand.
Movie
Movieof snowball being thrown