# Pages Home CS 351 - Graphics Portfolio

Go to start of metadata

### Assignment 1: Creating Images in C

Unknown macro: {table}
Unknown macro: {tr}
Unknown macro: {td}
Unknown macro: {td} A two step algorithm that included creating a mask of my photo and then alpha-blending it together with the clouds image, let me place myself into the fluffy sky. =)
Unknown macro: {table}
Unknown macro: {tr}
Unknown macro: {td}
Unknown macro: {td} Depending on the intensity of blue in the left clouds image I made the image of me in the clouds transparent. If the blue of a pixel was in the range of 50 to 255, I made it more transparent then for the ones out of range.

### Assignment 2: Fractals and Lines

To implement images below we had to create a structure for storing data of an image, functions for manipulating that data and a function for writing an image out.

Unknown macro: {table}
Unknown macro: {tr}
Unknown macro: {td}
Unknown macro: {td}

Julia and Mandelbrot set function iterated over formulas representing a complex plane properties until formula would get to infinity, which was when the final number of iterations was used to choose a pixel color for the output image.
Two images of Julia set here show how when we are zooming onto the image, the shape of the set stays the same.

Unknown macro: {table}
Unknown macro: {tr}
Unknown macro: {td}
Unknown macro: {td} The first image, which is also a part of the blended one, was my exploring attempt to map a properties of my own formula onto a plane. It is not hard to see that main component of my formula was a log function.

### Assignment 3: Graphics Primitives

Unknown macro: {table}
Unknown macro: {tr}
Unknown macro: {td}
Unknown macro: {td} Spaceship program used the Polyline and Line draw functions we created among other graphics primitives. New function parabola() was created, that drew a polyline of parabolic look, which was achieved by specifying y-coords of all points with a quadratic formula.

### Assignment 4: Scanline Fill

Unknown macro: {table}
Unknown macro: {tr}
Unknown macro: {td}
Unknown macro: {td} Both Barycentric Coordinates and Scanline fills let me draw a neat Sierpinski triangle. Which is just such a fascinating shape that I could not resist it from creating an animation with increasing number of subdivisions. You may hypnotize yourself with it right below.

### Assignment 5: Transformations and Viewing

Here you can enjoy the popular scene from the night sky: "A Falling Star". Feel free to make a wish!) The motion of the star across the image was achieved through implementing a 2-D pipeline, where matrices were manipulated to transform image objects. The top image involves just the translation of the star across the sky. In the second image 2D scaling also added to the scene.

Unknown macro: {table}
Unknown macro: {tr}
Unknown macro: {td}
Unknown macro: {td}

### Assignment 7: Z-buffer Rendering + Assignment 6: Hierarchical Modeling System

This orbiting installation is a formation of one big cube rotating around y-axis, while small cubes orbit it rotating around various axis, all put together using the modeling system that let us manipulate scene objects on a higher level. Also z-buffer is used in the image, which means when any of the cubes go out of your sight behind another one, they are not being drawn.

### Assignment 8: Shading

Here to the previous image was added the use of Phong shading algorithm. Surface normals and surface locations were interpolated so if a light source was to be placed at some point, the light will be realistically get reflected from the cubes. In the following image the light source is right in front of the image.

### Assignment 9: Z-buffer Texture Mapping

To make this Mandelbrot set be mapped onto the center cube, texture coordinates in every pixel of the image were calculated so that the colors withing that area were averaged to give resultant pixel value.

Labels