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.
- Rendering done with OpenGL.
- Draws first to tenth order Hilbert Curves using OpenGL's lines as well as by using thin triangles.
- Regarding the software implementation the following resources were invaluable:
- For understanding OpenGL: https://learnopengl.com
- For input: http://www.glfw.org/docs/latest/input_guide.html
- For the window: http://www.glfw.org/docs/latest/window_guide.html
- 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.
- Original image is by realdreadstar/Natty Dread and he made it by setting up a custom scene in The Witcher 3 and taking a screenshot of it.
- Link to realdreadstar's version on the Nexus
- Link to Natty Dread's version on Flickr
- Regarding the software implementation the following resources were invaluable:
- For understanding OpenGL: https://learnopengl.com
- For input: http://www.glfw.org/docs/latest/input_guide.html
- For the window: http://www.glfw.org/docs/latest/window_guide.html
- Lines drawn using: https://vicrucann.github.io/tutorials/osg-shader-3dlines/
- 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.
- Phong lighting using diffuse, specular and ambient occlusion textures.
- All models and textures shown in the image were provided to us by the TA as part of the course.
- Regarding the software implementation the following resources were invaluable:
- For understanding OpenGL: https://learnopengl.com
- For input: http://www.glfw.org/docs/latest/input_guide.html
- For the window: http://www.glfw.org/docs/latest/window_guide.html
- For being able to select models by clicking on them: https://en.wikibooks.org/wiki/OpenGL_Programming/Object_selection
- 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.
- 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