Skip to main content
Computer Graphics:
A Language Agnostic Guide to Fakin’ It
JonAlf Dyrland-Weaver
Contents
Search Book
close
Search Results:
No results.
Prev
Up
Next
\(\newcommand{\R}{\mathbb R} \newcommand{\lt}{<} \newcommand{\gt}{>} \newcommand{\amp}{&} \definecolor{fillinmathshade}{gray}{0.9} \newcommand{\fillinmath}[1]{\mathchoice{\colorbox{fillinmathshade}{$\displaystyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\textstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptscriptstyle\phantom{\,#1\,}$}}} \)
Front Matter
I
2-D structures
1
Colors, Depth, Space (and Time?)
1.1
Image File Formats
1.1.1
Vector Formats
1.1.2
Raster Formats
1.1.3
NetPBM File Formats
2
Bresenham’s Line Algorithm
2.1
The Problem
2.2
Testing Potential Points
2.3
Developing the Algorithm
2.3.1
Round I: Testing Both Points
2.3.2
Round II: Testing the Midpoint
2.3.3
The Testing Function
2.3.4
Round III: Testing No Points!
3
Edge Lists & Matricies
3.1
Using Edge Lists
3.2
Matrix Math for Graphics
3.2.1
Matrix Multiplication
3.2.2
Multiplicative Identity
4
Transformations
4.1
Transformation Matrices
4.1.1
Translation
4.1.2
Dilation
4.1.3
Rotation
4.1.3.1
Z-Axis Rotation
4.1.3.2
X-Axis Rotation
4.1.3.3
Y-Axis Rotation
4.2
Combining Transformations
5
Parametric Equations & Curves
5.1
Parametric Equations
5.1.1
Parametric Circle
5.2
Splines
5.2.1
Hermite Curves
5.2.2
Bezier Curves
5.2.2.1
Bezier Line
5.2.2.2
Bezier Quadratic
5.2.2.3
Bezier Cubic
5.2.2.4
Bezier Implementation
II
3-D Structures
6
3D Shapes
6.1
Box
6.2
Sphere
6.2.1
Sphere Point Generation
6.3
Torus
6.3.1
Torus Point Generation
6.4
Implementing 3D Shapes
7
Polygons
7.1
Polygon Lists
7.2
Polygon Based Shapes
7.2.1
Box
7.2.2
Sphere
7.2.3
Torus
7.3
Vectors
7.4
Backface Culling
7.4.1
Calculate
\(\overrightarrow{N}\)
7.4.2
Calculate
\(\theta\)
7.4.3
Putting it all together
8
Backface Culling
8.1
Vectors
8.2
The Algorithm
8.2.1
Calculate
\(\overrightarrow{N}\)
8.2.2
Calculate
\(\theta\)
8.2.3
Putting it all together
III
Motion
9
Relative Coordinate Systems
9.1
The Global Coordinate System
9.2
Relative Coordinate Systems: In Theory
9.3
In Practice
IV
Lighting & Shading
10
Scanline Conversion
10.1
Overview
10.2
Scanlines
10.2.1
Calculating
\(x_0\)
10.2.2
Calculating
\(x_1\)
10.3
The Algorithm
10.3.1
"Special" Triangles
11
Z Buffering
11.1
The Z-Buffer
11.2
Calculating
\(z\)
Values
11.2.1
scanline_convert
11.2.2
draw_line
and
draw_scanline
12
Lighting Models
12.1
Light Sources
12.1.1
Ambient Light
12.1.2
Point Light Sources
12.2
Reflection Types
12.2.1
Ambient Reflection
12.2.2
Diffuse Reflection
12.2.3
Specular Reflection
13
Phong Reflection Models
13.1
Overview
13.2
Ambient Reflection
13.3
Diffuse Reflection
13.4
Specular Reflection
13.5
Putting it All Together
14
Shading Models
14.1
Wireframe Shading
14.2
Flat Shading
14.3
Interlude: Vertex Normals
14.4
Gouraud Shading
14.5
Phong Shading
V
Compilers
15
Compiler Design
15.1
The Compiler Pathway
15.2
Lexer
15.3
Parser
15.4
Semantic Analyzer
15.5
Optimizer & Code Generator
VI
Animation
16
Animation
16.1
Knobs
16.2
Implementing Animation in MDL
16.2.1
Animation Pass 0
16.2.2
Animation Pass 1
16.2.3
Animation Pass 2
16.3
Dealing with frames and animated gifs
Backmatter
Colophon
Colophon
This book was authored in PreTeXt.