Lecture 1 - Syllabus and Starting Graphics

Introductions

The big sections we'll cover are:

The difficulty of the class is like this:

So keep that in mind.

We'll cover:

We'll have:

You'll need to make graphics programs are going to be system dependent. That's just because graphics is super system dependent. We'll use:

Structure of the Course

Expectations

There's:

Texts:

Let's Start!

Goal: Make a computer to draw. Simple enough.

We did an activity where one person tried describing a pokemon to someone else, who needed to draw it. We drew the following:

IMG_3058.jpeg

In a similar way, we have the goals in CG of:

Ok, so how do we get computers to draw? Think data first. We get an 'obj' file like the following:

v 0 0 0
v 1 0 0 
v 1 0 1 
v 0 0 1
v 0.5 1.0 0.5
...

These are called index faced sets. It describes the vertices of our 3D image:

Then what follows in the file is a list of faces that give the 3 vertices that compose the face:

f 1 3 4
f 1 2 3
f 4 3 5
f 2 5 3 
...

We get a total file like below:

v 0 0 0
v 1 0 0 
v 1 0 1 
v 0 0 1
v 0.5 1.0 0.5
f 1 3 4
f 1 2 3
f 4 3 5
f 2 5 3 

So, for instance, the image in Lecture 1 - Syllabus and Starting Graphics 2024-01-09 13.51.33.excalidraw we have:

v 1 2 1
v 3 1 0
v 1 0 2
f 1 2 3

First Lab

We'll take these .obj files to try to draw various triangles. First, we have to try to draw a single triangle on some window. You'll want to be given pixel locations (ex: (115, 170) draw a green, ...). You'll need to draw the bounding box of the rectangle that contains all 3 vertices: