One good way to think of what you will learn in this course is by analogy: If you take a course in learning to use Adobe PhotoShop or Illustrator, or one of the 3D modeling packages such as Alias/Maya, SoftImage or 3D Studio Max, that is like learning to drive a car. This course is about learning how to build the car.
But how can we do that in only one semester? It takes hundreds of person years to build all the functionality in any of the above commercial programs. So rather than learn how to build a full-on Ferrari or Honda, we're going to build a fully functional powered go-cart. It will have simple versions of all the major features. The goal here is to give you working knowledge of all the basic concepts that you will need to do research in the field, so that you understand what all the components are and the basics of how they work, by building simple working versions of all those components.
At a really high level, computer graphics requires two things:
It is extremely important to understand the relationship between the two. Information flows:
The computer contains some sort of internal model of the scene to be rendered into an image. As the user interacts with the computer, aspects of this model change, and so the picture changes.
The process of converting this internal model into an image is called the rendering pipeline. We call this process a pipeline because it generally involves a progressive set of transformations, one after the other, to convert the model into the image.
In 3D graphics, the things that go into this internal model are, generally speaking, in the following categories:
Each of the above topics is a rather large topic unto itself, which could easily be the subject of several successive full year courses. In this course you will get the sense of what each of these things is.
What is an image?
The goal of rendering is to create one or more images. An image is a rectangular array of pixels. A pixel generally consists of three components: red, green and blue. Often, to save on storage and processing costs, these components are each stored as an eight bit quantity (0 = black, 255 = full brightness), although this small dynamic range is not really adequate to make things look as vivid as the real world. Some recent graphics systems and displays allow increasing to more bits, to get a greater ratio between the darkest darks and the brightest brights, and such increases are called HDR (High Dynamic Range).
Red/Green/Blue is an additive system of color. It works reasonably well because the human eye has red/green/blue receptors which roughly correspond to these portions of the spectrum (although the mach is inexact). Here are some examples of how to combine these components to get various colors:
red 255 0 0 orange 255 128 0 yellow 255 255 0 green 0 255 0 cyan 0 255 255 blue 0 0 255 violet 255 0 255 gray 128 128 128 black 0 0 0
Sometimes various geometric quantities are also stored in image pixels, to help with rendering. We will get to that subject in a later lecture on rendering.
To be continued...