| Home | Syllabus | Assignments | Schedule | Resources | |
DAVID LOPES
Homework 1: Draw my initials and "CSE" on a window using only OpenGL primitives. Homework 2: Draw an animated "creature" and have it interact with the mouse and keyboard. This atom's electrons are constantly orbiting the nucleus. It can be controlled with WASD. The circle centered at the mouse cursor is the user's "gravity well" -- if the atom is within this circle, it will fall towards the cursor. It also bounces off the walls of the screen. If the user holds the left mouse button down, the electrons will speed up. If the user holds the right mouse button down, the electrons will slow down and eventually reverse direction. The user can use the mouse scroll (or the Z and X keys) to adjust the size of the gravity well. The -o flag can be used in the command line to force the program to display the orbitals of the electrons. Additionally, the constants at the top of source code can be easily fiddled with to alter the number of electrons, protons, and neutrons, and their speed, randomness, etc. In this picture, we have three electrons instead of the default 6, and the orbitals are being displayed. Homework 3: Crappy Cart This program displays a very simple cart that the user can move around in a grid-like area. The camera can also be controlled with the mouse, though the camera will always be looking at the cart, and moving along with it. The cart can be moved with WASD -- A and D change the cart's heading, and W and S move the cart in the direction of the heading. The camera can be controlled by holding down the left mouse button and dragging along the screen (pitch and yaw) or by holding the right mouse button down and moving up and down the screen (zoom). Homework 4: Bezier, baby! This program draws a Bezier curve on the screen using input from any given file. It draws the "cage", or each of the bezier points and the lines connecting them in their specific order, and the curve itself, as well as a sphere that is continually moving along the curve, following the t parameter. Midterm Project: Roller Coaster Team: David Lopes, Jeremy Vercillo, Joe Fetsch This project displays a roller coaster on a track. There are three lights set up: The sun, which is a directional light that shines straight down, a strobe light that is emmitted from the center of the front cart of the roller coaster, and a spotlight, which also is emmitted from the center of the front cart and points where the cart is facing. The track is modeled with a series of Bezier curves input from a file. There are three files to choose from (coaster1.csv, coaster2.csv, coaster3.csv) -- each of these files dictates the shape of the coaster track, as well as the location of the scenery objects such as rocks, clouds, and trees. The camera can be panned and rotated, and the user can opt to view a point-of-view or a sky camera in the top right corner. There is also a free camera. These options are detailed in a pop-up menu that can be accessed with a middle mouse click. For more information, see the README.txt file. Homework 5: Particle Systems This program displays particle systems. The systems are of either rain or fountain type, as specified in the control files. The systems are displayed within a skybox, which is a lovely sea panorama. The fountain type can have a specified cone angle that specifies how wide the spread is. Dimensions can be specified for the cloud type -- particles are randomly generated within this box. If there is a cloud being displayed, the user can move it with W, A, S, D, E, and G. The camera is an arcball and can be controlled with the mouse's right and left buttons. HOMEWORK 6: COLLISION GAME This game is all about sprites. Move mario with the WASD keys and shoot fireballs out of his hands with the spacebar. Defeat all the boos to win! They will start spawning at increasing rates. Don't let them touch you, or you lose. Crates get in your way, but they do not affect the movement of the ghosts. Do not fall off the edge. Ghosts that fall off the edge count as kills for you, so be good at dodging! The game has an optional skybox, but it runs very laggily with it. HOMEWORK 7: SHADERS This program depicts a cat lifting its paw to its mouth. It demonstrates the use of shaders to deform meshes and performing advanced lighting techniques (in this case, cel-shading, or toon shading). FINAL PROJECT: THE SINGULARITY Our final project is meant to be an interactive game. The user controls a singularity that can bring in protons into its orbital by clicking and dragging a box around them. We intended to include options to shoot said protons but were too pressed for time to include them. The objective of the game is to acquire all the protons. XC3 : RAYS EVERYWHERE In this final extra credit, ray tracing was implement upon user command, and the resulting image was texture to the screen on a quad and saved in a file called output.ppm. Rays detect intersection with planes and spheres, and they contain information regarding how to color the pixel they represent (things like surface normals and material colors). |