Class Lectures and Reading Assignments
CS 45500
Computer Graphics
Fall, 2022

This page documents what we do in class. It contains Java programs that we will discuss in class, reading assignments, simple homework exercises that you can work on for practice and exam preparation (not for credit), and links to other sources of information.

Remember that the second exam will be on Tuesday, December 13, at 12:30 P.M. See the review problems below.

According to the university's final exam schedule, the second exam for this class will be on December 13, at 12:30 P.M. Below are some review problems for the exam.

Here is a nice visualization of the different Object-Oriented ways of doing matrix multiplication.

Next week, we will briefly look at the following renderer, which implements hierarchical scenes.

Today we will look at the examples in the sub-folder "basic transformation examples".

No class. Thanksgiving break.

Here is the renderer that uses matrices (instead of vectors) to position models in the camera's view space.

Read Sections 1.1 - 2.3 (pages 1 - 19), about linear transformations, from the following reference.

Today we will continue connecting aspect ratios to GUI window events.

Today we will make the connection between aspect ratios and GUI window events.

Today we will look at the following renderer which lets us change the aspect ratio of the camera's view volume.

Today we will look at the "nested" and "local" class examples in the "event-experiments" folder.

I added new memory diagrams to some of the Java programs and I added more explanations. So please redownload the zip file.

Today we will look at some model-view-controller examples in the "event-experiments" folder.

The first midterm exam is today.

For next week, read the following sections about event handling.

Remember that the first midterm exam is this Thursday, October 27. See the review problems from last week.

Today we will look at the "event-experiments" in this folder.

Here is a another good introduction to Java GUIs.

Remember, the first midterm exam will be a week from today, October 27. See the review problems from Tuesday.

Today we will look at the "gui-experiments" in this folder.

Here is the transcript of the JShell session we used in class. This session used the script file guiExperiment2.jsh from the folder JavaGUIs\gui-experiments

The first midterm exam will be Thursday, October 27.

Here are some review problems for the midterm exam. The formula sheet will be included with the exam.

Today we will look at an example of an event-driven GUI program.

Here is the transcript of the JShell session we used in class.

Today we will finish the rasterization stage of the rendering pipeline.

Read the first two sections of this introductory chapter about Java GUIs.

Here are several other introductory chapters about Java GUIs.

No class. Fall break.

We will finish projection and begin the rasterization stage of the rendering pipeline.

Read this overview of rasterizing lines from this book.

Here are several demonstration programs of perspective and orthographic projection and the computer graphics camera.

See the homework assignment page for your third programming assignment.

We will use the following example programs to analyze the projection stage of the rendering pipeline.

We will use the following example program to analyze the World2Camera stage of the rendering pipeline.

Today we will begin talking about the rendering algorithms.

Today we will finish looking at the Scene data structrue.

Here is the code that we used during class.

See the homework assignment page for your second programming assignment.

Today we will continue to look at the Scene data structrue and then begin talking about the rendering algorithms.

The two most fundamental algorithms in a 3D graphics rendering pipeline are projection and rasterization.

Read this explanation of perspective projection from scratchapixel.com.

Read this explanation of rasterization from scratchapixel.com.

Here is an interactive version of the renderer. We will use it for demonstrating ideas but we won't talk about how to make it interactive until the week after next.

Today we will continue to look at the Scene data structrue, which is the input data structure for the 3D renderer.

Here is the example program we looked at during class.

Today we will start to look at the Scene data structrue, which is the input data structure for the 3D renderer.

Read this overview of 3D rendering (from scratchapixel.com). It explains some of the ideas in the scene package.

Today we will finish the following pixel examples.

Read this overview of 3D rendering (from scratchapixel.com). It explains some of the ideas in the scene package from renderer_1.zip.

Today we will continue to use these pixel utilities,

to study the following pixel examples.

I updated hw1 to include information about the exact locations of the viewports in the framebuffer.

See the homework assignment page for your first programming assignment.

Today we will use these pixel utilities,

to study the following pixel examples. Read the ReadMe.txt file in the following zip file and do the exercises described in it.

Watch Introduction to rendering, a video about rendering from Pixar In A Box.

Read Chapter 4: Movie CGI, an introduction to computer graphics taken from this book.

Read Chapter 1, pages 1-16 from this book.

Read Chapter 1 (PDF) and Section 2.1 (PDF) from this book.

Here are a few small utilities that let us look at pixels on the computer screen.

We will discuss the code in this zip file (be sure to read the Readme.txt file from this zip file).

Here are interesting demonstrations of many computer graphics concepts.