Difference between revisions of "Project7Fall11Summaries"
Line 47: | Line 47: | ||
* Delete block: Right mouse button | * Delete block: Right mouse button | ||
* Enable/Disable rendering options: O, L, and P | * Enable/Disable rendering options: O, L, and P | ||
+ | |} | ||
+ | |||
+ | {| border="1" cellspacing="0" | ||
+ | | [[Image:2011-p8.png]] | ||
+ | | | ||
+ | ==Wild Wild West (Andreas Ulltveit-Moe, Fredrik Hvaring)== | ||
+ | |||
+ | The theme for our project is an old western city. The user can walk around on the city's only street. There is a bank, saloon, sheriff's office and a hotel. There are also citizens walking around on the street. For technical features, we have implemented procedurally generated mountains, bushes designed with the use of L-Systems and camera-movement along a Bezier curve. | ||
+ | |||
+ | '''Keys:''' | ||
+ | * 'w' - forward | ||
+ | * 'a' - left | ||
+ | * 's' - backwards | ||
+ | * 'd' - right | ||
|} | |} | ||
Revision as of 17:41, 6 December 2011
![]() ![]() ![]() |
Blocktastic (Ryan Mourey, Josh Walters)About Our goal was to copy the look and feel of the game Minecraft, with some added visual features (SSAO and Shadow Maps). Minecraft is well known for its distinctive blocky look. We wished to re-create this, and see what that would look like with fancy lighting and shadow effects From our time playing Minecraft we became curious how it draws so many polygons per frame while still having the game playable on low end computers. We also wanted to explore the capabilities of having a first person camera, complete with gravity/jumping and object collision allowing for the player to climb block mountains and explore block valleys. Minecraft included minimal lighting effects, so we wanted to explore how shadow maps and SSAO would look in a world full of blocks. For our procedurally generated terrain we want to make blocky mountains and valleys that the player can climb up and walk into. Technical Screen space ambient occlusion (SSAO) was implemented using the model put forward in the Crysis paper. The depth buffer is read after the scene is fully rendered, we then compare each fragment to the depth of surrounding fragments and produce an occlusion factor. Our shadow map shader was implemented in the traditional way, the depth buffer from the light perspective is used to see if a fragment in the camera space is occluded. We improved upon standard shadow maps by using percentage-closer filtering (PCF). We applied a jitter to each texture read in order to help reduce the Moiré pattern. At high sample rates it produces very high quality results resembling true soft shadows. Terrain generation is done in two passes. The first pass generates most of the terrain using multiple sin and cos waves based on pseudo random numbers and a given seed. The second pass places lakes and grass. Collision detection is accomplished by treating the player as a rectangle, and then checking for collision with all eight of the player vertices. As the player moves through the game the game always knows what block the player is on, and if the player is not on a block than the player is affected by gravity, which accelerates the player down. Rendering and scene management is a done the following way:
Controls
|
![]() ![]() |
Flights of Fancy (Corey Mangosing, Brian Yip, William Seo)For our final project, we will create a movie consisting of a scene of an airplane flying through a the sky. The scene consists of a stunt plane performing aerial maneuvers over the backdrop of a vast canyon. To accomplish this project, we are planning to implement following techniques.
|
![]() |
The Future of Rampart (James Farquhar, Patrick Guan, Matthew Jones)Click here for the project's web site Story In the distant future, humans have long since abandoned the confines of Earth's terrestrial bounds. However, warfare is omnipresent and humans must always fight to prove who has the bigger pillar. Since it is the future, everyone is super smart and puzzle addiction has become the norm among teenagers. Now that we're traversing the universe with quantum neutrino technology that travels faster than light, humans have long since settled on many planets. A new popular fad with teens is to play the rampart. Teenagers will pick a random planet in the solar system that is stable enough to build on and will fight each other in an epic battle known as a Rampart. The objective is simple--destroy each other's territory by blowing it up. The players have one round of establishing a fortress, one round of placing artillery, then one round of destroying the other fortress. The fortress acts as a laser shield around the resource center it encloses. The blocks players use to surround a resource center are shaped much like tetris blocks, as the tetris fandom has long since evolved from mobile phone games centuries before. Once the players enclose resource centers, they have a round to place artillery, synthesized from the local resource foundry. Once this is done, the players will attempt to obliterate the walls and/or artillery recently established by the adversary. After that, there is a rebuilding period where the adolescent emperors have to cleverly rebuild their fortress as to first seal back up their territory then surround another tower to gain more resources for artillery. After this phase, the teenagers safe up in their space ships will attempt to secure victory by shooting their cheap interplanetary lasers at the enemy territory. If no tower is enclosed by walls, the laser will obliterate the resource center, signifying victory. This process continues until only one player has resource centers still standing and shielded. In the end, only the most clever of teens will have a fortress left standing. It is up to you to be this calculating conqueror. Techniques
Game Engine We made a simple game engine to handle the game logic for this game. It includes a scene graph to handle player controls for arbitrary number of players. It also handles events such as updating the scene and calling the special effects |
![]() ![]() ![]() ![]() |
The Lonely Warren Bear, The Warren Bear is Alone for Christmas (Raymond Paseman, Vincent Huynh)(The Warren Bear Doesn't Want to be Alone for Christmas) Download a PDF version of this summary with more pictures. Theme: Around this time of year, every year, the students of UCSD depart from the campus to escape from the painful confinements of education. They return to their friends and families to reunite, converse, and feast in celebration of Christmas and New Years. Their minds wander away from reality as they engage in boisterous activities. Everyone is at liberty from their personal dilemmas and without a care in the world. However, back at the UCSD campus, one poor lonely soul has been left behind, all alone in the empty silence. From the day the Warren Bear was born, he has experienced loneliness in the limited confines of the engineering quad lawn of the Warren College Campus. Upon first sight and joy of the holiday season, the students have temporarily forgotten and abandoned the Warren Bear. All alone, Warren Bear cries himself a river anxiously awaiting for the day that the celebrations end and the students return to him. He cries for attentions in hope that he will find some companionship to get him through these cold, tough times. Technical Features:
Techniques: Our first endeavors began with creating the focus of our project, the graphical representation of water. We began at first by using a grid of many Bezier patches to portray the surface of a body of water. The Bezier patches would have changing control points to animate some moving small waves within the water. However, we ran into some complications dealing with the C1 continuity within a grid of Bezier patches. It was simple to deal with C1 continuity with a 1-dimensional/direction attachment of Bezier patches (as in a 2-patch piece flag), but it was slightly more troublesome with 2-dimensional/direction attachments of many patches to create a grid collection of Bezier patches representing our pool of water. This ultimately lead to issues calculating the proper normal vectors at the joining edges. Normal vectors are the determining factor to produce proper effects with the light interaction properties of water. Assuming the Bezier patches were fully functional, it would suffice for our body of water. At this point we decided to try out an alternative method to represent water, using height maps to generate our body of water. The waves and animations of the water are now produced by creating a height map using the product of a sin function and cos function using the u-coordinates and v-coordinates along with an increasing time value to vary the waves in different locations. Our next focus was to add the bear in as the centerpiece to our scene. The Warren Bear was provided to us through an .obj file containing the vertices to draw the bear onto the screen. It was a simple task. We produced two shaders to show the Bear in a different way. One was using a more natural method to color to bear in the given lighting. It was a shader to shade the Bear for a point-light with Per-Pixel Shading using the Phong Illumination Model. We then produced a Toon Shader to shade the Bear in a less serious and fun manner. It provides a funny cartoon way to display the scene. To give a reason for the sudden body of water being created, we came up with the idea to have the bear create the pool of water through the form of tears. For this reason, we introduce a particle system to simulate particles of water flowing into the body of water. To make it seem like particles of water, we use numerous random number functions to generate the directions in which the particles move. In addition, the life span and initial velocity of each particle varies as well to bring some randomness and spread out the particles. Certain thresholds are used to prevent the particles from flying all over the place or living forever. In addition, thresholds are used to make the flow of particles move in a certain direction and orientation. To complete our project, we worked on additional effects that portray the visual properties of water. We introduced a shader that contributes the Fresnel Effect to the surface of the pool of water. This effect is what causes water to seem both transparent and opaque. From a large view angle compared to the normal vector of the water surface, water tends to reflect a lot light making it bright and glare at the viewer. However from a small view angle, water tends to reflect little light, and the viewer sees through the water surface as if it is transparent. To simulate the transparency, we use alpha-blending with the water to make it blend colors with the objects behind or within it and make it "seem" transparent. There are some particular effects that we had not done in our project due to the intensity of the calculations. For the Bear's tears, we didn't handle proper alpha blending. If proper alpha blending was taken care of, it would project a visual effect similar to what is seen on waterfalls. Large masses of water particles with randomness of movement would contribute to a range of colors from darker blues to lighter blues to whites to demonstrate transparencies based on density of the water particles. However, based on the number of particles we used, we would have to keep track or calculate a particle's position compared to another water particle's position for proper alpha blending. This relative calculation would be on par to calculating collision detection between all the particles. In addition, another intensive calculation would be calculating where the particles hit the body of water to produce a visual effect of ripples and turbulences in the water. This is literally doing collision detection for thousands of particles as they hit the water. In addition, the body of water is constantly moving, so it'd have to be calculated constantly. The region of contact of the particles with the body of water would gradually get closer to the Bear as the body of water rises up. Instead, we handle this by determining general locations to produce the ripples and turbulences based on the water level. Toggle Keys
|
![]() |
Watch out for that Tree! (Jeanne Wang, Andrew Muinos)You are a cute little bunny hopping through a procedurally generated terrain of L-system trees. Sadly you are also not the brightest of bunnies and don't always look where you're going. Try to watch out for that tree! Luckily for you, little bunny, you and the forest look cool due to our screen space ambient occlusion shader, so props to you for that. |
![]() |
A Day in Metropolis (Peter Fu, Zhe Fu)The view is quite good from up above! Flying high above Metropolis the viewer can get a glimpse of the vast buildings and highways that make up Metropolis. Built by through the power of procedural modeling and sort of L-system, the city consists of buildings of different sizes and roads that dissect the city in every which way. Following the path of piecewise Bezier curves, the viewer is taken on a trip around the city high above the streets where one can view the sky above them and the city below them. Mouse movement also give the user control of the view, and can view the city in any which direction. If the view seems less interesting, turn on the toon shading to see another face of the city. As the sun rises high above the city be sure to notice what difference light makes on the faces of the buildings. The city is looking good from all points of view. The technical features we focused on are:
Supported keyboard & mouse interactions:
|
![]() |
Eternal Woodland (Anthony Medeiros, Trevor Pottinger)Project Description You find yourself in a forest. The plants are very interesting looking and you notice they all are uniquely different but strangely realistic. As you travel through the Eternal Woodland time slows giving the forest time to expand an infinite distance. You begin to question reality. Can this be real? Am I lost? Can you escape the Eternal Woodland? Time can’t tell. Planned Effects We plan on using Liedenmeyer-Systems to draw the trees and then we will add an ambient occlusion shader to make the trees appear more realistic. Should time persist, we will draw the trees procedurally and allow for more free realming of the Eternal Woodland. Since ambient occlusion is only interesting when objects are overlapping and there is a lot of them on the screen, we will have density parameterized in the drawing of our trees, If we have time to make a forest, using procedural drawing, we will have the density of the forest also parameterized. Creative Efforts We will spend our time making the trees look unearthly but still being biologically feasible. To the common viewer, the trees should look eerie, yet somewhat familiar, because they will be based off of willlow and eucalyptus trees (Should be basing off models that are around such as dragon trees etc.). Our goal will to have different colors, but appear soft, and earthy like all trees do. We plan on doing this by having grammars as an input. Random generation of the forest will be seeded by random variations in the grammar for each individually spawned tree. Since the shader simply works or doesn’t, the creative efforts there will be to figure out accurate amount of sampling, and possibly different weights. Then, since as long as the shader is being implemented, adding phong shading (should time persist) should make the trees appear more realistically round. During our research of ambient occlusion we came across different methods for computing it, and our creative efforts could also be spent on comparing the different methods. Screen Space Ambient Occlusion We learned a great deal about the rendering pipeline, and the vast possibilities that emerge when a texture is rendered in real-time. The main difficulties of this effect was debugging, due to the limited commands that can be used in GLSL, and calculating values in different coordinate spaces. Lindenmayer System Trees Determining when to draw the leaves was slightly more difficult than the rest of the effect. Controls
|
![]() |
Procedural Victorian City (Cathy Hughes, Zhanzhan He)Theme and Story We created a procedurally generated Victorian-inspired city which can be explored through means of a first person character control system. Specific Rendering Effects The world has a park filled with trees and bushes generated by L-Systems surrounded by buildings generated using procedural modelling. We seed the world generation using a string supplied by the user, similar to games such as Minecraft. If the user finds a world they particularly like, it can be reproduced by supplying the same seed. The buildings are randomly sized boxes with various numbers of randomly sized windows and doors, as well as a slanted roof of varying pitch and orientation. The number of stories of the houses are also randomly generated. We created a 1st person control scheme similar to that seen in video games. The user is able to walk around and explore the world using the w-s keys to move forward and back, a-d to rotate side to side, and q-z to rotate up and down. Creative Efforts We used seamless repeating textures for our buildings (including thatched roofs, stone and timber-framed walls, and brick chimneys) and appropriate colors for our plants to convincingly convey our Victorian theme. We also made the world as non repetitive as possible. We achieved this by generating different varieties of trees and plants using different L-System rules and randomizing their placement. We also have a library of textures for walls, roofs, doors and windows of buildings from which we select randomly to improve the amount of variation. The park also features a fountain which shoots L-System generated water and is surrounded by wooden park benches. To improve the realism of the world, we render it in a bounding box or with a texture to represent the sky and use the built in OpenGL lighting. Feature Summary
|
![]() |
A Day in the Forest (Eric Anderson, Huy Tran)The general idea would to create a moving sun that would hover over a simple forest of basic trees. As the sun moves over the environment, it would expose shadows of the trees and other objects that would be seen. Because the sun would be "orbiting" around the environment, it would also create a pseudo night/day effect. The trees of the environment would be created using a basic L-system whereas the shadow effects would be implemented using simple shadow mapping. Controls
Features
|
![]() |
Winter Woods Maze (Shannon McPeak, Chris McFarland)Hidden deep within the snowy forest ruins lies a secret treasure... can you find it? For our final project, we made a maze that takes place in a forest setting during the winter. The story behind our project is that someone is lost in forest ruins looking for a hidden treasure. The objective of the maze will be to find the treasure chest that is hidden somewhere in the maze. The walls of the maze are composed of stone and covered in vines and the floor of the maze is covered in snow. There are large dead looking trees within the maze (since it is winter, the trees have no leaves) and there is also a fog effect. The player is able to navigate with the standard WASD/mouse controls ('a' and 'd' allow the player to strafe). This allows the player to look around in their environment. The mouse look up and down is limited to a fixed range to simulate how far you can tilt your head back. For our technical features, we procedurally generated both the maze itself and trees within the maze. The tree trunks have branches that vary in their orientation. Lastly, we implemented collision detection with the walls so that the player is not able to go through them. The player is able to slide along walls. For our artistic efforts, we focused on creating an appealing winter atmosphere. We attempted to make our maze artistically stylized rather than photorealistic. The mood of the scene is meant to be mysterious. Technical Features Summary
|