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

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.

A version of the renderer that implements hierarchical models.

A version of the renderer with solid geometry and textures.

Remember that the second exam for this class will be one weekk from today, on December 12, at 2:45 P.M. See the review problems from last Thursday.

Today we will look at the examples in the folder rotation_pattern.

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

We will start to look at the examples in the folder basic_transformation_examples.

Here is the textbook that we looked at today about multiplying transformations.

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

Here is the renderer that uses linear transformation matricies. Read the Readme.txt file from this zip file.

Here is an interesting online demo of 2D linear transformations.

No class. Thanksgiving break.

See the homework assignment page for your fourth programming assignment.

We will use this picture to explain the view-rectangle/viewport API.

We will briefly look at how the camera can moved using a translation vector.

Next week we will add matricies to the renderer. Read Sections 1.1 - 2.3 (pages 1 - 19), about linear transformations, from the following reference.

Here is the renderer that uses linear transformation matricies.

We will look at how the camera's view volume (and view rectangle) can be resized.

Here are several demonstrations of the perspective camera API.

We will look at how color is added to the renderer.

Here are the code examples that we wrote in class today.

See the homework assignment page for your third programming assignment.

We will look at how color is added to the renderer.

We will look at how the renderer is made interactive.

The first midterm exam is today.

Remember that the first midterm exam is this Thursday, October 26. See the review problems from October 12.

Today we will look at examples from the how_to_handle_handlers folder.

Here are some references about writing anonymous inner class event handlers.

The first midterm exam will be a week from today, on Thursday, October 26. See the review problems from last week.

Today we will look at examples from the watch-events folder.

Today we will look at examples from the event-experiments folder.

Read the file Readme_event-driven-guis.txt in JavaGuiEvents.zip.

The first midterm exam will be moved to Thursday, October 26.

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.

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

No classes today. Fall break.

See the homework assignment page for your second programming assignment.

Today we will look at examples of simple GUI events.

Today we will look at examples of simple GUI programs.

Today we will finish the line rasterization and line clipping stage of the rendering pipeline.

Here is a link to an animation of pixel-plane vs. framebuffer while rasterizing. You need to step to the 14'th page of the presentation.

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

Here are several other introductory chapters about Java GUIs.

Today we will talk about line rasterization and line clipping.

Here is a formula sheet that documents all the steps that a vertex goes through as it moves down the rendering pipeline, from a vertex in model coordinates to an index in the framebuffer's pixel-array.

Today we will finish talking about projection and start to talk about line rasterization and line clipping.

Read the sections about Rasterization and Clipping in Readme_r1.txt from renderer_1.zip.

Read this overview of line rasterization. Be sure to play with all the interactive demos in the web page.

We will continue to use the programs in the folder

renderer_1\clients_r1\Position_Model_Vertex_LineSegment
to analyze the Model2Camera and Projection stages of the renderer.

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

Read this overview of rasterizing lines from this book.

We will use the programs in the folder

renderer_1\clients_r1\Position_Model_Vertex_LineSegment
to analyze the Model2Camera stage of the renderer.

Read this explanation of perspective projection from scratchapixel.com.

Today we will finish with the code in folder "renderer_1\clients_r1\simple_example".

On Thursday we will start to talk about the rendering algorithms. Read the sections about Model2Camera and Projection in Readme_r1.txt from renderer_1.zip.

Today we will continue with the code in folder "renderer_1\clients_r1\simple_example".

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

Remember to read the sections about the Scene, Camera, Model, and Position data structures in Readme_r1.txt from renderer_1.zip.

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

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

Today we will finish talking about the FrameBuffer and Viewport data structures. Then we will look at some very simple examples of "pixel algorithms" (image processing algorithms).

For next week, read the sections about the Scene, Camera, Model, and Position data structures in Readme_r1.txt from renderer_1.zip.

Today we will talk about the FrameBuffer and Viewport data structures using the examples in the following folder. Read the ReadMe.txt file in the folder. Also read the sections about framebuffers and viewports in Readme_r1.txt from renderer_1.zip.

See the homework assignment page for your first programming assignment.

Here is an interactive version of the renderer. We will talk about it next week.

Today we will talk about the FrameBuffer data structure. We will use these pixel utilities,

to study the following examples. Read the ReadMe.txt file in the following zip file.

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

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. Read the Readme_r1.txt file from this zip file (up to the section about the Scene package).

We will use the code in this zip file to explain Java packages, Java's classpath, and jar files.

Here are interesting demonstrations of many computer graphics concepts.