As this ebook edition doesn't have fixed pagination, the page numbers below are hyperlinked for reference only, based on the printed edition of this book.
Symbols
2D environment
combining, with 3D environment 120-125
3D coordinates system 73
3D shapes rotation
reference link 233
3-gon 33
4-gon 33
A
Affine Transformations 223
linear equations, moving to matrix operations 252-254
matrix representations, creating 252
albedo 392
ambient lighting 374
ambient occlusion (AO) 392, 398
angles
relationship with vectors, exploring 172, 173
application programming interface (API) 62
arbitrary axis
arccos 150
arcsin 150
arctan 150
ASCII art
URL 29
attenuation 386
Autodesk Maya LT 151
B
backface 205
backface culling 208
basic graphics window
beckmann distribution 388
Bezier Curves 32
bidirectional reflectance
calculating 387
distribution function 388, 389
geometric attenuation factor 388-391
bidirectional reflectance distribution function (BRDF) 387
billboard 205
Blender 74
blitting 36
reference link 36
button
clickable button, adding 131, 132
C
camera 69
orientations, improving 301-307
parallel camera 70
perspective camera 70
rotations, implementing 294-298
tilt, calculating 305
viewing volume shapes, exploring 79-82
Cartesian coordinates 14
exercise 19
centroid 198
circles
drawing pixel by pixel, with Bresenham 52-56
clipping 63
color
exercise 25
for displaying rainbow of pixels 23, 24
working with 22
color space 22
complex numbers 315
reference link 315
compound rotation quirks
compute shaders
reference link 338
convex polygon 33
Cook-Torrance Model
reference link 388
coordinate spaces 267
cosine
angles, calculating with 148-150
reference link 175
culling 205
D
determinant, of matrix
diffuse lighting 375
diffuse scattering 86
DirectX 74
distribution function 388
GLSL implementation 389
division, of matrix
dot product 174
reference link 174
E
edge 33
Euler-Rodrigues theorem 314
eye space 63
F
finger touches 113
fixed angles 312
font 29
fragments 336
frustum 70
G
gamut 22
geometric attenuation factor 390, 391
geometry shader 337
gimbal lock 239
graphics processing
transferring, from CPU to GPU 339-348
grazing angle 390
H
homogeneous representation 254
homogenous coordinate 254
hypotenuse 145
calculation 146
I
identity matrix 248
inverse of matrix 248
calculating 250
inverse square law
K
keyboard commands
key presses
reprogramming 134
L
Lambert (diffuse) 387
law of reflection 384
light 384
incident ray 384
point of contact 384
reflection ray 384
refraction 384
refractive index 384
visual way light 384
lighting
turning on 373
lighting effects
exercises 90
exploring, with normals 214-219
light sources
ambient light 86
diffuse light 86
specular light 86
line equation
reference link 25
relationship, visualizing in DESMOS 25, 26
lines
drawing, with brute force 42
exercise 26
parametric form, using 182, 183
plotting 26
plotting, pixel by pixel 43-45
working with 25
line segment
M
maneuvers
materials 85
matrices 243
adding 245
defining 244
determinant, calculating 248, 249
dividing 248
division, calculating 250, 251
homogeneous representation 243
inverse, calculating 250
multiplying, with another matrix 246, 247
operations, performing 245
single value, multiplying by 246
subtracting 245
matrix multiplication calculator tool
reference link 261
matrix stack 248
mesh
exercise 69
Mesh3D class 152
mesh class
defining 67
integrating, in project 67, 68
mesh faces
Mesh Triangle Normals
metallicness 392
midpoint circle algorithm 53
mipmapping 94
model matrix 270
models
ModelView Matrix 263
model-view-projection (MVP) matrix 268
mouse 113
mouse coordinates
converting, to projection coordinates 126, 127
integrating, in application 128, 129
mouse interactions
exercises 130
working with 114
N
n-gon 33
normalized device coordinates (NDCs) 73, 280
normals
exercises 189
polygons, culling according to 205
used, for defining polygon sides 202, 203
used, for displaying types of images 206-208
O
.obj file format
reference link 154
object rotation
adding, into Transform class 233-235
objects
OpenGL 63
OpenGL graphics pipeline
OpenGL Shader Language (GLSL)
reference link 348
OpenGL's matrix stack 268, 269
orthogonal camera 70
P
parametric form, lines
PBR parameters
perpendicular 174
perspective projection 74
perspective projection matrix (PPM) 282
physically based rendering (PBR) 383, 384
pitch 232
pixel by pixel
pixels
projecting, onto screen 73
point of contact 384
points
exercise 165
rotating, around pivot 231-233
scaling, with x, y, and z 227
versus vectors 160
polygon 33
convex polygon 33
culling, according to normals 205
drawing, with Pygame 34
exercise 35
reference link 33
sides, defining with normals 202, 203
visible sides, working with 203-205
working with 33
polygon mesh 66
projection matrix
definition 280
Pycharm 3
basic graphics window, creating 8-14
reference link 6
pygame.draw library
reference link 28
pygame.draw.rect
reference link 18
PyOpenGL 3
Pythagoras 145
Python 3
Q
implementing, in project 318-321
normalization, purpose 323-326
references 317
R
radiance 386
raster images 35
background image, working with 36-38
rays
rectangles
drawing 18
refraction of light
refractive index 384
render pipeline 336
roll 233
rotation matrix 275
rotations
S
sans serif 29
scaling functionality
adding, to Transform class 228-231
scaling objects
scene
screen
pixels, projecting 73
serif 29
shader 336
creating 338
functionality, expanding 338
shading language 336
shading models 86
sine
angles, calculating with 148-150
slope 25
snake_case
reference link 10
specular component 378
specular light 86
specular reflection 86
square matrix 248
straight geometrics
properties, examining 181
T
tangent
angles, calculating with 148-150
Tessellation Control Shaders
reference link 338
Tessellation Evaluation Shaders
reference link 338
text
exercise 32
textures 91
transformation matrices
combining, for complex maneuvers 256-263
transformation orders
Transform class 231
translation 223
triangles
angles, calculating with cosine 148-150
angles, calculating with sine 148-150
angles, calculating with tangent 148-150
investigating, by drawing 3D objects 151-155
right-angled triangles, working with 145-147
similar triangles, comparing 142-145
triangulated teapot 151
trigonometry 141
typeface 29
U
unit quaternions
working with 322
UVs 91
V
VAO (Vertex Array Object) 352
vector key operations
cube, adding to scene 169, 170
vector mathematics 141
vectors 181
exercise 165
magnitude, calculating 171, 172
relationship with angles, exploring 172, 173
versus points 160
viewing volume 70
view matrix 276
view space
rotations, implementing 290
Y
yaw 232
18.218.157.34