Difference between revisions of "Project7Fall11Summaries"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
Line 1: Line 1:
 
{| border="1" cellspacing="0"
 
{| border="1" cellspacing="0"
| [[Image:2011-p15.png]]
+
| [[Image:2011-p15.png]] [[Image:2011-p15a.png]] [[Image:2011-p15b.png]] [[Image:2011-p15c.png]]
  [[Image:2011-p15a.png]]
+
  [[Image:2011-p15b.png]]
+
  [[Image:2011-p15c.png]]
+
 
|  
 
|  
 
==The Lonely Warren Bear, The Warren Bear is Alone for Christmas (Raymond Paseman, Vincent Huynh)==
 
==The Lonely Warren Bear, The Warren Bear is Alone for Christmas (Raymond Paseman, Vincent Huynh)==

Revision as of 16:53, 6 December 2011

2011-p15.png 2011-p15a.png 2011-p15b.png 2011-p15c.png

Contents

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 here.

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:

  • Particle Systems (Particles and Particle Engine was used for crying tears)
  • Toon Shading (can be run through the Warren bear and water pool of accumulated tears)
  • Water Effects
    • shader for Fresnel Effect with light
    • animated small waves with changing generated Height Map
    • transparency through alpha blending
  • Bezier Patches (alternative way to display the water and waves) [incomplete]

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

  • "C" - causes the bear to cry and stop crying
  • "B" - toggles the bear between the various shaders (no shading, per-pixel shading, and toon shading)
  • "W" - toggles the body of water between the various shaders (no shading, per-pixel shading, toon shading, and Fresnel Effect shading)
2011-p2.png

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.

2011-p1.png

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:

  • Procedurally modeled city (w/ L-system modeled roads)
  • Environment mapping
  • Toon shading
  • Movement of camera along a piecewise Bezier curve

Supported keyboard & mouse interactions:

  • 't' - toggle toon shader
  • 'b' - toggle bird-eye view
  • '+' - speed up the camera's moving
  • '-' - speed down the camera's moving
  • 'w' - look up
  • 's' - look down
  • 'a' - look left
  • 'd' - look right
  • mouse - control the viewing direction
2011-p10.png

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

  • w, a, s, d :- standard movement controls
  • [, ] :- shrink, or grow the forest respectfully
  • mouse :- click and hold to move camera
2011-p3.png

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

  • Randomly textured buildings
  • Randomly sized and shaped buildings
  • Bracketed 3D L-Systems
  • Stochasitic 3D L-Systems
2011-p11.png

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

  • p: toggle shadow mapping

Features

  • Using shadow mapping to create realistic shadows for trees
  • Using L-System to create a forest of trees
  • Rotating sun(direct light) that orbits the environment, creating a day/night effect.
2011-p4.png

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

Procedurally Generated Environment Walls of the maze and trees are randomly generated.
Procedurally Generated Plants The placement of the branches of the tree vary.
Collision Detection We used AABB collision tests to prevent the player moving through walls.