Skip to content

Storage repository for the 4 assignments I did for the 'Intro to Computer Graphics' course I took in fall 2017.

Notifications You must be signed in to change notification settings

Beskamir/Intro-to-Computer-Graphics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intro to Computer Graphics Coursework

Storage repository for the 4 assignments I completed for the Intro to Computer Graphics course I took in Fall 2017.

For additional images, click here to go to my ArtStation.


Assignment 1: Hilbert Curve

Features:

  • Rendering done with OpenGL.
  • Draws first to tenth order Hilbert Curves using OpenGL's lines as well as by using thin triangles.

Multi-colored 7th order Hilbert Curve using thin triangles for the lines:

Credits:


Assignment 2: Image Manipulation

Features:

  • Rendering done with OpenGL.
  • Draw multi-colored Catmull-Rom curves and loops.
  • Apply image filters (grayscale and 2-bit quantization).
  • Move and scale the image.

Multi-colored Catmull-Rom spline drawing and 2-bit image quantization:

Original image by nexus user realdreadstar (check credits section):

Grayscale filter uses NTSC conversion weights:

2-bit image quantization:

Credits:


Assignment 3: Model Viewer and Basic Editor

Features:

  • Rendering done with OpenGL.
  • Models can be selected by mouse clicking on them.
  • Selected models can be modified by rotating, scaling, translating, duplicating, or turning various textures on or off.
  • Supports basic OBJ features and models/textures can be imported with a config file or command-line arguments.

Lighting model:

  • Phong lighting using diffuse, specular and ambient occlusion textures.

Scene was built in engine using the model transformation tools I implemented:

Credits:


Assignment 4: Whitted Ray Tracer

Features:

  • CPU only and thus does not make use of OpenGL in any way.
  • Ray intersection test for spheres and triangles.
  • Functional shadow, reflection, refraction, and diffuse bounces.
  • Gamma correction.
  • Procedural textures.
  • Directional and point lights.
  • Supports basic OBJ features and models can be loaded with a config file.

My custom scene:

Default Cornell box:

Credits:

  • All models either made by me or specified in the assignment description.
  • Most of the ray tracer code was based on https://www.scratchapixel.com

About

Storage repository for the 4 assignments I did for the 'Intro to Computer Graphics' course I took in fall 2017.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published