CSE167 Intro to Computer Graphics

CSE 167: Intro to Computer Graphics

This ‘vault’ contains all the notes for CSE167 WI23 taught by professor Ravi Ramamoorthi. The notes are originally in Obsidian-flavored markdown, so the best way to view the notes is using obsidian (using standard markdown viewer might result in mis-rendered figures).

Disclaimer: The notes are by no means a comprehensive introduction to computer graphics, and it draws heavily from Professor Ravi Ramamoorthi’s lecture slides and Zane Wang’s lecture note. Therefore, these notes are, at best, a secondary source. When in doubt, always consult primary sources like the OpenGL red book, Fundamentals of Computer Graphics, etc.

Table of content

Miscellaneous

Why am I doing this: I have to confess that I was guilty of doing the following 1) skipping classes because of scheduling conflict (or just because my bed was too comfy) 2) napped during classes because topics progressed with too fast a pace or too little a motivation or just too tired a “me” being an overwhelmed college student. Then I had to painstakingly go back at recordings/slides to piece-up the lecture content, which was not fun because often slides are hard to decipher and recordings are of poor audio/video quality. Hopefully with this series of notes, you don’t need to do the same. (Don’t get me wrong, please go to lectures if possible!).

Goal: I strive for 2 things - motivation and explanation.

  • Motivation: I am most likely to fall asleep during a class when I don’t know why I’m learning the concept. Therefore I try to motivate each topic to the best of my ability, so hopefully you can justify going through the pain of staying up and trying to understand it.
  • Explanation: Slides are (at least in my opinion) only good for presenters to, well, present the concept. It works terrible for reviewing since lots of logics are only present during the delivery- they are already gone by the time of reviewing. Therefore I try to include as complete a chain of logic as possible, so hopefully you don’t experience this: \(\begin{align*} &\text{First 5 minutes: }\\&\quad y=kx+b\\ &\text{After 1 peek away from blackbord: } \\&\quad R(w,\phi)=\left[\begin{array}{lll} x_u & x_v & x_w \\ y_u & y_v & y_w \\ z_u & z_v & z_w \end{array}\right]\left[\begin{array}{ccc} \cos \phi & -\sin \phi & 0 \\ \sin \phi & \cos \phi & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{lll} x_u & y_u & z_u \\ x_v & y_v & z_v \\ x_w & y_w & z_w \end{array}\right] \end{align*}\)

Some (sloppy) abbreviations are used throughout to make note-taking easier. Here are some explanations:

AbbreviationMeaning
e.g.For example
i.e.In other words
btw.Between
s.t.Such that
w/With
w/oWithout
w.r.t.With respect to
w.t.sWant to show
coord.Coordinate
iffIf and only if
$\equiv$Equivalent to
$\sim$Similar to