Computer Graphics
In this course you will learn how to get computers to make pictures. Your output won't be numbers and text printed in a terminal, but rather realistic and interactive 3D scenes displayed in your web browser. Getting your human users to say, “Hello, world!” is arguably more more compelling than getting the computer to say it.
Several computational disciplines involve outputting images. We distinguish them by their input:
- In data visualization, software developers take as input large, high-dimensional datasets and present them in a visual form through which humans can quickly identify patterns and anomalies.
- In image processing, software developers take as input images, often from a camera, and produce new images that have been enhanced, measured, or searched.
- In computer graphics, software developers take as input simplified descriptions of physical structures and draw them as a camera would see them.
We focus on computer graphics in this course. You will not make charts and graphs or process photos and videos. You will render models.
Many technological endeavors take you away from the physical world and the humans that occupy it, but computer graphics isn't one of them. When you write a renderer, you recreate the physical world inside the machine, which will get you thinking about space, light, motion, and perception. As computer scientists, we will have to write a lot of code to make the worlds inside the computer behave like the one outside.
You've probably found yourself at times reading a text but not internalizing what it says. That's a waste of time. As you read this textbook, you'll be asked questions to keep you actively participating. Here's your first question:
If you answer incorrectly, you'll get a thumbs-down. There's no penalty for a wrong answer. Keep on re-reading, thinking, and answering until you get a thumbs-up. Your credit for the question will be based on the latest answer submitted prior to the due date. Your answers are automatically saved on the book's web server when you hit submit. If you reload the page, you will see your latest submission and thumb status.
In this first chapter, we explore what it takes to render models in a web browser. By its end, you'll be able to answer the following questions:
- What software stack do we need to make images in this course?
- What are the high-level steps for turning a model into a rendered image?
- How does the hardware on a graphics card influence the rendering process?
- What foundational data structures will ease the development of graphics software?
Our first step is to get some software installed.