Introduction

This is the documentation for a sequence of educational 3D renderers written in Java.



This course does not assume that you are familiar with 3D computer graphics programming.

This course covers both 3D graphics algorithms and how to write 3D graphics programs using Java.

This course also covers the basics of event-driven GUI programming using the Java AWT and Swing frameworks.

Besides teaching the basics of computer graphics, this course has several other goals.

  • Learn to read documentation.
  • Learn to read code.
  • Learn how large projects are structured.

This course does assume that you are a Computer Science student, or someone who is interested in software design. This course assumes that you are familiar with basic data structures and algorithms, operating systems theory, object-oriented programming, and have a better than basic knowledge of Java.


To get an overview of computer graphics, read the following introductory chapters from a few graphics textbooks.

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

Read Chapter 1 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 links to demonstrations of many computer graphics concepts. If you like computer graphics, you will find a lot of inspiring examples in these web sites.


There are many high quality, free, tutorials and books about computer graphics programming, some using C++, some using JavaScript, and some using Python. Here are links to a few.


The code for the renderers uses many feature from the Java language (inheritance, interfaces, inner classes, generics, I/O streams, lambda expressions, packages, properties, etc.). We also use a number of software design patterns (factory methods, observer, model-view-controller). Much of this is not covered in CS courses, but it is all very common in large Java code bases. Here is a list of recent Java books that cover all of these features. Most of these books are not "textbooks". They are written to be used by working programmers who need to learn new concepts.

If you are on campus and logged into the campus network, then you can download all of these books for free. They are available through a subscription paid for by the PNW library.

Here are a few other books that are worth knowing about.