Skip to content

aaryamanmehta/CS373

Repository files navigation

CS373

My code for the assigned projects of CS187, a course that introduces fundamental concepts of 2D and 3D computer graphics, such as image processing, 2D/3D modelling, 3D graphics pipeline, WebGL, shading, texture mapping and ray tracing. Project overviews taken from the instructions provided by the professo are provided below.

Note that the majority of code that I have written would be under the TODO sections of each project, though there are helper methods and classes that are not under the TODOs.

Warmup

This project is a quick introduction to computer graphics programming using Javascript, WebGL, and three.js. Through this homework, you will ensure WebGL runs correctly in your browser and experiment with some basic features of a provided demo program.

TODO sections in glWarmup.js; one written question, adding two additional shapes to the program (TorusKnot and TorusKnot2 mesh), modifying the code to be able to rotate objects horizontally.

Image Processing

In this project, you will implement several image processing algorithms, including pixel operations, convolution, dithering, and mosaicing.

TODO sections in imProcess.js; implement functions adjustContrast, adjustSaturation, sharpen, uniformQuantization, randomDither, orderedDither, imageMosaic.

Curves

In this project, you will implement algorithms to compute Bezier, B-Spline, and Hermite curves. The starter code can then generate and render surfaces of revolution using the curves you compute.

TODO sections in curves.js; implement functions Beizier, BSpline, Hermite, use your implementation to generate two novel surfaces of revolution of your own design.

Subdivision

In this project, you will implement Loop’s subdivision algorithm to generate subdivided surfaces.

TODO sections in subdivision.js; implement function subdivide.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors