Difference between revisions of "CSE167FinalProjectF12"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
Line 52: Line 52:
 
| exit game
 
| exit game
 
|}
 
|}
 +
 +
=Robot Defense (Kuen-Han Lin, Matteo Mannino, Ashish Tawari)=
 +
 +
[[Image:2012-p15.png|thumb]]
 +
 +
===Background Story===
 +
 +
This augmented reality driven experience places you in an awkward situation. Martian robots have worked up the nerve to inhabit your desktop. It all has fallen onto you to do what you born to do, and blow those sons of guns back to the dark side of Jupiter. Right-click fires your proton bomb while aiming with the mouse, and the number 2 key whips out a flashlight to go dark and turn off the lights in your virtual room. (1 switches back to ambient) Just when you think you've seen it all, you may look to your right and find out that, my god, it wasn't a Martian on your desktop - it was your best friend at the keyboard! That's right, this is a two-player experience, fun for whole family!
 +
 +
===Project Description===
 +
 +
This project features a 3D point cloud mesh reconstruction through Delauney triangulation to model a common desktop. The point cloud from this desktop was obtained from a camera sensor, and the associated camera images have been used to texture the mesh. Rectangle-to-sphere and sphere-to-point cloud collision detection is done to detect bullet collisions with the desktop and the animated player 2 controlled robot. The point cloud also has a bounding box around it for efficiency. The explosions are rendered as particle effects, where the particles are billboarded texture sprites with fire, smoke, and a shockwave. A spotlight is added for an eerie effect, and the whole scene is covered by a galaxy sky box that is literally out of this world.
 +
 +
Our creative efforts were mostly focused on making the desktop mesh look fairly good, and automatically generated from point cloud data. The desktop we used had books, papers, and obstacles on it for the purpose of interesting geometry and height variation. Much time was also spent on tuning our particle explosion effects. The game loop and controls took some time to get the right feel, and various algorithms – such as triangle detection, binary space partition trees, and plane detection - were tried for collision detection with the mesh before settling on point cloud collisions with a bounding box. This provided the most efficient solution, presumably because comparing points is easy, and since it is done in a linear array we minimize cache misses. In contrast, comparisons and calculations for triangle collisions simply took longer due to all the calculations, and the BSP trees with either collision detection was overkill for 400 points that have easy calculations.
 +
 +
===Features===
 +
 +
* Point cloud, box, and sphere collisions
 +
** Point cloud collisions with spherical bullet projectile
 +
** Box collisions (Bounding box on top of mesh) with spherical bullet projectile
 +
** Sphere-to-sphere collisions with robot to projectile
 +
* Mesh construction
 +
** Delauney triangulation
 +
** Matching two meshes
 +
* Particle effects
 +
** Explosions and smoke effects
 +
 +
===Controls===
 +
 +
* Mouse: Aim Gun
 +
* 1 to toggle ambient light mode
 +
* 2 to toggle dark flashlight mode
 +
* Right click to fire
 +
* 'J' to rotate robot left
 +
* 'L' to rotate robot right
 +
* 'I' to move robot forward

Revision as of 13:55, 13 December 2012

Contents

Animal Maze (Amell Alghamdi, Kristina Pinkerton)

2012-p4.png

Theme and Story

Welcome to the Animal Maze! The baby animals want to play hide and seek with you today. They will all be randomly hidden inside the brick maze, hiding behind various trees. Use the mouse and keys to look and walk all around, they could be hidden anywhere. You better find them all before the time runs out or you will lose and the animals will be very sad and give you no confetti!

List of Technical Features in our Game

  1. Shadow Mapping: We implemented Shadow Mapping with two passes. The first pass renders the scene from the light’s point of view and copies it into a texture image. Then in the second pass we render from the camera’s point of view and send the texture matrix, texture coordinates, and texture image of the shadow plus other uniforms necessary for lighting, textures, etc. to render the actual scene.
  2. Particle System: We implemented a particle system that gave each particle a random bright colors and a slow velocity to resemble confetti falling when the player wins or findings an animal.
  3. L-System (plant): The trees in our scene are recursively generated using the L-System technique and randomly positioned throughout the maze.
  4. Procedural Terrain (maze): Our maze specifications are generated using a depth-first search to randomly break down the walls. We then use this data to build up the blocks of the maze in the scene.
  5. Collision Detection (walls-only): We used a simple collision detection algorithm to only compare against the walls of the maze, that consisted of checking the players desired location, converting it to the square in the maze and checking it against the blocked walls of that square.

An overview of our Creative Efforts

  • Creating original 3D animals and a girl avatar object with Blender. We have a little bunny rabbit, a crocodile, an elephant, a mouse, and pink pony. We built that girl in separate pieces so that she could be animated while she walks. Her feet and arms will move back and forth!
  • The game is set during a starry night within a brick maze. When you move around the scene the stars in the sky appear to be moving and sparkling setting a beautiful scene.
  • Adding important game mechanics such as a timer and a win condition. If you don’t find all five animals within the time limit you will lose and not get to see the grand finale!
  • We implemented randomness for the animal locations, and collision detection with the walls to make the game more difficult and realistic. With these to features our game is different every play and keeps the player from cheating!

Keyboard Controls

W Move forward
D Move right
A Move left
S Move backward
Q Turn left
E Turn right
O Toggle shadow mapping
T Toggle view point
ESC exit game

Robot Defense (Kuen-Han Lin, Matteo Mannino, Ashish Tawari)

2012-p15.png

Background Story

This augmented reality driven experience places you in an awkward situation. Martian robots have worked up the nerve to inhabit your desktop. It all has fallen onto you to do what you born to do, and blow those sons of guns back to the dark side of Jupiter. Right-click fires your proton bomb while aiming with the mouse, and the number 2 key whips out a flashlight to go dark and turn off the lights in your virtual room. (1 switches back to ambient) Just when you think you've seen it all, you may look to your right and find out that, my god, it wasn't a Martian on your desktop - it was your best friend at the keyboard! That's right, this is a two-player experience, fun for whole family!

Project Description

This project features a 3D point cloud mesh reconstruction through Delauney triangulation to model a common desktop. The point cloud from this desktop was obtained from a camera sensor, and the associated camera images have been used to texture the mesh. Rectangle-to-sphere and sphere-to-point cloud collision detection is done to detect bullet collisions with the desktop and the animated player 2 controlled robot. The point cloud also has a bounding box around it for efficiency. The explosions are rendered as particle effects, where the particles are billboarded texture sprites with fire, smoke, and a shockwave. A spotlight is added for an eerie effect, and the whole scene is covered by a galaxy sky box that is literally out of this world.

Our creative efforts were mostly focused on making the desktop mesh look fairly good, and automatically generated from point cloud data. The desktop we used had books, papers, and obstacles on it for the purpose of interesting geometry and height variation. Much time was also spent on tuning our particle explosion effects. The game loop and controls took some time to get the right feel, and various algorithms – such as triangle detection, binary space partition trees, and plane detection - were tried for collision detection with the mesh before settling on point cloud collisions with a bounding box. This provided the most efficient solution, presumably because comparing points is easy, and since it is done in a linear array we minimize cache misses. In contrast, comparisons and calculations for triangle collisions simply took longer due to all the calculations, and the BSP trees with either collision detection was overkill for 400 points that have easy calculations.

Features

  • Point cloud, box, and sphere collisions
    • Point cloud collisions with spherical bullet projectile
    • Box collisions (Bounding box on top of mesh) with spherical bullet projectile
    • Sphere-to-sphere collisions with robot to projectile
  • Mesh construction
    • Delauney triangulation
    • Matching two meshes
  • Particle effects
    • Explosions and smoke effects

Controls

  • Mouse: Aim Gun
  • 1 to toggle ambient light mode
  • 2 to toggle dark flashlight mode
  • Right click to fire
  • 'J' to rotate robot left
  • 'L' to rotate robot right
  • 'I' to move robot forward