Intro to Computer Graphics

Mini Minecraft Project:

Milestone 1: Terrain:

I used fbm to create height fields for the terrain. I increased the amplitude of the fbm for the mountain and I took the output and raised it to the power of 3 to help create a more peaked structure. For the grass I took the squareroot so that it would be a more flat structure. I also scaled to a smaller value to flatten the terrain. For mixing I used the smoothstep to create a more sudden biome change and mixed using perlin noise. I did not run into many issues many just when I was trying to make the mountains spikier I had some trouble but I found that changing the amplitude helped with that.

Milestone 2: Caves and postprocessing:

I used 3D perlin noise to create the caves. I imported files from HW4 to include the post processing and I had to figure out how to incorporate the frame buffer class in to write the scene to a texture and use the quad class to draw it over the screen from the buffer. I had to read through and understand my partner's use of physics in order to change the physics to swim through water and lava by adding acceleration, modifying the collision detection, and the jumping with a constant speed in water.

Milestone 3: Additional Biomes, Post-Process Camera Overlay

I used multiple noise functions to interpolate between 4 biomes using a method discussed in class. I used various noise functions to create complex biomes. My biomes include a Neapolitan ice cream biome with softer mountains generated with Perlin noise. This biome also include chocolate fudge as the top block above a block height limit and ice instead of water that you can slide on. My second biome is a snowy mountain biome that has a rougher shape using fbm noise to more randomly generated the height field. The water in this biome is the normal Minecraft blue. My third biome is a trampoline biome where I used a flatted biome with a different water type that allows you to shoot out of the water when holding the space bar it allow animates between pink and green. My final biome is a Neon biome where the "dirt" block consists of four choices of colors which are interpolated between using the same method as is used to interpolate between biomes. This biome's water include a green/pink shift animated water. For Post-Process Camera Overlay I edited the fragment shader in the glsl for water and lava to include an animated interpolation between grabbing the fs_UVs and grabbing the distored_UVs which causes a perlin noise effect to shift over the screen depending on time,


Micro Maya Mesh Editor:

Implemented half-edge mesh construction, mesh topology editing operations, a GUI to display and deform mesh components, and OpenGL to visualize mesh and the individual mesh components.

OpenGL Practice:

Modifying vertex and fragment shaders to create surface shaders and postprocess shaders that modify a render.

Scene Graph:

A tree data structure wherein each node contains a transformation matrix, and child nodes inherit the transformations of their parent nodes. Uses C++ pointers and polymorphism as well as linear algebra transformation sequences.