Index

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

left-handed system 73, 74

perspective projection 74-76

points, translating 225, 226

projecting, into NDC 76-79

right-handed system 73, 74

3D shapes rotation

reference link 233

3-gon 33

4-gon 33

A

Affine Transformations 223

compounding 254-256

linear equations, moving to matrix operations 252-254

matrix representations, creating 252

albedo 392

ambient lighting 374

using 374, 375

ambient occlusion (AO) 392, 398

angles

relationship with vectors, exploring 172, 173

anti-aliasing 56-58

application programming interface (API) 62

arbitrary axis

rotating around 312-315

arccos 150

arcsin 150

arctan 150

ASCII art

URL 29

attenuation 386

Autodesk Maya LT 151

B

backface 205

turning on/off 208-214

backface culling 208

basic graphics window

creating 8-14

beckmann distribution 388

Bezier Curves 32

bidirectional reflectance

calculating 387

distribution function 388, 389

Fresnel Effect 388-390

geometric attenuation factor 388-391

bidirectional reflectance distribution function (BRDF) 387

billboard 205

Blender 74

blitting 36

reference link 36

Bresenham's algorithm 45-47

examining 47-51

button

clickable button, adding 131, 132

C

camera 69

orientations, improving 301-307

parallel camera 70

perspective camera 70

rotations, implementing 294-298

scene, viewing with 69-72

tilt, calculating 305

viewing volume shapes, exploring 79-82

Cartesian coordinates 14

exercise 19

working with 15-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

fixing 299-301

compute shaders

reference link 338

convex polygon 33

Cook-Torrance Model

reference link 388

coordinate spaces 267

cosine

angles, calculating with 148-150

cross product 174, 175

reference link 175

culling 205

D

DESMOS 25, 26

determinant, of matrix

calculating 248, 249

diffuse lighting 375

using 375, 376

diffuse scattering 86

DirectX 74

distribution function 388

GLSL implementation 389

division, of matrix

calculating 250, 251

dot product 174

reference link 174

E

edge 33

Euler angles 232, 312

Euler-Rodrigues theorem 314

eye space 63

F

field of view (FOV) 71, 72

finger touches 113

fixed angles 312

font 29

fragments 336

fragment shader 336, 337

Fresnel Effect 389, 390

frustum 70

G

gamut 22

geometric attenuation factor 390, 391

geometry shader 337

gimbal lock 239

gradient 25, 180

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

applying 386, 387

K

keyboard commands

adding 132, 133

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

ambient lighting 374, 375

diffuse lighting 375, 376

Phong lighting model 377-381

turning on 373

lighting effects

adding 85, 86

exercises 90

exploring 87-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

defining 180, 181

drawing, with brute force 42

exercise 26

parametric form, using 182, 183

plotting 26

plotting, pixel by pixel 43-45

plotting, with Pygame 27, 28

working with 25

line segment

defining 180, 181

M

main game loop 100-102

maneuvers

flying 290-294

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

models, drawing with 65, 66

textures, placing on 90-97

Mesh3D class 152

mesh class

defining 67

integrating, in project 67, 68

mesh faces

coloring 360-372

texturing 360-372

Mesh Triangle Normals

displaying 198-202

metallicness 392

midpoint circle algorithm 53

mipmapping 94

model matrix 270

working with 270-275

models

drawing, with mesh 65, 66

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

implementing 114-119

working with 114

N

n-gon 33

normalized device coordinates (NDCs) 73, 280

normals

calculating 187-192

displaying 187-193

exercises 189

lighting effects 214-219

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

drawing 102-108

updating 102-108

OpenGL 63

OpenGL graphics pipeline

exploring 62, 63

OpenGL Shader Language (GLSL)

reference link 348

OpenGL's matrix stack 268, 269

orthogonal camera 70

P

parametric form, lines

exercise 184-187

using 182, 183

PBR parameters

implementing 392-405

perpendicular 174

perspective projection 74

perspective projection matrix (PPM) 282

Phong lighting model 377, 387

using 378-381

physically based rendering (PBR) 383, 384

pitch 232

pixel by pixel

processing 348-357

pixels

projecting, onto screen 73

point of contact 384

points

exercise 165

rotating, around pivot 231-233

scaling, with x, y, and z 227

translating, in 3D 225, 226

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

working with 281-283

Pycharm 3

basic graphics window, creating 8-14

reference link 6

setting up 5-8

Pygame 3, 26

pygame.draw library

reference link 28

pygame.draw.rect

reference link 18

PyOpenGL 3

installing, in PyCharm 63-65

Pythagoras 145

Python 3

Q

quaternions 301, 312

implementing, in project 318-321

normalization, purpose 323-326

normalizing 326-330

references 317

spaces, exploring 315-317

R

radiance 386

raster images 35

background image, working with 36-38

rasterization 336, 349

rays

defining 180, 181

rectangles

drawing 18

reflections 239-241

refraction of light

examples 384-386

refractive index 384

render pipeline 336

roll 233

rotation matrix 275

rotations

around arbitrary axis 312-315

S

sans serif 29

scaling functionality

adding, to Transform class 228-231

scaling objects

work, investigating 228-231

scene

viewing, with camera 69-72

screen

pixels, projecting 73

serif 29

shader 336

compilation errors 371, 372

creating 338

fragment 336, 337

functionality, expanding 338

geometry 336, 337

vertex 336, 337

shading language 336

shading models 86

shearing 239-241

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

font, downloading 31, 32

working with 29, 30

texture mapping 91, 92

textures 91

placing, on meshes 90-97

time measurement 108-110

transformation matrices

combining, for complex maneuvers 256-263

transformation orders

exploring 236-239

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

True Type font 31, 32

typeface 29

U

unit quaternions

working with 322

Unity3D 62, 63

UVs 91

V

VAO (Vertex Array Object) 352

vector key operations

cube, adding to scene 169, 170

defining 165-169

vector mathematics 141

vectors 181

exercise 165

magnitude, calculating 171, 172

relationship with angles, exploring 172, 173

versus points 160

working with 161-165

vertex shader 336, 337

viewing volume 70

view matrix 276

working with 276-280

view space

pitch, implementing 291-293

roll, implementing 291-293

rotations, implementing 290

yaw, implementing 291-293

Y

yaw 232

y-intercept 25, 26, 180

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.142.197.212