Advanced Computer Graphics II (CS6620)

In this course I implemented ray tracing algorithm for computer graphics. I dealt with topics like intersection methods for 3-D objects, including basic and advanced objects, lighting models, reflection and refraction. I also explored ways of dealing with surface, solid, and volume texturing, sampling theory and the aliasing problem. Special effects such as bump mapping, soft shadows, depth-of-field, motion-blur tracing were also implemented.

Assignment No1:

Download: Report

In this assignment, I Implemented classes for Point, Vector, Ray, Sphere, Color and Image. I implement all of the legal operators including arithmetic operators, dot product, cross product, vector length and vector normalize. For extra credit I implemented integrated image viewer. I used C++ for programming and glut for the graphical user interface.

Image generated for this assignment

Assignment No2:

Download: Report

In this assignment, I Implemented the basic architecture of your ray tracer, including base classes for Object, Primitive, Light, Material, Background, and Camera. I also Implemented a Scene class to hold pointers to the appropriate top-level objects. My ray tracer also supported sphere and plane primitives, basic lambertian shading (with shadows), and a pinhole camera model. For extra credit, I also implemented orthographic camera and extended my integrated image viewer.

Images generated for this assignment

Assignment No3:

Download: Report

In this assignment, I extended my ray tracer with the primitives like Box, Disk, Ring, and Triangle. For extra credit, I submitted a creative image, which was a show-off of the features of the ray tracer. . I used C++ for programming and glut for the graphical user interface.

Images generated for this assignment

Assignment No4:

Download: Report

In this assignment, I extended my ray tracer by adding a heightfield primitive and it used bilinear patches for each cell. For extra credit, I produce an image of my choice that shows off the features of my ray tracer. I used C++ for programming and glut for the graphical user interface.

Images generated for this assignment

Assignment No5:

Download: Report

In this assignment, I extended my ray tracer to include the materials like Phong shading, dielectrics, and metal. For extra credit I implemented an advanced shading model called Oren Nayar material model.

Images generated for this assignment

Assignment No6:

Download: Report

In this assignment, I used grids to Implement an acceleration structure for my ray tracer. As an output, I rendered triangle mesh data for the Stanford bunny using grid acceleration structure.

Images generated for this assignment

Assignment No7:

Download: Report

In this assignment, I Implemented texture mapping in my ray tracer. I also implemented a checkerboard texture (that toggles between two different materials), a noise-based marble texture, and an image-mapped texture. There was support for two different types of texture coordinates: linear (no transformations), and polar coordinates.

Images generated for this assignment

Assignment No8:

Download: Report

In this assignment, I Implemented jittered sampling and three filtering methods in my ray tracer. I implemented box, triangle and Gaussian filters.

Images generated for this assignment

Assignment No9:

Download: Report

In this assignment, I extended my ray tracer by adding instancing feature to my ray tracer. I created instance class and a matrix class to implement the feature well.

Images generated for this assignment

Assignment No10:

Download: Report

In this assignment, I extended my ray tracer by adding effects based on Monte Carlo ray tracing to my ray tracer. I implemented soft shadows for the purpose. For extra credit, I implemented depth of field features using C++.

Images generated for this assignment

Final Project:

 

Back | Top