Index
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
• Radiosity
____________________
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.
--------------------