Description

A simulation of a spider on a dock with many other spiders implemented in OpenGL.

Controls



Features

Directional Lighting

Directional lighting uses a fragment shader to calculate the color for each fragment based on a provided light direction and the object's coefficients for ambient, diffuse and specular lighting.

Hierarchical Modeling

Hierarchical modeling allows us to move shapes around with respect to an arbitrary frame. This makes it less difficult to implement translations and rotations around joints allowing animations of the spiders and placement of entities to be simpler.

Camera Control

The camera is fixed to a set distance behind or in front of the player spider (depending on the perspective) and follows the player spider as it moves with the WASD keys and rotates with the mouse scroll, giving a third person interactive feel.

Textures

Texture mapping allows the object meshes to be wrapped using selected image files.

Cubemap

Also referred to as a skybox, a cubemap renders a 3D cube that the camera is wrapped around in. The textures mapped on the cube appear to be seamless and look infinitely far away because of how it ignores the camera translation (or essentially follows the camera).


Collision Detection

The player spider can collide with any entity in the map through bounding box collision detection where the entities all have a cube that represents them that the player spider can run into. When the player spider is inside another entitie's bounding box, it counts as a collision and the previous movement action is undone. By checking the xyz coordinates individually, the spider will be able to slide along collision lines.

Resources