Computer Graphics as a stream


So you have landed up at IIITB. Decision of chosing a stream and electives are two decisions that will come back haunting you time and again, regardless of what you decide to tak up. In this blog I focus on the later and that too from a very focused perspective, for people having interest in the areas of graphics, visualization etc.


There is no particular specialization ‘Computer Graphics’ per se at IIITB, but there is a set of subjects, taken from different streams, which if you can plan and take seriously, will help you build up a very good profile in this domain. Following is the list of subjects that you can take up :

Prerequisites

  • Linear algebra and Probability | GEN501 (Prof. Neelam Sinha and Prof. Poonacha)

I can not emphasize the importance of learning Linear Algebra properly to do any significant work in the field of graphics. From modelling to rendering, simulations to animations, everything rely heavily on LA principles. Being part of prep-sem these courses are covered in a very short span of time and most people are not able to grasp any of it. So, later on, whenever you get time (or rather make sure you make yourself take time for this), make sure that you read up and practise them properly. From Computer Graphics point of view, a light read in the form of Mathematics for 3D graphics and games is a very good resource. Various LA principles are covered in relation to applications in the field of Computer Graphics. For LA in general I liked Linear Algebra and it’s Applications by David Lay. Many people recommend Video lectures by Gilbert Strang and his book Introduction to Linear Algebra as a good source.

Essentials

  • Computer Graphics | CS606 (Prof. Jaya and Prof. Sreekanth)

This course covers fundamentals of Computer Graphics by using OpenGL as programming base. Although it is mostly based on the old OpenGL programming, but the fundamentals are very nicely covered. Do solve all the assignments and go through every paper mentioned in the course notes. These assignments and papers are hand picked and are the papers which you will mostly encounter in industry. Same goes for the papers covered in the Advanced Computer Graphics course. There will be an assignment on modern OpenGL in the form of shaders programming, do take it seriously. If possible take it forward on your own and try to make some small programs using shaders. This will be helpful in your transformation to modern OpenGL later on.

  • Advanced Computer Graphics | CSD602 (Prof. Jaya and Prof. Sreekanth)

This course was started in fall 2014 when some of us (read Srinivas ) showed great interest and requested Prof. Jaya and Prof. Sreekanth to cover some more topics. This course has several papers from modelling, rendering, animation etc. and covers rather modern advancements in the field of Graphics. I personally find this as the best course I attended at IIITB. You can’t have such intellectual freedom in any other course. As said earlier, the set of papers are very very carefuly selected and are almost the essentials for computer graphics students. As much as possible, do not just read the papers, but try implementing them as well. Atleast plan it out with pen and paper as to how these papers could be implemented.

  • Introduction to Scientific Computing | GEN 601 (Prof. Jaya)

(Unfortunately I did not attend this course . So following content is based on inputs from others)

This course covers essential mathematical fundamentals of scientific computing which can be applied to various domains in general. The mathematics learned in this course is not specific to graphics and can be applied to several domains. It is again an assignment based course. Mathematics learned will be very helpful if you want to develop some serious physical simulations systems. Depending on time, there might as well be introduction to OpenMP/OpenCL/Matlab/CUDA programming which goes hand in hand with most Graphics programmers.

  • Data Visualization | (Prof. Jaya)

(Partially audited) This course looks at field of visualization from a practical point of view. Comprises mostly of assignments of which scientific visualization ones are to be done in C++/OpenGL and information visualization ones in mostly HTML/JS/D3.js etc. In case you do not have exposure to OpenGL programming this course would be difficult to manage. It covers several general visualization techniques and provides an overview of various visualizations. If you have inclination towards visualizing data, this is the course for you.

Great addons

Other than the above mentioned subjects, though not directly related, following subjects do meet with graphics/visualization down the road :

  • PE or RE with Prof. Jaya or Prof. Sreekanth in related ares.

  • Designing Gaming Simulations (CS/NCE 855) | by Prof. Dinesh Babu and Prof. Meijer.

  • Geo Information System by Prof. S Rajagopalan

General :

General ideas of ML and DSP/DIP also find usage in Computer Graphics in several places:

  • Machine Learning by Prof. G. Srinivasaraghavan
  • DSP | DIP

For those having specific interest in data/information visualization, following courses can be useful :

  • Data Modelling by Prof. R. Chandrashekhar
  • Web Information Retrieveal or Information Networks by Prof. Srinath Srinivasa

Some inspirations for Visualization

Good books for Computer Graphics (OpenGL) :

Good online resources for Computer Graphics (OpenGL)

The most standard resources

Note: Some of the tutorials mentioned below might be outdated or might not be in alognment with the modern openGL principles. Reader discretion is adviced.

Youtube tutorials

From where and how to learn OpenGl ?

Online Modern OpenGL Tutorials

Others

Comments Section