Review of Edx Computer Graphics Course

I recently finished an Edx MOOC course Computer Graphics (cse167x by UC San DiegoX )  taught by professor Ravi Ramamoorthi. I also achieved a verified certificate from the course. The course taught the foundations of computer graphics by using OpenGL in homework projects as well as asking the student to implement basic ray tracer from scratch using C++ only.

image rendered with the ray tracer I wrote in homework 3.

The course started by teaching basic mathematics needed in computer graphics, vectors and matrices as well as explaining transformations, scaling, rotation and translating. Course also taught orthogonal and perspective projections for viewing. Both the theory and how to create perspective view in OpenGL were taught.

After the basics of mathematics and viewing course taught morthe rendering pipeline, transformations, drawing in OpenGL and how to use pixel and vertex shaders. First homework asked student to build transformation matrices and apply them to the scene given.

Second part of OpenGL lessons dealt with shading in glsl and taught basic light calculations. The course taught basic Gouraud and Phong shading using point light, directional light and spot lights. Also material types needed for shading were taught(emissive, specular, diffuse, ambient colors).  Second OpenGL homework build complete scene viewer, most of the work was to implement shading in glsl and implementing code to read the scene definitions from a file.


Last part of the course was about ray tracing. Lectures taught ray casting, basic intersections like ray triangle and sphere intersections, acceleration and camera and transformations in ray tracing. Also shadows and reflections were taught. The last homework was the most challenging one and taught most. The homework asked to code a recursive ray tracer from scratch with C++.

I felt the ray tracing section and home work was most interesting part of the course and part that taught me most since I have previously used DirectX and was familiar with basics of cg. It was the first time for me to implement a ray tracer and even it was quite simple it taught a lot of things and some parts needed surprisingly amount of time.

Some of the features of the ray tracer of hw3 has:

  • recursive ray tracer
  • reflections
  • shadows
  • point and directional lights
  • triangle and sphere primitives
  • ambient, diffuse, specular and emission material colors

Here is two more scenes I rendered with my ray tracer.

scene8

scene9

Main reason I wanted to write about this is to remember the course  and because the course motivated to want to build another more complete ray tracer from scratch having more features like, soft shadows, refraction, area lights, monte carlo path tracing, textures, obj loader, pbr etc etc. I will write about that project more after I get the project started (soon) 😉

I can recommend the course to anyone interested in computer graphics, it is not an easy course and needs some prior programming knowledge and the home works need a lot of time to finish. But completing the course gives good basic understanding to continue learning and doing own projects.

The course is now self paced and can be started any time.

Leave a Reply

Your email address will not be published. Required fields are marked *