# Introduction

## Introduction

aka “Stuff I, for the moment, know absolutely nothing about”
____________________

### How are 3D Models Created?

Some common techniques:
• Boundary representations
◇ (From Wikipedia) In solid modeling and computer-aided design, boundary representation—often abbreviated as B-rep or BREP—is a method for representing shapes using the limits. A solid is represented as a collection of connected surface elements, the boundary between solid and non-solid.
• Constructive solid geometry
◇ Cobbled together from different parts (ie basic geometrical forms)
• Parametric curves and surfaces
◇ Remember parametric formulae from MAT150 (curves)
• Implicit surfaces
◇ y = f(x) = mx +b
◇ f(x, y) = Ax + By + C

____________________

### Other Interesting Topics

• How are modelers given control of editing models?
• What are the techniques for optimally storing models?

____________________

### What does graphic data consist of?

• Primitives
• Attributes
• Transforms

____________________

Many things are done via interpolation with discrete data.

____________________

### Rendering

Process of generating 2D image of 3D scene:
Hearn & Baker: Chapter 17

____________________

### How to Generate Images?

Different techniques for real-time and offline applications
• Tradeoff between speed vs quality
Compare current state of real-time graphics in games vs RenderMan's showreel

____________________

### Offline Rendering

• Ray tracing

____________________

### Real-Time Rendering

Real-time rendering relies on 3D graphics pipeline (aka GPU)
Of several techniques available to create image from 3D scene, pipeline architecture is ideal for real-time rendering.

____________________

Graphics processors work like pipelines (Remember CS100?)

____________________

### CPU -> GPU -> Pixels

CPU
• Application

GPU:
• Vertex Processing Operations
• Fragment Processing Operations

CPU sends 3D triangles to Vertex Processing Operations, which sends 2D triangles to Fragment Processing Operations.

____________________

...Lots of other stuff, too much to copy, so I stopped and just listened.

--------------------

Model Space model Coordinates -> Local Coordinates
World Space Application Coordinates -> World Coordinates

It's just transferring of coordinates via matrices.

Normalized Device Coordinates defines everything in a standardized way.

--------------------

The MODERN OpenGL Pipe: Anything in blue is programmable.

--------------------

GPU is used for a lot of non-graphics stuff because CPUs are mostly not controlled by the user, and everything depends on everything else. Most of the CPU is devoted to the cache.

Most of the GPU is devoted to the ALU.

--------------------