Page numbers followed by “f” indicate a figure; and those followed by “t” indicate a table.
AABB trees, 1093
Absorption, 737
Abstract coordinate system, 39, 42
Abstract geometric vs. ready for rendering, 467
Abstraction, defined, 10
Abstraction, in expressive rendering, 947, 959–961
factorization, 947
kinds of, 947
schematization, 947
simplification, 947
Abstraction considerations, 444
Abstraction distance, 1138
A-buffer, 1057
Acceleration data structures, 472
Accretion, 569
ACC surfaces. See Approximate Catmull-Clark subdivision surfaces
Accumulation buffer, 1056
ACM. See Association for Computing Machinery
ACM Transactions on Graphics, 922
Acne, shadow, 416
Active edge table, 1041
Additive color, 760
Adjacency information, on meshes, 338–339
Adjacent vertex, 637
Adjoint transformation, 253
Affine combination of points, 160
Affine transformations, 182, 234, 259
Affordances (user interfaces), 572
Albedo, 547
Algebra, geometric, 284
Aliasing, 331, 544, 557–559, 837, 1055
in line rendering, 544
Alpha-to-coverage, 366
Alpha value, 481
Alternative mesh structures, 187ff, 635ff, 338
AM. See Application model (AM)
Ambient occlusion, 742
Ambient reflection, 136
AMIP. See Application-Model-to-IM-Platform Pipeline (AMIP)
Analytic BSDFs, 358
subtended, 687
Animation element, in XAML, 55
burden of temporal coherence in, 985–987
considerations for rendering, 975–987
creating a sailing ship firing a cannon (simulation), 969–972, 970f
creating a walking character, 966–969
level-set approach to, 631–632
navigating corridors (motion planning), 972–973
problem of the first frame in, 984–985
root frame, 972
stop-motion, 987
temporal coherence, exploiting, 983–984
triple buffering, 976
ways to produce, 964
Anisotropic materials, 883
Antialiasing, 498ff, 982, 985, 1055
supersampling techniques for, 985–986
Appearance modeling, 742
Appel’s ray-casting algorithm, 449, 797, 838
Apple Lisa, 568
Application model (AM), 36, 466–468
Application-Model-to-IM-Platform Pipeline (AMIP), 468–474
Application programming interfaces. See API
Approximate Catmull-Clark subdivision surfaces, 613
Approximation (graphics)
of the series solution of rendering equation, 847–848
evaluation of, 584
practical implications of, 584
Architectural considerations, 444–445
Arctan, 152
Area-and-angle preserving, as a property of texture mapping, 555
Area lights, 377–379, 550, 698, 740, 784, 847, 866-868, 888, 915–918, 925–926. See also Area luminaire
reflecting illumination from, 896
Area luminaire, 785, 788, 798, 891, 895. See also Area lights
Area-subdivision algorithms, 1041
Area-weighted radiance, 910. See also Biradiance
Aspect ratios
of triangles, 197
Associated transformations, 294
Attenuated geometric light source, 133
Back face, of polygon, 337
Backface culling, 337, 1023, 1028, 1047–1049
Backscattering, 730
Baking (models), 247
Band, of energies, 672
Band-limiting, 514, 522–523, 524, 534, 541
Band reconstruction, 534
Barycentric coordinates, 172, 183, 202, 203, 216, 218
analogs of, 182
Barycentric coordinates of x, 219
Barycentric interpolation, code for, 203–207
Basis functions, 208, 596, 597, 600, 608, 609, 612, 625, 848–850. See also Tent-shaped functions
Beckmann distribution function, 732
Beta phenomenon, 977
Bézier patches, 607, 608–610, 609f
described, 608
Bicubic tensor product patch, 609
Bidirectional path tracing, 853, 870–871
schematic representation of, 853f
Bidirectional reflectance distribution function (BRDF), 646–647, 703, 783, 814, 834, 852, 946
Blinn-Phong, 883
cosine weighted, 820
Phong, 883
Bidirectional scattering distribution function (BSDF), 354–362, 704, 712, 820, 852
analytic, 358
isotropic, 883
local representation of, 882–887
measured, 358
Bidirectional surface scattering reflectance distribution function (BSSRDF), 704, 712, 738
Bidirectional transmittance distribution function (BTDF), 704
Bijective, 152. See also Injective
Billboard clouds, 348
Billboards, 648
Binary space partition (BSP) trees, 1023–1024, 1030, 1084–1089
C++ implementation of, 1086
conservative ball intersection, 1088
conservative box intersection, 1088
first-ray intersection, 1088
kd tree, 1089
oct tree, 1090
pseudocode for visibility testing in, 1032
ray-primitive intersection, 1030–1032
2D binary space partition tree (BSP), 1086f
Binary tree (data structure), 1077
1D example, 1079
abstraction distance in, 1138
advantages of, 1138
deferred shading in, 1137–1138
drawbacks of, 1138
excess latency, 1138
full-scene anti-aliasing in, 1137
local memory in, 1137
poor multipass operation, 1138
unbounded memory requirements, 1138
Biradiance, 910. See also Area-weighted radiance
Birefringence, 682
Bitmaps, 38
Black body, 672
Blindness, motion-induced, 114
Blinn-Phong BRDF, general form of, 721
Blinn-Phong model (reflection model), 138, 395ff, 414, 721–723
Blobby modeling, 343
Blob tree, 624
Bloom and lens flare, 369
Bloom focus, 336
Blue noise distribution, 921
Blue screening, 485
Body-centered Euler angles, 272
Body-centered rotation, 272. See also Object-centered rotation
Boilerplate, 83
Boltzmann’s constant, 674
Bottom-up construction, and composition, 140–144
Boundaries, and light transport, 798
Boundary component, 641
determining, 638
Boundarylike vertex, 194
Boundary of a simplex, 638
Bounded color models, 771
Bounding box, 38, 197, 198f, 285, 420, 429, 631, 983
Bounding-box optimization, 420–421
beyond, 429
Bounding geometry, 1068
Bounding Volume Hierarchy (BVH), 916, 1049, 1092–1093, 1092f
Bounding volumes, 1068
BRDF. See Bidirectional reflectance distribution function (BRDF)
Brewster’s angle, 682
Brightness (light), 108, 750, 756
just noticeable difference (JND), 754
Brush (geometric primitive), 38
Brushstroke coherence, 986
BSDF. See Bidirectional scattering distribution function (BSDF)
B-spline basis matrix, 603
B-splines
nonuniform, 604
nonuniform rational, 604
rational, 604
uniform spacing of, 604
BSSRDF. See Bidirectional surface scattering reflectance distribution function (BSSRDF)
BTDF. See Bidirectional transmittance distribution function (BTDF)
Buckets, 1093, 1093f. See also Grid cells
color, 328
depth, 329
framebuffer, 329
stencil, 329
Buffer swap, 443
Building blocks of ray optics, 330
Building transformations, from view specification, 303–310
Cached and precomputed information on meshes, 340–341
Callback procedure, 23
depth of field, 301
design, 406
focal distance of, 301
perspective camera specification, 301–303
position of, 301
specifications and transformations, 299–317
transformation and rasterizing renderer ripeline, 310–312
Camera coordinates. See Camera-space coordinates
Camera-space coordinates, 22, 299, 928
Camera visibility. See Primary visibility
Candelas (measurement unit of luminous intensity), 751
Capsule (3D volume), 1066
Cartoons, hand-animated, 966
Cathode-ray tubes (CRTs), 20, 770
Catmull-Clark subdivision surfaces, 610–613
Catmull-Rom spline, 540, 540f, 598–601
applications of, 602
nonuniform, 601
uniform, 601
Caustics, and light transport, 798
Cdf. See Cumulative distribution function (cdf)
Channels, 483
color, 483
object ID, 485
Chateau (user interface), 589–590
Chromatic aberration, 336–337, 680
Chunking rasterizer. See Tiling rasterizer
CIE chromaticity diagram, 765
applications of, 766
defining complementary colors, 766
excitation purity and, 766
indicating gamuts, 766
CIE Luv color coordinates, 767
CIE L*u*v* uniform color space, 767
Circularly polarized wave, 677
of data, 24
Sutherland-Hodgman 2D clipping, 1045–1046
whole-frustum clipping, 1044, 1047
Clipping planes, 122
Closed interval, 150
Closed meshes, 190
Closed oriented meshes, 195
Closed surface, 638
Clusters, 1043
CMTM. See Composite modeling transformation matrix
Coded apertures, 493
Codomain, 151. See also Domain
Coefficient of extinction, 682, 728, 738
Coefficient of restitution, 1012
Coherence, 950
spatial, 950
Colatitude, 688
Collision proxy geometry, 337
Color bleeding, 839
Colorblindness, 746
Color buffer, 328
Color description, 756–758, 771–774
Colorimetry, 747
Color matching, 748
Color models
bounded, 771
YIQ, 775
Color naming, 748
Color palettes, 777
Color perception
physiology of the eye and, 748–750
strengths and weaknesses, 761
Color percepts, 747
Color(s)
choice, 777
complementary, 766
conventional color wisdom, 758–761
implications of, 746
intensity-independent, 765
matching, 748
naming, 748
nonspectral, 766
palettes, 777
perceived distance between, 767
percepts, 747
RGB sliders and, 761
sensations, 747
standard description of, 761–766
use in computer graphics, 779–780
Color selection interfaces
hue-lightness-saturation (HLS) interface, 776–777
hue-saturation-value (HSV) interface, 776–777
Color sensations, 747
Color specification in WPF, 133
Color wisdom, conventional, 758–761
blue and green make cyan, 760
color is RGB, 761
purple isn’t a real color, 759
Comb function, and transform of, 520
Commission Internationale de l’Éclairage (CIE), 755, 762–766
chromaticity diagram, 765
Complementary colors, 766
Complex applications, processing demands of, 14
Complex conjugate, 512
Component hierarchy, top-down design of, 139–140
Composion of transformations, 235
Composite component, constructing, 142
Composited image, 485
Composite modeling transformation matrix, 314
Composite transformation matrix, 246, 314, 463
Compositing of images
simplifying, 487
Compression, use of splines for, 605
Compressive sensing, 530
Computability, as a property of texture mapping, 555
Computational photography, 493
Computations, stability of, 278
Computer-based animation industry, 932
2D transformation library, 287–298
3D transformation library, 287–298
current and future application areas of, 4–6
deep understanding vs. common practice, 12
definition of, 2
goals, resources, and appropriate abstractions, 10–12
graphical user interfaces (GUI) and, 567–574
interaction in graphics systems, 23–24
numbers and orders of magnitude in, 12–15
physical/mathematical/numerical models of, 11
relationship with art, design, and perception, 19–20
world of, 4
Conceptual design (user interface), 570
Conductive materials, 714
Cones (color receptors), 107, 749
generalized, 757
Conformal mapping, 555
Conservative rasterization, 1096
Conservative rasterizer, 430
Conservative visibility, 1023
Conservative visibility algorithm, 1023
Conservative visibility testing, 1023
backface culling, 1023
frustum culling, 1023
methods of, 1023
spatial data structures and, 1023
Conservative voxelization, 1096
Constancy
application of, 111
color, 110
shape, 110
size, 110
Constant shading, 127
Constructive solid geometry (CSG), 450
Content, preparing viewport for, 120–122
applications, 112
Continuous probability. See Continuum probability
Continuum, defined, 808
Continuum probability, 808–810, 815–818
Contour curve, 1048
Contour generator, 953. See also Contour(s)
Contour lines, 616
Contour points, 952
of a smooth surface, 644
Contribution/detail culling, 470
Control data, 599
Control points, 599
Control templates, 49
Convex boundary polygon, 1045, 1045f
Convex cone, 747
Convex hull property, of cubic B-splines, 603
Convex polygons, 175
defined, 500
Convolution multiplication theorem, 521
Coons, Steven A., 608
defined, 240
rigid, 240
Coordinates, 153
abstract coordinate system, 42–44
floating-point coordinates, 38–39
integer coordinate system, 38–39
physical coordinate system, 38
Coordinate vector, 155
Cornell box, 903, 911, 916–917
Corner-cutting, on polyline, 81, 83
Correspondence (meshes), 661
building, 661
Cosine weighted BRDF, 820
Cosine-weighted sampling
on hemisphere, 815
Cotangent rule, 658
Coverage
partial. See Partial coverage
Coverage of a pixel, 213
Coverage sampling antialiasing (CSAA), 1058–1059
Coverage testing, 422
Crease edges, 953
Critical angle, 682
CRT. See Cathode-ray tubes (CRTs)
CSG. See Constructive solid geometry (CSG)
C++ Standard Template Library (STL), 1074
CTM. See Composite transformation matrix
Cube map, 554
Cube mapping, 340
Cubic B-spline filter, 540, 540f
convex hull property of, 603
nonuniform, 602
Culling
contribution/detail, 470
occlusion, 470
portal, 470
sector-based, 470
view-frustum, 470
Cumulative distribution function (cdf), 685
Curvature, 955
radial, 957
Curvature shadows, 946
Curved-surface
representation and rendering, 128
Curves
Cyan-Magenta-Yellow (CMY) color, 774–775
Cybersickness, 571
Dangling edge, 637
Darken operation, 488
Data structures
generic use of, 1077
ordered, 1077
selecting, 1077
DDA. See Digital Difference Analyzer (DDA)
Declarative animation
Declarative specification, 40
vs. procedural code, 40
Deferred-rendering method, 440
Deferred shading, 446, 1135–1137
difficulties with, 1136
excess storage and bandwidth in, 1136
goal of, 1135
multi-sample anti-aliasing (MSAA), incompatibility with, 1136
shader-specified visibility and, 1136
Deformation (meshes), 660
Degenerate transformation, 224
Degree
of an edge, 637
of a vertex, 637
Delta function, 519
Density estimation, 912
Depth buffer, 329, 392, 1023, 1028, 1034–1040
common applications in visibility determination, 1035–1036
depth prepass, 1036
screen-space visibility determination and, 1037
Depth buffer encodings, 1037–1040
choices for, 1037
hyperbolic in camera-space z, 1037
linear in camera-space z, 1037
Depth complexity, defined, 446
Depth complexity of a ray, 1028
Depth map. See Depth buffer
Depth prepass, 1036
Depth-sort algorithm, 1042–1043
Depth value, 481
Derivative-based definitions of radiometric terms, 655–656, 700–702
The Design of Everyday Things (Norman), 593
Detail objects, 1051
Development tools, 41
Device code, 432
Device coordinates, 39
Diagonal matrices, 230
Differential coordinates, 655–657
defined, 676
Diffuse, defined, 8
Diffuse reflection, 136
Diffusion (morphogens), 561
Diffusion curves, 961
Digital cameras, 5
Digital Difference Analyzer (DDA), 431
Digital signal processing, 545
Digital video cameras, 5
Direct3D, 452
Directed acyclic graph (DAG), 144, 248
Directed edges, 636
Directed-edge structure, 195
Directional curvature in direction u, 956
Directional hemispherical reflectance, 708
Directional light, 125
Directionally diffuse, 102
Direct light, 370. See also Indirect light
Direct lighting, 834. See also Direct illumination
Direct shadows, 946
Dirty bit flags, 983
Dirty rectangles, 983
Discrete attributes, 651
Discrete differential geometry, 644, 667
relationship to programs, 803–804
Discrete probability space, 803
Displacement, 157
Displacement maps, 344, 547, 557ff, 562f, 647
Display-form-factor independence, 45
Display list, 473
Distribution (random variable), 806
Distribution ray tracing, 317, 838
Division of modeling principle, 210
DockPanel. See Panel
Dollying (camera control technique), 585
Domain, defined, 151. See also Codomains
Domain restriction, 827
Dominant wavelength, 747
Double-buffered rendering, 971, 975–976
Draw calls, 434
Drawing, Dürer’s, 62f, 64f, 68–72, 1035f
Dual contouring, 653
Dual paraboloid, 554
Dual space, 163
Dual vectors. See Covectors
Dürer rendering algorithm implementation, 65–68
Dynamic Canvas algorithm, 986, 986f
Dynamic range, 8
Dynamics animation, via declarative animation, 55–58
Early-depth-test
defined, 446
Early z-cull, 1136
Edge aligns, 427
Edge collapse, 197
Edge(s), 189
crease, 953
dangling, 637
directed, 636
interior, 637
sharp, 651
smooth, 953
Edges (computer vision), 952
Edge vectors, 175
Electric field
linearly polarized, 678
Electromagnetic spectrum, 330–331, 675f
Elements, 41
Elliptically polarized light, 679
Embedding topology, 637
Emissive lighting, 138
Empirical/phenomenological models, of scattering, 713, 717–725
Energy, photons transport, 333
Energy conservation, 714
Energy function (meshes), 650
Environment mapping, 340, 549–550, 939–940
Equations
approximate solutions of, 825–826
approximating, 826
domain restriction, 827
Newton’s method for solving, 831
statistical estimators, using, 827–830
using bisection for solving, 830–831
Estimation
Estimator random variable, 818
consistent sequence of, 818, 822–823
unbiased, 818
variance of, 818
Estimators. See Estimator random variable
Euclidean distance, 767
body-centered, 272
Euler characteristic of a mesh surface, 641
Euler integration, 278
Even function, 508
Event (interaction), 92
Excitation purity, 747
chromaticity diagram and, 766
defined, 747
Expectation. See Expected value
of a random variable, 810
Explicit equation, 341
Explicit Euler integration, 1016
Explicit Euler method, 1019. See also Forward Euler method
Explicit trapezoidal methods, 1020
Exponents (display process), 769–771
Exposure time, 980. See also Shutter time
abstraction in, 947
examples of, 948
geometric curve extraction in, 952–959
gradient-based, 952
perception and salient features, 951–952
perceptual relevance, 947
spatial coherence in, 950
temporal coherence in, 950
Extended marching cubes algorithm, 653
Extensibility via shaders, 453
Extensible Application Markup Language (XAML), 35, 41, 928
luminous efficiency function for, 751
resolution, 13
Eye coordinates, 314
Eye path, 796
Eye ray
and camera design notes, 406
testing eye-ray computation, 406–407
Eye ray visibility. See Primary visibility
Factorization (abstraction), 947
FF. See Fixed-function (FF)
Field of view, and aspect ratio, 316–317
Fields (half-resolution frames), 978
FillEllipse, 39
Filter(s)
applying, 500
Catmull-Rom filter, 542t
cubic B-spline filter, 542t
filtering f with, 502
Gaussian filter, 542t, 543, 545
Mitchell-Netravali filter, 542t
separable, 544
sinc filter with spacing one, 542t
and their Fourier transforms, 542t
unit box filter, 542t
Final gather step in photon mapping, 913
Finite element method, radiosity, 839
Finite element models, 349
Finite series
summing by sampling and estimation, 828–829
Finite-state automaton (FSA), 574, 857
probabilistic, 858f
Finite support, 535
Finite-support approximations, 540–541
First-person-shooter controls, 588
Fitts, Paul, 572
Fixed-function (FF), 452
to programmable rendering pipeline, 452–454
Fixed-function 3D-graphics pipeline, 119
Flat shading, 20. See also Constant shading
Floating-point coordinates, 38–39
Flow curve, 1015
Fluorescence, 671
Flux responsivity, 792
Focal distance, 301
Focal points, 951
and caustics, 798
Focus dot (camera manipulation), 586
Fog, 351
Fold set, 953. See also Contour(s)
Foreground image, 485
Form factor (radiosity), 840
computation of, 842
Forward Euler integration, 1018
Forward Euler method, 1019. See also Explicit Euler method
Forward-rendering design, 440
Fourier-like synthesis, 559–560
Fourier transform, 497
applications of, 522
of box, 517
definitions, 511
of function on interval, 511–514
properties of, 521
scaling property of, 521
Fourth-order Runge-Kutta method, 1020
Fovea, 107
Fractional linear transformation, 256
Fragment (pixel), 18, 1055, 1056f
Fragment generation, 17
Fragments, 18
Fragment shaders, 466, 930. See also Pixel shaders
Fragment stage, 433
front buffer, 971
Frame coherence, 983. See also Temporal coherence
Frames (individual images), 963
Frequency-based synthesis, and analysis, 509–511
Frequency domain, 513
Fresnel, Augustin-Jean, 681
Fresnel equations, 681, 727–729
unpolarized form of, 683
Fresnel reflectance, 683, 727–729
Frobenius norm, 663
Front face, of polygon, 337
Frontface polygon, 1048
Frustum clipping, 1028, 1045–1046
Frustum culling, 1023, 1028, 1044
Functional design (user interface), 570
Function L
writing in different ways, 706–707
basis, 208
interpolated, 203
piecewise constant, 187
tabulated, 201
G3D (open source graphics system), 241, 295, 321, 356, 933
Game application platforms, 478
Game engines, 25. See also Game application platforms
Gamma, defined, 771
defined, 771
chromaticity diagram and, 766
matching problem, 766
Gaussian filter, 542t, 543, 545
GDI, 38
Generalized cone, 757
General position assumption, 291–292, 292f
General purpose computing on GPUs (GPGPU), 1142
Generics in programming languages, 1068
Gentle slope interface, 569
Genus of a surface, 196
Geometric algebra, 284
Geometric curve extraction, 952–959
Geometric model, 2, 41ff, 117ff,
Geometric modeling, 595
Geometric optics, 726
Geometry
collision proxy, 337
large-scale object, 337
projective, 257
Geometry matrix, 597
Geometry shaders, 931
GIF. See Graphics Interchange Format (GIF)
Glass
Global illumination, 340
Glossy highlights, 134, 353, 359–361
GLUT (OpenGL Utility Toolkit), 456
Gonioreflectometer, 702
Gouraud, Henri, 128
Gouraud shading, 128, 723, 743, 933. See also Phong shading
fragment shader for, 937
vertex shader for, 935
GPGPU (general purpose computing on GPUs), 1142
GPU. See Graphics Processing Units (GPUs)
binned rendering and, 1137–1138
deferred shading and, 1135–1137
Larrabee (CPU/GPU hybrid), 1138–1142
organizational alternatives of, 1135–1142
Grabcut (technology-enabled interface), 590–591
Gradient-domain painting, 961
Graftals (scene-graph elements), 986, 986f
Graphical user interfaces (GUI), 4, 23–24
affordances, 572
arcball interface, 584
conceptual design, 570
functional design, 570
lexical design, 570
natural user interfaces (NUIs), 571
sequencing design, 570
suggestive interface, 589
Graphics applications, 21
Graphics Interchange Format (GIF), 484
Graphics packages
Graphics pipeline, 14–15, 36, 119, 310, 452, 458ff, 927, 1109ff, 432–434
defined, 434
Graphics platforms, 21, 22, 25, 26
Graphics Processing Units (GPUs), 18, 20
Graphics processor architecture, 8, 1107ff
Graphics program
Graphics workstations, 932
Grays (color), 756
Grayscale, 482
Great circle, 273
Grid, as a class of spatial data structures, 1093–1101
ray intersection, 1095–1099, 1096f, 1098f
selecting grid resolution, 1099–1101
Grid cells, 1093, 1093f. See also Buckets
Grid resolution, selecting, 1099–1101
GUI. See Graphical user interfaces (GUI)
Haar wavelets, 531
transform, 531
Half-edges, 338
Half-open intervals, 150
Half-plane bounded by l, 174
Half-planes
Half-vector, 721
Hand-animated cartoons, 966
HDR images. See High dynamic range (HDR) images
Heat, defined, 672
Heat equation, 529
Heightfields, 344
Helmholtz reciprocity, 703–704, 714. See also Reciprocity
Hemicube, 842
Hemisphere
cosine-weighted sampling on, 815
producing a cosine-distributed random sample on, 815
producing a uniformly distributed random sample on, 814
Hemisphere area light, 378–379
Hermite basis functions, 596
Hermite functions, 596
Hidden surface removal, 1023. See also Visible surface determination
Hierarchical depth buffer, 1024, 1050. See also Hierarchical z-buffer
Hierarchical modeling, 35, 55, 313ff, 463–464
Hierarchical occlusion culling, 1049–1050
Hierarchical rasterization, 430
Hierarchical z-buffer, 1050. See also Hierarchical depth buffer
High-aspect-ratio triangles, 197
High dynamic range (HDR) images, 481
High-level vision, 105
Hit point (Unicam), 585
Homogeneous clip space, 429, 1047
Homogenizing transformation, 265
Host code, 432
HoverCam (camera manipulator), 591
Hue (color description), 756
Hue-lightness-saturation (HLS) interface, 776–777
Hue-saturation-value (HSV) interface, 776–777
Human-computer interaction (HCI), 568
arcball interface, 584
interaction event handling, 573–574
mouse-based camera manipulation (Unicam), 584–587
mouse-based object manipulation in 3D, 580–584
multitouch interaction for 2D manipulation, 574–580
suggestive interface, 589
two-contact interaction, 578
Human visual perception, 101–115
Hybrid pipeline era, 453
Hyperbolic depth encoding, 1038–1040
complementary or reversed, 1039
Hyperbolic interpolation, 423
Identity matrix, 225
iid, see Independent dentically distributed random variables
Illuminant C (CIE chromaticity diagram), 765
Illumination, 9, 340, 362, 370ff, 722, 751, 785
Image
composited, 485
defined, 482
file formats, 483
foreground, 485
gradient, 544
information stored in, 482–483
losslessly compressed, 483
meaning of pixel during compositing, 486
Moiré patterns, 544
other operations and efficiency, 541–544
representation and manipulation, 481–494
RGB, 482
Image-based texture mapping, 559
Image display, 29
Images and signal processing, 493–532
Image-space photon mapping, 876
Immediate mode (IM), 452
Implementation platform, 393–403
and scene representation, 400–402
and selection criteria, 393–395
Implicit functions, representing, 621–624
mathematical models and, 623–624
Implicit lines, 164
Implicitly defined shapes, 164, 615–633
advantages of, 615
disadvantages of, 615
Implicit surfaces, 341–343, 619–620
ray tracing, 631
Importance-sampled single-sample estimate theorem, 818–819
Importance sampling, 802, 818–820, 822, 854
Impostors, 348
Impulses, 356, 713, 784, 1010–1012. See also Snell-transmissive scattering
deriving impulse equations, 1010–1011
Impulse scattering, 715–716, 740, 784. See also Impulses; Snell-transmissive scattering
Incremental scanline rasterization, 431
Independent identically distributed (iid) random variables, 808
Independent random variables, 807
properties for, 807
Indexed face sets, 77
Indexed triangle meshes, 338
Indexing arrays, 156
Indexing vectors, 156
Index of refraction, 107, 332. See also Refractive index
Indication (expressive rendering), 948
Indirect light, 370. See also Direct light
Indirect lighting, 834
Infinite series
summing by sampling and estimation, 829–830
Infinite support, 535
Information visualization, 4, 37
Inheritance, as key extraction method, 1073–1074
Initialization in OpenGL, 456–458
Injective function, 151. See also Surjective function
Inner product, 158
Inscattering, 738
Inside/outside testing, 175–177
Instancing, described, 450
Instantiated templates, 39, 50
Integral, of spectral radiance, 692
Integral equation, 786
Integration
importance sampling and, 818–820
Intel Core 2 Extreme QX9770 CPU, 1138
Intensity (light), 700, 769–771
high-light perception of, 770
low-light perception of, 770
Intensity-independent colors, 765
Interaction, keyboard, 95
Interior edge, 637
Interiors of nonsimple polygons, 177
Interlaced television broadcast and storage formats, 978
International Color Consortium (ICC), 772
Interpolated function
properties of, 203
Interpolated shading (Gouraud), 128–129
Interpolating curve, 600
Interpolation
bilinear, 622
hyperbolic, 423
perspective-correct, 256, 312, 422–424
precision for incremental, 427–428
rational linear, 423
between rotations, 276–278, 277f
vs. transformations, 259
Interpolation schemes, 621–622
bilinear interpolation, 622
Interval
Fourier transform on, 518
Invariant under affine transformations, 182
Inverse Fourier transform, 520–521
Inverse function, 151
Inverse tangent functions, 152–153
Invertibility, as a property of texture mapping, 555
Inward edge normal, 175
Irradiance, 697–699. See also Radiosity defined, 697
Irradiance due to a single source, 698
Irradiance map, 557
Isocontour, 341
Isocurves, 616
Isosurfaces, 619. See also Level surfaces
Jaggies (image), 31
Just noticeable difference (JND), 754
k-dimensional structures, 1080–1081
kd tree, 1089
Kernel (photon map), 910
Kernel (photon mapping), 874, 1142
Key (data structure), 1068, 1077
Keyboard interaction, 95
Key frame, 966, 989. See also Key pose
Key pose, 966, 989. See also Key frame
Keys and bounds, extracting, 1073–1077
inheritance, use of, 1073–1074
Kinect (interface device), 568
Kinetic energy, 1021
Knee joint
Knots, 601
Kubelka-Munk coloring model, 760
L2 difference. See L2 distance
L2 distance, 104
L2 (space of functions), 506ff
2 (space of sequences), 506ff
“Lab” color, 767
Lafortune model (light scattering model), 723–724
Lag. See Latency
Lambertian bidirectional reflectance distribution function (BRDF), 720, 883
Lambertian emitter, 695
Lambertian luminaire, 785
Lambertian reflectance, 28, 358, 413, 720, 925
Lambertian reflectors, 719–721
Lambertian scattering, 413–414, 716, 725
Lambertian shading, 353
Lambertian wall paint, 708
Lambert’s Law, 358
Laplacian coordinates, 655–657
properties of, 657
Large-scale object geometry, 337
Larrabee (CPU/GPU hybrid), 1138–1142, 1139f
cache coherence, 1140
capability of, 1140
correct provisioning, 1141
efficient parallelization, 1141
flexibility in, 1140
vs. GeForce 9800 GTX, 1140
generality in, 1140
Intel’s IA-32 instruction set architecture (ISA), use of, 1140
latency hiding, 1140
multiple processing cores, 1139
sequence optimization, 1141
specialized, fixed-function hardware, 1139
SPMD and, 1140
texture evaluation, 1139
wide vectors, 1139
Lateral inhibition, 108
Law of conservation linear momentum, 1011
Layout, defined, 85
LCD. See Liquid-crystal displays (LCDs)
LED-based interior lighting, 752
Legacy models, 324
Lemniscate of Bernoulli, defined, 616f
Lens flare and bloom, 366, 369
Level of detail (LOD), 347
Level set methods, 631
Levels of detail (geometric representations), 645–649
parametric curves and, 649
surfaces and, 649
Level surfaces, 619. See also Isosurfaces
Lexical design (user interface), 570
area, 888
bending of, at an interface, 679–680
defined, 669
directional, 125
elliptically polarized, 679
excitation purity and, 747
geometric, 124
hemisphere area light, 378–379
infrared, 672
interaction with objects, 118–119
interaction with participating media, 737–738
metameric, 768
light capture, 29
modeling as a continuous flow, 683–692
monospectral, 747
other measurements of, 700
path, 796
physical properties of, 669–670
quantized, 670
rectangular area light, 377–378
spectral distribution of, 746–748
ultraviolet, 671
unpolarized, 683
wavelength of, 670
wavelike, 670
Light energy and photon arrival rates, 12–13
Light geometry, 133
Lighting, 312
indirect, 834
and materials, 458
Phong, 930
programmable, 930
vs. shading in fixed-function rendering, 127–128
Lighting specification, 120–128
Light maps, 341
CIE definition of, 755
Light path, 796
alternative formulations of, 846–847
boundaries and, 798
caustics and, 798
classification of paths, 796–799
perceptually significant phenomena and, 797–799
polarization and, 798
shadow and, 797
symbols used in, 784t
Light-transport paths classification of, 796–799
Linear combination, 157
Linear depth, 1040
Linear depth encoding, 1040
Linear interpolation, 201
Linearly polarized electric field, 678
Linear radiance, 398
Linear transformation, 221, 259, 307
degenerate (or singular) transformation, 224
multiplication by a matrix as, 224
nonuniform scaling, 223
shearing, 223
Linear waves, 675
Linear z, 1040
Lines, intersections of, 165–167
Linked list (data structure), 1077
Liquid-crystal displays (LCDs), 20
List, as a class of spatial data structures, 1081–1083, 1082f
C++ implementation of conservative ball-primitive intersection in, 1083
C++ implementation of ray-primitive intersection in, 1083
unsorted 1D list, 1081
List-priority algorithms, 1040–1043
BSP sort, 1043
clusters, 1043
depth-sort algorithm, 1042–1043
painter’s algorithm, 1041–1042
Live Paint, 1042
Local flatness (surface), 643, 882
Local Layering, 1042
LOD. See Level of detail (LOD)
Look vectors, 304
LookDirection, 122
Losslessly compressed image, 483
Low-level vision, 105
Lucasfilm, 932
Lumens, 707
Luminaire models, 369
and direct and indirect light, 370
and nonphysical tools, 371–372
practical and artistic considerations of, 370–377
and radiance function, 370
area lights, 888
computer graphics, 369
Lambertian, 785
of light source, 751
signal representative of, 770–771
Luminous efficiency, 707
Luminous efficiency function, 751
Luminous intensity, 751
Macintosh, 568
Magnitude, of impulses, 740, 793
Manifold meshes, 190, 191, 193–195
2D mesh as, 193
boundaries, 194
orientation of triangles in, 193–194
Manifold-with-boundary meshes, 195
operations on, 195
Mappings
application examples of, 557t
cylindrical, 555
reflection, 556
spherical, 555
algorithm, 628
extended, 653
Marching squares, 627
Hermite version of, 653
estimating matrix entries with, 858–859, 860–861
Metropolis light transport, 871–872
Markov property, 857
Marks (expressive rendering), 950–951
creation of, 951
imitation of artistic technique for creating, 951
physical simulation, 951
scanning/photography approach for creating, 951
Masking, 730
Master templates, 39
Material, in scattering, 712
software interface to, 740–741
Materials
lighting and, 458
Mathematical model, 2, 11. See also Geometric model; Numerical model; Physical models
and sampled implicit function representations, 623–624
Mathematics, and computer graphics, 30–31
Matrix associated to a transformation, 224
Matrix/matrices, 156
diagonal, 230
identity, 225
invertible, 225
orthogonal, 230
singular value decomposition (SVD) of, 230
special orthogonal, 230
Matrix multiplication, 161–162
Matrix transformations, 222
interpolating, 280
Matter, 336
Matting problem, 367
MaxBounce (photon mapping), 873
McCloud, Scott, 947
Mean. See Expected value
Measured BSDFs, 358
Measured/captured models, of scattering, 713, 725–726
Measurement,
and sampling, 507
Measure of a solid angle, 687
Megakernel tracing, 1033
Memoization (component of dynamic programming technique), 983
Memory principles, 434–435, 1117ff
adjacency information on, 338–339
alternative mesh structures, 338
beautification, 197
cached and precomputed information on, 340–341
connected unoriented, 639
differential coordinates for, 657
embedding topology for, 637
icosahedral, 648
indexed triangle, 338
Laplacian coordinates for, 657
manifold, 191
manifold-with-boundary meshes, 195
nontriangle, 637
operations, 197
orientation of triangles in, 193–194
other simplification approaches, 652
per-vertex properties and, 339–340
polygonal, 953
simplices, 208
subdivision of, 211
terminology, 641
terminology for, 208
unoriented, 191
winged edge polyhedral representation and, 338
Mesh beautification, 197
Mesh flattening, 667
Mesh Laplacians, 656
Mesh operations, 197
edge collapse, 197
mesh beautification, 197
mesh simplification, 197
Mesh structures, 211
memory requirements for, 196–197
Metaball modeling, 343
Metadata, 483
Metameric lights, 768
Metamers, 768
Metropolis light transport, 871–872, 915
Microfacets, 729
Microgeometry, 901
Micropolygon rasterization, 431–432
Microsoft Office Picture Manager, 569
Minecraft, 964
Mirrors
Mirror scattering, 715, 717–719
Mitchell-Netravali filter, 540f
Model, defined, 2
Modeling, defined, 2
Modeling space, 21
Modeling stage, 460
Modeling transformation, 51
Modelview, 314
Modelview matrix, 463
Modelview projection matrix, 314
Modified Euler method, 1020
Modular modeling
Modulus, of complex numbers, 513
Moiré patterns (image), 544
Monet painting, 948
Monospectral distributions, 747
Monte Carlo approaches, 851–854
bidirectional path tracing, 853
distribution ray tracing, 838
path tracing, 853
photon mapping, 853–854, 872–876
Monte Carlo integration, 783, 796, 854
Monte Carlo rendering, 786, 922
Morphogens, 561
Motion
root, 969
Motion blur, 980–983, 1061–1062
temporal aliasing and, 980–983
Motion-blur rendering, 922
Motion-induced blindness, 114
Beta phenomenon, 977
strobing, 977
Mouse-based object manipulation in 3D, 580–584
arcball interface, 584
MSAA. See Multi-sample anti-aliasing (MSAA)
Multipass rendering, 441
Multiple importance sampling, 820, 868–870
Multiresolution geometry, 471
Multisample antialiasing (MSAA), 433, 1057–1058, 1136
advantages of, 1058
Multitouch interaction for 2D manipulation, 574–580
Munsell color-order system, 762
Mutation strategy, 871
Mutually perpendicular vectors, 229, 240
Natural user interfaces (NUIs), 571
Nearest neighbor (density estimation), 912
Nearest-neighbor field, 564
Nearest-neighbor strategy (animation), 967
Near-plane clipping, 1044, 1046
Negative nodes (BSP tree), 1031
Neighborhood (subdivision surfaces), 610
Neighbor-list table, 191
Nit (photometric term), 751
Nonphotorealistic camera, 3
Nonphotorealistic rendering (NPR), 945, 986
Nonspectral colors, 766
Nonspectral radiant exitance, 700. See also Radiosity
Nonuniform B-spline, 604
Nonuniform Catmull-Rom spline, 601–602
Nonuniform rational B-spline, 604
advantages of, 604
CAD systems and, 604
Nonuniform scale. See Nonuniform scaling transformation
Nonuniform scaling, as linear transformation in the plane, 223
Nonuniform scaling transformation, 223
Nonuniform spatial distribution, 1100
Nonzero winding number rule, 177
Norm, of a vector, 157
Normal. See Normal vectors
Normalization process, 72
Normalized Blinn-Phong, 359–361
Normalized device coordinates, 22, 72. See also Camera-space coordinates
Normalized fixed point, 325
Normalizing vector, 157
Normal maps, 647
Normal transform. See Covectors, transforming
Normal vectors, 16, 27–28, 164, 193–194
Notation, mathematical, 150
Numbers
and orders of magnitude in graphics, 12–15
Numerical integration, 29, 801–802
deterministic method, 801–802, 804
probabilistic or Monte Carlo method, 802
Numerical methods for solving ODEs, 1017–1020
Numerical model, 11. See also Mathematical model; Physical models
NURB. See Nonuniform rational B-spline
NVIDIA GeForce 9800 GTX GPU, 1138
Nyquist frequency, 515
Nyquist rate, 544
Object-centered rotation, 272. See also Body-centered rotation
Object coordinates, 140, 245. See also Object space
Object ID channel, 485
Object-level scattering, 711–712
Object-oriented API, 41
Objects
detail, 1051
interaction with light, 118–119
Object space, 245. See also Modeling space; Object coordinates
in 2.5D systems, 1042
Occlusion function, 1025
Occlusion query, 1049
Odd winding number rule, 177
OLED. See Organic light-emitting diodes (OLEDs)
Omnidirectional point light
One-dimensional (1D) meshes, 189
boundary of, 190
manifoldmesh, 190 1-ring (vertices), 641
OpenGL, 452
compatibility (fixed-function) profile, 454–455
core API, 466
programmable pipeline, 464–466
utility toolkit, 456
OpenGL ES, 479
OpenGLUtilityToolkit. See GLUT(OpenGLUtilityToolkit)
Optic disk, 107
Optimization
Ordinary differential equation (ODE), 998
numerical methods for, 1017–1020
Organic light-emitting diodes (OLED), 20
Orientation-preserving reflection, 264, 284
Oriented meshes, 191
closed, 195
Oriented simplex, 639
Orthogonal matrix, 230
Orthographic projections. See Parallel projections
Outer product (matrices), 260
Output-sensitive time cost, 1079
Outscattering, 738
Outside/inside testing, 175–177
Outward edge normal, 175
Over operator, 365
Packet tracing, 1061
Painter’s algorithm, 1028, 1041–1042
Panning (camera controlling technique), 585
PantoneTM color-matching system, 761
Paraboloid, dual, 554
Parameterization
building tangent vectors from, 552–553
of lines, 155
texture, 555
of triangles, 171
Parameterized model, 76
Parametric equation, 341
Parametric form of the line between P and Q, 155
Parametric-implicit line intersection, 167
Parametric lines, transforming, 254
Parametric-parametric line intersection, 166
Partial coverage, 364–367, 365, 1028, 1054–1062
as a material property, 1062
spatial antialiasing, 1055–1060
Particle collision detection, 1008–1009
Particle collisions, 1008–1012
collision detection, 1008–1009
normal forces through transient constraints, 1009
Path mesh, 668
core procedure in, 893
symbols used in, 890
algorithmic drawbacks to, 855–856
constructing a photon map via, 873
path tracer, building, 864–868
Pdf. See Probability density function (pdf)
Pen (geometric attribute), 38
Penalty force
defined, 1009
Pencil of rays, 1060
Perception, human visual. See Human visual perception
Perceptual color spaces, 767–768
Peripheral color perception, 781–782
Perspective camera specification, 301–303
Perspective-correct interpolation, 422–424
Per-vertex properties
Phong exponent, 736
Phong lighting, 930
Phong lighting equation, 938
Phong model (reflection model), 721–723
Phong reflectance (lighting) model, 134
Phong shading, 723. See also Gouraud shading
fragment shader for, 938–939, 940
vertex shader for, 938
Phosphorescence, 671
Photography
computational, 493
defined, 872
photon-mapping, 872
Photon arrival rates
constructing via photon tracing, 873
Photon mapping, 853–854, 872–876, 904–914
bias in, 875
consistency in, 875
density estimation and, 912
final gather step in, 913
image-space, 876
limitations, 875
main parameters of, 873
phases of, 872
schematic representation of, 853f
Photon tracing, 872
Photorealism, 945
Photorealistic rendering, 31
Physical coordinate system, 38
Physically based animation, 963, 989
Physically based models, of scattering, 713, 727–734
Physical models, 11. See also Numerical model; Physical models
Physical optics, 726
Physical units
Pick correlation, 39, 60, 139, 464
Pick path, 464
Piecewise constant function, 187
Piecewise linear extension, 210
animation, use in, 211
defined, 210
mesh structure and, 211
Piecewise linear reconstruction, 505
Piecewise-smooth curves, 540
Pitching, 267
Pixar, 932
Pixel coordinates, 22
Pixel program, 433
Pixels, 5
defined, 29
Pixel shader. See Pixel program
Pixel shaders, 930. See also Fragment shaders
Pixel stages
and vertex stage, 433
Pixel values, 482
Pixmaps. See Bitmaps
Planar wave, 676
Planck, Max, 674
Planck’s constant, 12, 670, 674
PNG. See Portable Network Graphics (PNG)
Point lights, 124–125, 133, 886–889
computing direct lighting from, 894
reflecting illumination from, 894
Poisson disk process, 921
circular, 678f
linear, 678f
Polarizers, 679
Polling (interaction loop), 574
Polygonal contour extraction, 955
Polygon coordinates, 249. See also Modeling coordinates
Polygon meshes, 635
back face, 337
drawing as black box, 23
front face, 337
interiors of nonsimple, 177
micropolygon, 340
normal to polygon in space, 178–179
polygon rate, 14
simple, 175
Polygon soup, 654
Polyhedral manifolds, 191
Polyhedral meshes
conversion to implicits, 629
Polyline, 81
Polymorphic types, 1068
Polymorphism, 1073
“Poor man’s Fourier series,” 560
Poor sample test efficiency, 420
Popping, 985
Portable Network Graphics (PNG), 484
Portal culling, 470
Positive nodes (BSP tree), 1031
Positive winding number rule, 177
Potential energy, 1021
Potentially visible set (PVS), of primitives, 1050
Power vectors, 875
p-polarized light source, 681
p-polarized waves, 681
Practical lights, 372
Prebaking (models), 247
Premultiplied alpha, 366–367, 487
problem with, 489
Presentation vector graphics, 1042
Primary ray, 1027
Primary visibility, 1023, 1024, 1027
Primitive components
instantiating, 141
Primitives, 6, 38, 461–462, 962, 969, 973, 1028, 1030–1031, 1041–1042, 1044, 1059–1060, 1084–1085, 1087–1092
Primitives per second, 6
Principal curvatures, 956
Principal directions, 956
Probability
of an event, 803
Probability density functions (pdf), 684, 808, 810–812
Probability mass function (pmf), 803, 805
Probability of an event, 809
vs. declarative specification, 40
dynamics via, 58
Procedural texturing, 549
Programmable graphics card, 8. See also GPU.
Programmable lighting, 930. See also Programmable shading
Programmable pipeline, 433, 453–454
Programmable rendering pipeline
Programmable shading, 930, 932. See also Programmable lighting
Programmable units, 433
Programmatic interfaces, 1068–1077
Programmer instruction batching, 1033
Programmer’s model, 17, 454–464
goal of, 649
Progressive refinement (radiosity), 843
Progressive television formats, 978
Projected solid angle, 690
Projection stage, 460
Projective frame, 265
Projective transformations, 255, 257, 259–260, 263, 291–293, 308
general position, 291–292, 292f
Projective transformation theorems, 265–266
Proxies (data structure), 1068
Pseudoinverse
defined, 232
least squares problems and, 232
Pseudoinverse Theorem, 232
Pulldown (interlacing), 979–980
Quad fragments, 1137
Quadratic error function, 653
Quake video game, 1052
Quantitative invisibility, 1028
QuickDraw, 38
Radial curvature, 957
Radiance, 333, 397, 693, 694–695
area-weighted, 910
impulse-reflected, 794
linear, 398
Radiance computations, 683, 695–697
Radiance function, 370
Radiant exitance, 699
spectral, 699
Radiant flux, 699. See also Radiant power
Radiant power, 699. See also Radiant flux
Radiosity, 333, 700, 797, 838–844. See also Nonspectral radiant exitance
characteristics, 838
color bleeding and, 839
as finite element method, 839
meshing in, 843
Radiosity equation, 840
Randomized algorithms
Random parametric filtering (RPF), 922
Random point, 812
Random variable(s)
in continuum probability, 809
defined, 803
estimator, 818
expected value of, 810
identically distributed, 808
independent, 807
independent identically distributed (iid), 808
and randomized algorithms, 802–815
random point and, 812
uniform, 807
Random variable with mixed probability, 820
Raster devices, 8
Raster graphics, 209
Rasterization, 18, 418–432, 1027, 1061
conservative, 1096
hierarchical, 430
and high-level design, 388–393
incremental scanline, 431
rendering with API of, 432–434
Rasterizer algorithm, 418
Rasterizing stage, 433
Rational B-spline, 604
Rational numbers, 325
Ray casting, 1023, 1028, 1029–1034
implementation platform and, 393–403
and sampling framework, 407–408
time cost of, 1029
Ray intersection query, 1026
Ray optics
building blocks of, 330
Ray packet, 445
Ray packet tracing, 1027, 1033
Ray-plane intersection, 168–170
Ray-sphere intersection, 170–171
Ray tests, parallel evaluation of, 1032–1034
Ray tracer
steps involved in, 929
Ray-tracing
defined, 391
implicit surfaces, 342–343, 631
Ray-triangle intersection, 408–411, 1073
Reaction (morphogens), 561
Ready for rendering
vs. abstract geometric, 467
Realistic lighting
Realistic rendering, building blocks for, 26–31
Real-time 3D graphics platforms, 351–480
Reciprocity, 714. See also Helmholtz reciprocity
Reconstruction, 505
piecewise linear, 505
Rectangular area light, 377–378
Reference frame, 963
Reference renderer, 388
Reflectance, 133–138, 702–704, 711ff
ambient reflection, 136
diffuse reflection, 136
emissive lighting, 138
phong reflectance (lighting) model, 134
WPF reflectance model, 133–138
Reflectance equation, 703, 786
Reflection mapping, 556
Reflection model, 723. See also Scattering model
Reflective scattering, 697, 715
Reflective surface, 27
Refractive index, 679
Refractive scattering, 716
Rejection sampling, 823
Rendering, 6
intersection queries in graphics that arise from, 1066–1067
Monte Carlo, 922
motion-blur, 922
pen-and-ink, 950
photorealistic, 31
stroke-based, 955
Rendering equation, 373–376, 703, 783, 786–787, 831–836
approximating, 826
approximations of the series solution of, 847–848
discretization approach, 838–844
domain restriction, 827
for general scattering, 789–792
Markov chain approach for solving, 857–861
Monte Carlo approaches for solving, 851–854
recursive approach for solving, 861–864
simplifying, 840
spherical harmonics approach, 848–851
Replication
Representations
of implicit functions, 624–625
and standard approximations, 321–384
triangle fan, 338
Resolution, 8
eye’s resolution, 13
Resolution dependence, 38
Resolved framebuffer, 1056, 1056f
Restricted transformations, 295–297
advantages of, 295
disadvantages of, 295
Retained mode (RM), 452
vs. immediate mode (IM), 39–40
Retina, 107
Retroreflective scattering, 716
Reyes micropolygon rendering algorithm, 982–983
RGB format, 481
RGB image, 482
Right-handed coordinate system, 158
Rigid coordinate frame, 240
Rodrigues’ formula, 293
Rods (color receptors), 107, 749
saturated, 755
Rolling, defined, 267
Root frame, 972
Root frame animation, 972
Root motion, 969
Rotation, as linear transformation in the plane, 222–223
Rotation about z by the an angle, 266
Rotation around z, 239. See also Rotation in the xy-plane
Rotation by an angle in the xy-plane of 3-space, 266
Rotation in the xy-plane, 239. See also Rotation around z
finding an axis and angle from, 270–272
axis-angle description of, 269–270
interpolating between, 276–278
vs. rotation specifications, 279–280
Russian roulette, 874
S (normalizing vectors), definition, 157
Sahl, Ibn, 679
Sample-and-hold strategy (animation), 967
Sample and hold reconstruction, 505
Samples (implicit functions), 621
Sample shaders, 930
Sampling, 29, 507–508, 557–559, 724–725
approximation of, 519
and band limiting in interval, 514–515
cosine-weighted, 815
integration and, 31
rejection, 823
stratified, 920
Sampling strategy, 854
Sampling theorem, 515
Scalability, 469
Scalar attributes, 651
Scalar multiplication, 157, 158
Scale invariance, 911
Scale transformations, 263–264
Scanline interpolation, 208–210
Scanline rendering, 209
diffuselike, 792
due to transmission, 900
equation, 790
glossy, 716
Lambertian, 716
models, 713
nonspecular, 852
physical constraints on, 713–714
reflective, 715
refractive, 716
rendering equation for, 789–792
retroreflective, 716
transmissive, 715
Scattering equation, 790
Scattering models, 723. See also Reflection model
empirical/phenomenological models, 713, 717–725
measured/captured models, 713
physically based models, 713, 727–734
Torrance-Sparrow model, 729–731
types of, 713
Scatters, light, 333
abstract coordinate system to specify, 42–44
reduction of complexity, 469
Scene generator, 37
Scene graphs, 39, 118, 351–353
coordinate changes in, 248–250
hierarchical modeling using, 138–147
Scene modeling, 945
Schematization (abstraction), 947
Schlick approximation, 728–729
Screen door effect, 986
Screen space, 245
Screen tearing, 976
Second-order Runge-Kutta methods, 1019
Sector (polyhedron), 1050
Sector-based conservative visibility, 1050–1054
stabbing line, 1051
Sector-based culling, 470
Segments (of a spline), 599
Self-shadowing, 1027. See also Shadow acne
Semantic element, 352
Semi-Explicit Euler method. See Semi-Implicit Euler method
Semi-Implicit Euler method, 1019
Sensor response, 791
Separable filter, 544
Sequencing design (user interface), 570
Sets, 150
Shaders, 8, 453. See also Programs
defined, 928
extensibility via, 453
geometry, 931
historical development, 929–932
pixel, 930
sample, 930
in scattering model, 723
simple graphics program with, 932–937
subdivision surface, 931
tessellation, 931
Shader-specified visibility, 1136
Shader wrapper, 933
G3D, 933
Shades (color), 756
vs. lighting in fixed-function rendering, 127–128
two-tone, 959
Shading language, 927
Shading normals, 339
Shadow, and light transport, 797
Shadow acne, 325, 416, 1027. See also Self-shadowing
Shadow mapping, 557t
applications of, 113
curvature, 946
direct, 946
Shannon sampling theorem, 515
Shape constancy, 110
Sharp edges, 651
Shearing transformations, 264
as linear transformation in the plane, 223
Shift-invariant, 529
Shutter time, 980. See also Exposure time
SIGGRAPH (Special Interest Group on GRAPHics and Interactive Techniques), 4, 922
Signal processing, 500
Signal, 500
Signed area
Signed distance transform of the a mesh, 629
Signed normalized fixed-point 8-bit representation, 551
Silhouette, 952
Silicon Graphics, Inc., 931–932
SIMD. See Single Instruction Multiple Data (SIMD)
Simple polygons, 175
Simplex, 208
boundary of, 208
categories of, 208
oriented, 639
Simplicial complices, 198
Simplification, 471
abstraction, 947
Single Instruction Multiple Data (SIMD), 430, 1033
Singular transformation. See Degenerate transformation
Singular value decomposition (SVD), 230
computing, 231
matrix properties and, 230–231
Singular values of matrix M, 230
Size constancy, 110
Sky sphere. See Skyboxes
Slerp, 275. See also Spherical linear interpolation
Slicing, 935
Smith, Alvy Ray, 498
Smooth edges, 953
Smooth manifolds, 190
Snell-transmissive scattering, 783–784. See also Impulses
Soft particles, 351
Software-platform independence, 44
Software stack, 468
measure of, 687
projected, 690
subtended, 687
Source (texture image), 563
Source polygon, 1045
Spatial acceleration data structures. See Spatial data structures
Spatial antialiasing, 1055–1060
A-buffer, 1057
coverage sampling antialiasing (CSAA), 1058–1059
multisample antialiasing (MSAA), 1057–1058
supersampled antialiasing (SSAA), 1056–1057
Spatial coherence, 950
Spatial data structures, 353, 1023, 1065–1102
extracting keys and bounds, 1073–1077
generic use of, 1077
hash grid, 1095
Huffman’s algorithm and, 1089
intersection methods of, 1069–1073
k-dimensional structures, 1080–1081
ordered, 1077
polymorphic types, 1068
programmatic interfaces, 1068–1077
selecting, 1077
Spatial frequencies, 103
SPD. See Spectral power distribution (SPD)
Special orthogonal matrix, 230
Specification
color, 133
transformations and camera, 299–317
Spectral irradiance, units of, 698
Spectralon, 720
Spectral power distribution (SPD), 747
incandescent lights, 748
monospectral distributions, 747
Spectral radiance, 692
integral of, 692
Spectral radiant exitance, 699
Spectrum (of a signal), 513
Specular, in graphics, 8
Specular exponent, 137
Specular power. See Specular exponent
Specular reflections, 137, 713
Specular (mirror) reflections, 353
Specular surface, 27
Sphere mapping, 340
Sphere-to-cylinder projection theorem, 688
Spherical harmonics, 531, 843, 848–851
Spherical linear interpolation, 275. See also Slerp
Spline patches, 344
and subdivision surfaces, 343–344
Splines, 343, 595ff, 599, 607ff, 623
s-polarized wave, 681
Spot color, 766
Square integrable, 506
Square summable, 506
sRGB standard, 774
Stabbing line, 1051
Stamping, 985
Standard basis vectors, 227
Standard deviation, 807
Standard implicit form for a line, 165
Standard parallel view volume, 307
Standard perspective view volume, 307
Star of an edge, 641
State machine, 454
State variable, 454
State vectors, 1015
Statistical estimators, 827–830
Stefan-Boltzmann law, 672
Stencil buffer, 329
Steradians, 688
Steven Anson Coons Award, 608
Stratified sampling, 920
blue-noise property of, 921
Strobing (motion perception), 977
Strokes (expressive rendering), 950–951
creation of, 951
imitation of artistic technique for creating, 951
oil-paint, 951
pen-and-ink, 951
physical simulation, 951
scanning/photography approach for creating, 951
Styles, 85
artistic, 947
Subdivision, meshes, 211
Subdivision, of triangle meshes, 188
Subdivision curves, 604
Subdivision surfaces, 344, 607
Subdivision surface shaders, 931
Subsurface reflector, 720
Subsurface scattering, 353, 720, 738–739
computing, 739
modeling, 739
physical modeling, 739
practical effects of modeling, 739
Subtractive color, 760
Suggestive contour generator, 958
characteristics of, 958
Suggestive interface, 589
Summary measures, of light, 670
Sum-squared difference, 104
Superposition, 361
Supersampled antialiasing (SSAA), 1056–1057
advantages of, 1056
implementing, 1056
Surface mesh
embedding of, 642
Surface radiance, 786–787, 834, 846
computation from field radiance, 786
Surface radiance function, 787
Surface representations, 882–887
closed, 638
orientable, 639
oriented, 639
physical constraints on, 713–714
scattering models, 713
texturing via stretching, 132
texturing via tiling, 132
Surface with boundary, 638
Surjective, 151. See also Bijective
Sutherland-Hodgman 2D clipping, 1045–1046
Tabulated functions, 201
Tagged Image File Format (TIFF), 482
Tangent-space basis, 340
Tangent vectors
building from a parameterization, 552–553
Target (texture image), 563
Taylor polynomial, 1017
Teddy (user interface), 590
Telecine (interlacing), 978–980
Template (pixels), 563
Templated classes in programming languages, 1068
Temporal coherence, 950, 962, 983
advantage of, 983
Tent-shaped functions, 208. See also Basis functions
Tent-shaped graphs. See Basis functions; Tent-shaped functions
Tessellation shaders, 652, 931
Texture aliasing, 216
Texture mapping, 131, 214–215, 547ff
application examples of, 557t
defined, 548
details of, 216
image-based, 559
properties of, 555
Texture maps, 15–16, 215, 547ff
Texture parameterization, 555
Textures
modeling, 630
projection, 555
Texture-space diffusion, 341
Fourier-like synthesis, 559–560
reaction-diffusion textures, 561–562
Texturing
via stretching, 132
via tiling, 132
3ds Max transformation widget, 588–589, 588f
3D transformations
building, 237
3D view manipulation widget, 588–589, 588f
3-space
essential mathematics and geometry of, 149–182
3:2 pulldown algorithm (interlacing), 979
TIFF. See Tagged Image File Format (TIFF)
Tile fragments, 1137
Time domain, 513
TIN. See Triangulated Irregular Network (TIN)
Tints (color), 756
T-junction, 642
Tone mapping, 919
Tones (color), 756
Tool trays, 569
fragment shader for improved, 942
pixel shader for, 941
Torrance-Sparrow model, 729–731
Total internal reflection, 682
Trait data structure, 1074
Traits, as key extraction method, 1074–1077
advantages of, 1076
disadvantages of, 1076
Transformation
linear, 307
modeling hierarchy and camera, 313–315
perspective-to-parallel, 313
projective, 308
rasterizing renderer ripeline and camera, 310–312
unhinging, 307
windowing, 300
Transformation associated to the matrix M, 224
Transformation pipeline, 460
Transformations, 221–286, 288–290
adjoint, 253
AffineTransformation2, 288
associated, 294
change-of-coordinate, 231
composed, 235
and coordinate systems, 229–230
covector, 253
finding the matrix for, 226–228
fractional linear, 256
homogenizing, 265
vs. interpolation, 259
LinearTransformation2, 288
matrix, 222
MatrixTransformation2, 288
modeling, 630
parametric lines, 254
projective, 255, 257, 259–260, 263, 291–293
ProjectiveTransformation2, 289
shearing, 264
specification of, 290
world-centered rotation, 272
Translation, 222, 233–234, 263
Translation equivariant reconstruction, of signal, 546
Translucency, and blending, 361–364
Transmission/rendering, 353, 367–368
Transmissive scattering, 715
Transparent surface, 364
Transport paths, separation of, 844
Transposition, 156
Trees, as a class of spatial data structures, 1083–1093
binary space partition (BSP) trees, 1084–1089
Bounding Volume Hierarchy (BVH), 1092–1093, 1092f
kd tree, 1089
oct tree, 1090
Triangle fan, 338
Triangle list, 338
Triangle meshes, 187, 187f, 188f, 635
icosahedral, 187
1D mesh, 189
subdivision of, 188
uniformity of, 188
Triangle processing, 17
Triangle reordering for hardware efficiency, 664–667
parameterization of, 171
signed area, 177
Triangle soup, 338
Triangle strip, 338
Triangulated Irregular Network (TIN), 345
Triangulated surfaces, 637–638
Triple buffering, 976
Trotter, Hale, 149
2D barycentric weights, 424–427
2D coverage sampling, 422
2D graphics
dynamics in 2D graphics using WPF, 55–58
and Windows Presentation Foundation (WPF), 35–60
2D manipulation
multitouch interaction for, 574–580
2D raster graphics platform, 38
2D scene
2D scissoring, 1044 2D transformations, 238–239
2-ring (vertices), 641
2-space
essential mathematics and geometry of, 149–182
Two-and-a-half dimensional, 43
Two-tone shading, 959
Übershader, 441
UI generator, 37
Ulam, Stanislaw, 945
Umbilic points, 956
Uncanny valley, 19
Undragging, 581
Unhinging transformation, 307
Uniform color space, 767
Uniform density
on the sphere, 813
defined, 809
Uniform spline, 601
Uniformity, of triangle meshes, 188
Uniform random variable, 807
Uniform scaling transformation, 223
Units, 333
Unoccluded two-point transport intensity, 847
Unoriented meshes, 191
Unpolarized light, 683
Unsigned normalized, 325
User interface examples, 588–591
first-person-shooter controls, 588
Photoshop’s free-transform mode, 589
Teddy, 590
3ds Max transformation widget, 588–589, 588f
uv-coordinates, 216
Valence, 637
Value (data structure), 1077
Vanishing point, 77
Variables
Variance reduction, 921
Vectorization (programmer instruction batching), 1033
Vectors, 155–161, 234–235, 288
coordinate, 155
edge, 175
indexing, 156
normal, 164
normalizing, 157
degree of, 637
link of, 208
locally flat, 643
manifold, 194f
star of, 208
Vertex geometry processing, 17
Vertex geometry transformation, 17
Vertex normal, 129
Vertex stage and pixel stages, 433
Vertical synchronization, 976
View center (camera manipulation), 586
ViewCube (3D view manipulation widget), 588–589, 588f
View-frustum culling, 470, 1023
Viewing stage, 460
View region, 63
View specification
building transformations from, 303–310
standard parallel, 307
standard perspective, 305, 307
Vignetting, 336
Virtual parallelism, 1113ff
Virtual sphere, 580
Virtual trackball, 280–283, 580
Virtual transitions, 671
Visibility, 65
conservative, 1023
goals for, 1023
list-priority algorithms, 1040–1043
sector-based conservative, 1050–1054
Visibility determination
applications of depth buffer in, 1035–1036
current practice and motivation, 1028–1029
frustum clipping, 1028, 1045–1046
frustum culling, 1023, 1028, 1044
hardware rasterization renderers and, 1028
hierarchical occlusion culling, 1049–1050
list-priority algorithms, 1040–1043
partial coverage, 1028, 1054–1062
ray-tracing renderers and, 1028
Visibility function, 786, 799, 1025–1027
evaluating, 1026
Visibility problem. See Visibility testing
Visibility testing, 422
Visible contour, 953. See also Contour(s)
Visible surface determination, 1023. See also Hidden surface removal
Vision
Visual cortex, 103, 106, 108, 110
Visual perception, human. See Human visual perception
components of, 103
Volumetric scattering, 737
Voxelization, conservative, 1096
VRML, 479
vup, 302
Walk cycle, 966
Warnock’s Algorithm, 1041
Warped z-buffer, 1038
Watertight model (meshes), 643
Wave velocity, 675
w-buffer, 1040. See also Depth buffer
WebGL, 479
Weiler-Atherton Algorithm, 1041
Whites (color), 769
CIE definitions, 769
illuminant C, 769
illuminant E, 769
Whole-frustum clipping, 1044, 1047
Widgets. See UI controls
Wien’s displacement law, 710
Wii (interface device), 568
WIMP (windows, icons, menus, pointers) GUI (WIMP GUI), 6, 8, 567
Window chrome, 36
Windowing transformation, 236–237, 236f, 300
Windows Presentation Foundation (WPF)
application/developer interface layers, 40–41
canvas coordinate system, 45–46
dynamics in 2D graphics using, 55–58
Winged-edge data structure, 196
Wire-frame model, 65
The Wizard of Oz (film), 950
World-centered rotation, 272
World coordinate system, 119
WPF. See Windows Presentation Foundation (WPF)
WPF 3D, 117
design of, 118
high-level overview of, 119–120
X3D (language), 479
XAML. See Extensible Application Markup Language (XAML)
Xerox PARC, 8
2D texture map for, 942f
atmospheric perspective, 942
vertex and fragment shaders for, 942–943
Yaw, 267
YIQ color model, 775
z-buffer, 306, 310, 392. See also Depth buffer
z-data, 482
Zero set, 164, 616. See also Isosurfaces
Zero-to-one coordinates. See Normalized device coordinates
z-fighting, 1037
z-values
perspective and, 313