vcccaat / computer-graphics-projects

Home Page:https://cs5620-computer-graphic.vercel.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This repo demonstrates my assignments and projects in computer graphics.

Final Assignment

Built a fully functional Kirby game with camera control and different shading effects using three.js and applied basic animation principles on Kirby, Kirby can fly around, walk around and inhale bombs in the scene. Implemented particle system to mimic a waterfall, and used sprite model to design a river on a mountain.

Demo video

Try out here: https://cs5620-computer-graphic.vercel.app/ Source Code: https://github.com/vcccaat/kirby-game

Assignment 4: Ray Tracing

Implemented ray tracing in Python with diffuse shading, specular shading, shadow test, and mirror reflection. The result image:

step7

Source Code: ray.py

Creative part

Our group used the sphere class for building our 3d objects in the rendered image. A Kirby character was built by overlapping spheres. There are also many spheres of different color and size floating in the air. Each of the spheres applied the Blinn-Phong shading. We used five light sources each with different color to give our image more complex and colorful lighting.

DEMO:

Creative

demo1

demo2

Assignment 2

2D transformation

  • Setting PRSA with a matrix and a position vector

  • Basic 2D shape manipulation controls

  • Implement basic Subdivision

Demo video:

Assignment 3: Imaging

Implemented:

  • Photography.ipynb Pointwise transformations apply to every pixel separately. We will use them to compute good-looking 8-bit color images from raw camera sensor data. The curve adjustments we learned about in class fall under this category.

DEMO of white balancing:

whiteblance

whitebalanceAfter

  • Filtering.ipynb Convolution filters involve computing weighted sums over a local area of the image. We will use them to simulate out-of-focus blur and to sharpen images.

DEMO of gaussian filter and sharpen filter:

convolution-reference

convolution-reference-medium

sharpened-reference-medium

  • Distortion.ipynb Image warping involves moving content around in an image. We will apply a simple image warp that corrects for the distortion in a wide angle lens.

    DEMO:

    room

distortion-img-lin-reference

  • CreativePart.ipynb in the creative part, I implemented edge detection using sobel kernel and set obvious edges with a RGB value. I built this filter to mimic the effect of a color pencil sketch

    1

cornell

Assignment 1: Point-Line Duality

In this assignment you will complete the basic mathematical functions underlying an application for visualizing Point Space and Line Space. When you click inside the Point Space window, it will create a draggable green point in Point Space. At the same time, in Line Space, we will see the coordinates of any line that contains our specified point turn green as well. Similarly, if we click in the Line Space window, it will lay down a draggable blue dot in line space (remember, a location in line space is actually a line in Point Space, where we live...). At the same time, we will see the set of points in point space that rest on our selected line turn blue as well. In short: click on point space to put down a point, which is a line in line space; click on line space to put down a line in point space, which is a point in line space...

Completed Demo:

About

https://cs5620-computer-graphic.vercel.app/


Languages

Language:Jupyter Notebook 100.0%Language:Python 0.0%Language:HTML 0.0%