atomicAdd(), 601
atomicAnd(), 601
atomicCompSwap(), 601
atomicExchange(), 601
atomicMax(), 601
atomicMin(), 601
atomicOr(), 601
atomicXor(), 601
imageAtomicAdd(), 595
imageAtomicAnd(), 595
imageAtomicCompSwap(), 596
imageAtomicMax(), 595
imageAtomicMin(), 595
imageAtomicOr(), 596
imageAtomicXor(), 596
abs(), 712
acos(), 709
acosh(), 711
adjacency primitives, 523, 528–535
all(), 725
alpha value, 173
amplification
geometry, 539
analytic integration, 465
anisotropic filtering, 321
any(), 725
application programming interface, 2
area sampling, 465
array textures, 258
arrays, 44
asin(), 709
asinh(), 710
atan(), 710
atanh(), 711
atomic counter, 617–621, 636, 642
atomic operation, 591
on image variables, 591
atomicCounter(), 743
atomicCounterDecrement(), 743
atomicCounterIncrement(), 743
attenuation, 383
barrier, 611
memory, 611
barrier(), 754
barycentric coordinates, 505
Bernstein polynomials, 515
Bézier patches, 512
billboard, 537
bind, 17
bindless texture, 337
binomial coefficient, 515
binormal, 447
bit depth, 154
bitCount(), 727
bitfieldExtract(), 726
bitfieldInsert(), 727
bitfieldReverse(), 727
bit plane, 158
Boolean occlusion query, 181
buffer
pixel unpack, 268
shader storage, 589
buffer objects, 11
buffer ping-ponging, 348
built-in variables
compute shader, 642
geometry shader, 573
bump map, 453
byte swapping, 276
cache, 609
coherency, 609
hierarchy, 609
function, 866
callback(), 867
cascading style sheet, 682
ceil(), 713
clamp(), 715
client, 3
clip, 203
clip coordinates, 203
frustum, 202
user, 228
clipping region, 10
coherent, 611
communication, 645
components, 43
compressed texture, 256
compression, 189
compression ratio, 285
conditional rendering, 184
constructor, 40
constructors, 40
context
debug, 863
control texture, 426
controlling polygon rendering, 100
convex, 99
convolution, 465
convolution filter, 465
convolution kernel, 465
coordinate system, 197
coordinate systems, 200
cos(), 709
cosh(), 710
cracking, 517
cross(), 721
frustum, 202
in a geometry shader, 537
current, 17
deadlock, 614
debug
groups, 874
debug context, 863
debug message, 867
debug output, 866
default framebuffer, 155
degrees(), 709
depth coordinate, 200
depth fighting, 417
depth testing, 13
depth texture, 413
depth value, 13
determinant(), 723
dFdx(), 749
dFdxCoarse(), 750
dFdxFine(), 750
dFdy(), 749
dFdyCoarse(), 750
dFdyFine(), 750
diffuse light, 375
directional light, 379
dispatch, 639
indirect, 640
displacement mapping, 499, 520
display, 4
distance(), 721
dot(), 721
double-buffering, 156
dual-source blending, 176
dynamically uniform, 292
edge detection, 654
emission, 398
emissive lighting, 394
EmitStreamVertex(), 753
EmitVertex(), 753
end
of the universe, 880
EndPrimitive(), 753
EndStreamPrimitive(), 753
environment mapping, 309
equal(), 725
event loop, 8
exp(), 711
exp2(), 711
exponent, 282
eye coordinates, 200, 222, 397
faceforward(), 721
faces, 100
factorial, 515
feedback buffer objects, 231
fence, 602
filtering, 193
debug messages, 870
linear, 322
findLSB(), 727
findMSB(), 727
floatBitsToInt(), 717
floatBitsToUint(), 717
floor(), 713
fma(), 717
fract(), 713
fractional brownian motion, 477
fragment discard, 13
fragment shading, 13
fragment tests
early, 616
framebuffer attachment, 351
framebuffer rendering loop, 351
frequency clamping, 469
frexp(), 718
front-facing, 101
frustum, 200
clipping, 202
culling, 202
function overloading, 291
fwidth(), 749
fwidthCoarse(), 751
fwidthFine(), 750
gamut, 153
geometric model, xl
geometric object, 179
geometric primitive, 2
geometry shaders, 575
GetTextureHandleARB(), 338
GetTextureSamplerHandleARB(), 338
GL3W
gl3wGetProcAddress(), 677
gl3wIsSupported(), 676
GL CLIP PLANE0, 229
gl ClipDistance, 228
glActiveShaderProgram(), 85
glAttachShader(), 76, 89, 637, 660
glBeginConditionalRender(), 184
glBeginQuery(), 180–182, 880, 881
glBeginQueryIndexed(), 551
glBeginTransformFeedback(), 245, 246
glBindAttribLocation(), 447
glBindBuffer(), 19, 20, 65, 71, 104
glBindBufferBase(), 65, 66, 71
glBindBufferRange(), 65, 66, 71, 235
glBindBuffersRange(), 235, 236
glBindFragDataLocation(), 364
glBindFragDataLocationIndexed(), 364
glBindFramebuffer(), 349, 350, 362
glBindImageTexture(), 583, 584
glBindProgramPipeline(), 84
glBindRenderbuffer(), 356
glBindTextureUnit(), 261, 263, 289, 299, 300, 304, 340, 370, 584
glBindTransformFeedback(), 232
glBindVertexArray(), 8, 17, 18, 29
glBlendColor(), 176
glBlendEquationi(), 177
glBlendEquationSeparate(), 177
glBlendEquationSeparatei(), 177
glBlendFunc(), 174, 175, 178, 368, 369, 621
glBlendFunci(), 174, 175, 177, 368
glBlendFuncSeparate(), 174, 175, 178, 368
glBlendFuncSeparatei(), 174, 175, 177, 368
glBlitNamedFramebuffer(), 193, 194
glCheckFramebufferStatus(), 361, 362, 569
glClampColor(), 193
glClearBufferfi(), 157
glClearBufferfv(), 8, 28, 29, 157
glClearBufferiv(), 157
glClearBufferuiv(), 157
glClearNamedBufferData(), 107, 108
glClearNamedBufferSubData(), 107, 108
glClipControl(), 230
glColorMask(), 158
glColorMaski(), 158
glCommandf{sifd}(), xliv
glCompileShader(), 75, 523, 573, 637, 660
glCompressedTextureSubImage1D(), 287
glCompressedTextureSubImage2D(), 287
glCompressedTextureSubImage3D(), 287
glCopyNamedBufferSubData(), 108–110, 615
glCopyTexImage*(), 366
glCopyTexSubImage*(), 366
glcorearb.h, 9
glCreate*(), 17
glCreateBuffers(), 19, 20, 102–104, 370, 875, 876
glCreateFramebuffers(), 349–351
glCreateProgram(), 76, 79, 876
glCreateProgramPipelines(), 84, 877
glCreateQueries(), 180, 181, 183, 551, 877, 880
glCreateRenderbuffers(), 355, 356, 360
glCreateSamplers(), 288, 290, 877
glCreateShader(), 74, 78, 523, 637, 639, 660, 876
glCreateShaderProgramv(), 84
glCreateTextures(), 260, 261, 263, 305, 315, 341, 352, 370, 583, 875, 876
glCreateTransformFeedbacks(), 232
glDebugMessageCallback(), 866, 867
glDebugMessageControl(), 870
glDebugMessageInsert(), 872, 873
glDeleteBuffers(), 20
glDeleteFramebuffers(), 350, 351
glDeleteProgram(), 78
glDeleteProgramPipelines(), 84
glDeleteRenderbuffers(), 355, 356
glDeleteSamplers(), 290
glDeleteSync(), 604
glDeleteTransformFeedbacks(), 233
glDeleteVertexArrays(), 17, 18
glDepthFunc(), 171
glDepthMask(), 158
glDepthRangeArrayv(), 563, 564, 567
glDepthRangef(), 226
glDepthRangeIndexed(), 563, 564
glDetachShader(), 76
glDisable(), 30, 31, 101, 134, 163, 164, 167, 176, 178, 869
glDisablei(), 367
glDisableVertexAttribArray(), 28, 121, 139
glDispatchCompute(), 640, 641, 643, 644, 660
glDispatchComputeIndirect(), 640, 641, 644, 660
glDrawArrays(), 11, 29, 30, 124, 125, 127, 129, 137, 138, 144, 499, 530, 552, 640, 652
glDrawArraysIndirect(), 127, 128, 131, 640
glDrawArraysInstanced(), 127, 137, 138, 142, 145, 149, 553, 561
glDrawArraysInstancedBaseInstance(), 30, 144
glDrawBuffers(), 124, 362, 365, 366
glDrawElements(), 103, 124–126, 128, 129, 134, 138, 145, 531, 534
glDrawElementsBaseVertex(), 125, 126, 130, 138, 144, 145
glDrawElementsIndirect(), 128, 131
glDrawElementsInstanced(), 127, 138, 149, 561
glDrawElementsInstancedBaseInstance(), 144, 145
glDrawElementsInstancedBaseVertex(), 127, 128, 138, 149
glDrawElementsInstancedBaseVertexBaseInstance(), 144, 145
glDrawRangeElements(), 126, 825
glDrawRangeElementsBaseVertex(), 126
glDrawTransformFeedback(), 552, 559
glDrawTransformFeedbackInstanced(), 553
glDrawTransformFeedbackStream(), 552, 553, 559
glDrawTransformFeedbackStreamInstanced(), 553
glEnable(), 30, 31, 101, 134, 163–165, 167, 171, 172, 174, 178, 186, 187, 189, 190, 311, 523, 869, 870
glEnablei(), 367
glEnableVertexArrayAttrib(), 28
glEnableVertexAttribArray(), 28, 121, 125, 139
glEndConditionalRender(), 184
glEndQuery(), 180–182, 880, 881
glEndQueryIndexed(), 551
glEndTransformFeedback(), 246, 552
glext.h, 9
glFinish(), 115
glFlush(), 603
glFlushMappedBufferRange(), 114
glFlushMappedNamedBufferRange(), 115, 116
glFrontFace(), 101
GLFW
glfwCreateWindow(), 15, 348, 665, 666
glfwGetFramebufferSize(), 674
glfwGetKey(), 668
glfwGetMouseButton(), 669
glfwGetWindowUserPointer(), 675
glfwMakeContextCurrent(), 666
glfwSetCursorPosCallback(), 669
glfwSetErrorCallback(), 664
glfwSetKeyCallback(), 667
glfwSetWindowPos(), 672
glfwSetWindowSize(), 672
glfwSetWindowUserPointer(), 674, 675
glfwSwapBuffers(), 15, 156, 666
glfwWaitEvents(), 667
glfwWindowHint(), 671
glfwWindowShouldClose(), 15, 666
glGenerateTextureMipmap(), 328, 329
glGetActiveAtomicCounterBufferiv(), 757, 809–811
glGetActiveSubroutineName(), 758, 809
glGetActiveSubroutineUniformiv(), 758, 808
glGetActiveSubroutineUniformName(), 758, 808
glGetActiveUniform(), 299, 758, 801
glGetActiveUniformBlockiv(), 65, 758, 805, 806
glGetActiveUniformBlockName(), 758
glGetActiveUniformName(), 758
glGetActiveUniformsiv(), 66, 758, 804, 805, 811
glGetAttachedShaders(), 759, 800
glGetAttribLocation(), 139, 759, 802
glGetBooleani v(), 759, 788, 817
glGetBooleanv(), 759, 765, 774, 788, 795, 796, 818, 826, 847
glGetBufferParameteri64v(), 759, 770
glGetBufferParameteriv(), 759, 770
glGetBufferPointerv(), 759, 770
glGetBufferSubData(), 109, 544, 759
glGetCompressedTexImage(), 759
glGetDebugMessageLog(), 759
glGetError(), 604, 757, 759, 847
glGetFloatv(), 759, 765, 766, 772–774, 787, 788, 824, 825, 845
glGetFragDataIndex(), 365, 760
glGetFragDataLocation(), 365, 760
glGetFramebufferAttachmentParameteriv(), 760, 791, 792
glGetFramebufferParameteriv(), 760
glGetInteger64i v(), 760, 768, 804, 818–820
glGetInteger64v(), 760, 840, 845
glGetIntegeri v(), 760, 768, 774, 785, 787, 803, 817–820, 836
glGetIntegerv(), 164, 168, 186, 539, 545, 562, 568, 571, 606, 646, 757, 760, 765, 766, 768, 769, 771–773, 775, 776, 785–790, 793, 795–797, 800, 803, 818–820, 822–847, 875
glGetInternalformati64v(), 760
glGetInternalformativ(), 343, 760, 846
glGetMultisamplefv(), 186, 760, 847
glGetNamedBufferSubData(), 109, 110, 615
glGetObjectLabel(), 760, 768, 770, 780, 784, 790, 794, 798, 799, 801, 816, 818, 821, 876
glGetObjectPtrLabel(), 760, 876
glGetPointerv(), 760
glGetProgramBinary(), 761, 801
glGetProgramInfoLog(), 77, 761, 800
glGetProgramInterfaceiv(), 761, 812
glGetProgramiv(), 77, 642, 761, 800–804, 806, 807, 809
glGetProgramPipelineInfoLog(), 761, 799
glGetProgramPipelineiv(), 761, 799
glGetProgramResourceIndex(), 761
glGetProgramResourceiv(), 761, 813–815
glGetProgramResourceLocation(), 761
glGetProgramResourceLocationIndex(), 761
glGetProgramResourceName(), 761
glGetProgramStageiv(), 761, 807, 808
glGetQuery*(), 184
glGetQueryIndexediv(), 762
glGetQueryObjecti64v(), 762
glGetQueryObjectiv(), 182, 762, 816
glGetQueryObjectui64v(), 762, 880
glGetQueryObjectuiv(), 182, 551, 762, 816, 880, 881
glGetRenderbufferParameteriv(), 762, 793, 794
glGetSamplerParameter*(), 783, 784
glGetSamplerParameterfv(), 762, 783
glGetSamplerParameterIiv(), 762
glGetSamplerParameterIuiv(), 762
glGetSamplerParameteriv(), 762, 783
glGetShaderInfoLog(), 75, 762, 798
glGetShaderPrecisionFormat(), 762
glGetSubroutineIndex(), 82, 763
glGetSubroutineUniformLocation(), 81, 763
glGetTexImage(), 103, 615, 763, 776, 777
glGetTexLevelParameter*(), 781, 782
glGetTexLevelParameterfv(), 763
glGetTexLevelParameteriv(), 763
glGetTexParameterfv(), 763, 779
glGetTexParameterIiv(), 763
glGetTexParameterIuiv(), 763
glGetTexParameteriv(), 763, 779, 780
glGetTextureHandleARB(), 338–340
glGetTextureImage(), 274, 275, 278
glGetTextureParameteriv(), 344
glGetTextureSamplerHandleARB(), 338, 339
glGetTransformFeedbackVarying(), 763, 803
glGetUniform*(), 801
glGetUniformBlockIndex(), 65, 764
glGetUniformdv(), 764
glGetUniformfv(), 764
glGetUniformIndices(), 66, 67, 764
glGetUniformiv(), 764
glGetUniformLocation(), 47, 583, 764, 801
glGetUniformSubroutineuiv(), 764
glGetUniformuiv(), 764
glGetVertexAttribdv(), 764
glGetVertexAttribfv(), 764, 816
glGetVertexAttribIiv(), 764
glGetVertexAttribIuiv(), 764
glGetVertexAttribiv(), 764, 767, 768
glGetVertexAttribLdv(), 765
glGetVertexAttribPointerv(), 765, 767
glInvalidateBufferData(), 116
glInvalidateBufferSubData(), 116
glInvalidateFramebuffer(), 354, 362, 363
glInvalidateNamedFramebufferData(), 354
glInvalidateNamedFramebufferSubData(), 354
glInvalidateSubFramebuffer(), 362, 363
glInvalidateTexImage(), 354, 355
glInvalidateTexSubImage(), 354, 355
glIsBuffer(), 20
glIsEnabled(), 31, 164, 168, 757, 765, 769, 771–775, 785–787, 816, 847
glIsFramebuffer(), 350
glIsQuery(), 180
glIsRenderbuffer(), 356
glIsSampler(), 289
glIsShader(), 78
glIsSync(), 605
glIsTexture(), 261
glIsTransformFeedback(), 232
glIsVertexArray(), 18
glLineWidth(), 98
glLinkProgram(), 48, 62, 66, 76, 77, 89, 238, 549, 637, 639, 660
glMakeTextureHandleNonResidentARB(), 339, 340
glMakeTextureHandleResidentARB(), 339, 340
glMapBuffer(), 62, 110–113, 142, 544, 826
glMapNamedBufferRange(), 105, 111, 113–115, 604
glMinSampleShading(), 187, 188
glMultiDrawArrays(), 129
glMultiDrawArraysIndirect(), 131
glMultiDrawElements(), 129, 130
glMultiDrawElementsBaseVertex(), 129, 130
glMultiDrawElementsIndirect(), 131
glNamedBufferStorage(), 11, 21, 22, 103–106, 108, 112, 235, 370
glNamedBufferSubData(), 64, 105, 106, 108, 110, 112, 615
glNamedFramebufferParameteri(), 351
glNamedFramebufferRenderbuffer(), 359
glNamedFramebufferTexture(), 352
glNamedFramebufferTextureLayer(), 352, 569
glNamedRenderbufferStorage(), 357
glNamedRenderbufferStorageMultisample(), 357
global illumination, 398
glPatchParameterfv(), 507, 508, 513
glPatchParameteri(), 499–501, 512
glPauseTransformFeedback(), 245, 246
glPixelStore*(), 689
glPixelStoref(), 275
glPixelStorei(), 275
glPointParameter(), 347
glPointParameterf(), 347
glPointParameterfv(), 347
glPointParameteri(), 347
glPointParameteriv(), 347
glPopDebugGroup(), 869, 874, 875
glPrimitiveRestartIndex(), 134
glProgramParameteri(), 84
glProgramUniform(), 85
glProgramUniformMatrix(), 85
glProgramUniformMatrix*(), 85, 86
glProvokingVertex(), 536
glPushDebugGroup(), 868, 874, 875
glQueryCounter(), 881
glReadBuffer(), 193, 362, 365, 366
glReadPixels(), 103, 191–193, 365, 366
glRenderbufferStorage(), 358
glRenderbufferStorageMultisample(), 358
glResumeTransformFeedback(), 246
glSampleCoverage(), 165
glSampleMaski(), 166
glSamplerParameter{fi}(), 289
glSamplerParameter{fi}v(), 289
glSamplerParameterf(), 289, 330
glSamplerParameterfv(), 289
glSamplerParameteri(), 289, 290, 313, 329, 330
glSamplerParameterI{i ui}v(), 289
glSamplerParameteriv(), 289
glScissorArrayv(), 567
glScissorIndexedv(), 567
glShaderSource(), 74, 89, 523, 573, 639, 660
.length(), 45
align, 63
arrays, 44
blocks, 61
boolean types, 38
buffer block, 49
buffer blocks, 70
centroid, 751
clamp(), 456
coarse derivative, 464
column major, 63
const, 46
constructors, 40
control flow, 52
conversions, 40
defined, 57
derivative, 461
coarse, 464
fine, 464
dFdxCoarse(), 465
dFdxFine(), 465
dFdyCoarse(), 465
dFdyFine(), 465,
discard, 98
dmat4, 120
do-while loop, 52
dvec2, 120
dvec3, 120
dvec4, 120
extensions, 60
fine derivative, 464
floating-point types, 38
for loop, 52
functions, 53
fwidth(), 462, 465, 466, 470, 471
fwidthCoarse(), 465
fwidthFine(), 465
groupMemoryBarrier(), 648
if-else statement, 51
image, 578
implicit conversions, 40
in, 37, 46, 47, 54, 61, 187, 463, 503
in blocks, 71
inout, 54
integer types, 38
interface block, 61
invariant, 55
isolines, 509
ivec2, 119
ivec3, 119
ivec4, 119
layout, 364, 501, 502, 509, 510, 512, 514
length(), 71
location, 364
mat4, 122
memoryBarrier(), 647
memoryBarrierAtomicCounter(), 647
memoryBarrierBuffer(), 647
memoryBarrierImage(), 647
memoryBarrierShared(), 647
noperspective, 751
offset, 63
operator precedence, 50
operators, 50
out, 37, 47, 54, 61, 364, 429, 436, 502, 503, 509
out blocks, 71
packed, 63
parameter qualifiers, 54
precise, 519
precise qualifier, 56
#extension, 60
#if,#else,#endif, 57
__FILE__, 58
__LINE__, 58
__VERSION__, 58
row_major, 63
sample, 187
shared storage, 49
smoothstep(), 430, 438–439, 456, 461, 463, 471
std140, 63
std430, 63
step(), 460
storage qualifiers, 46
structures, 44
subroutines, 79
switch statement, 51
triangles, 509
uniform, 37, 47, 49, 61, 63, 225, 377, 380, 382, 395
uvec2, 119
uvec3, 119
uvec4, 119
vec2, 122
vec4, 37, 122, 124, 437, 438, 514, 590
vectors, component names, 43
while loop, 52
xfb_buffer, 242
xfb_offset, 242
xfb_stride, 242
glStencilFunc(), 158, 166, 167
glStencilFuncSeparate(), 166, 167
glStencilMask(), 158
glStencilMaskSeparate(), 158
glStencilOpSeparate(), 167, 168
glTexImage*D(), 615
glTexSubImage*D(), 615
glTextureBufferRange(), 316
glTexturePageCommitmentEXT(), 342, 343
glTextureParameter{fi}(), 290
glTextureParameter{fi}v(), 290
glTextureParameterf(), 290, 330
glTextureParameterfv(), 290
glTextureParameteri(), 290, 297, 313, 314, 341, 343, 421
glTextureParameterI{i ui}v(), 290
glTextureParameterIiv(), 290
glTextureParameterIuiv(), 290
glTextureParameteriv(), 290, 298
glTextureStorage*D(), 341
glTextureStorage1D(), 261–263, 265, 279, 286
glTextureStorage2D(), 261–263, 265, 272, 279, 286, 305, 317, 328, 330, 370
glTextureStorage2DMultisample(), 265
glTextureStorage3D(), 261–263, 265, 279, 286, 302, 584
glTextureStorage3DMultisample(), 265
glTextureSubImage1D(), 267
glTextureSubImage2D(), 103, 262, 267–269, 272, 275, 276, 283, 328, 342, 370, 584
glTextureSubImage3D(), 267, 278, 279, 305
glTextureView(), 317
glTransformFeedbackBufferBase(), 233
glTransformFeedbackBufferRange(), 234, 235
glTransformFeedbackVaryings(), 237, 238, 242, 548, 549
glUniform(), 48
glUniform2f(), 9
glUniform2fv(), 9
glUniform3fv(), 9
glUniformBlockBinding(), 66
glUniformMatrix(), 48
glUniformMatrix*(), 48, 49, 85, 86
glUniformMatrix4fv(), 566
glUniformSubroutinesuiv(), 82
glUnmapNamedBuffer(), 111, 113–115
glUseProgram(), 77, 78, 83, 84, 86, 639, 641, 660, 687
glUseProgramStages(), 84
glVertexArrayAttribFormat(), 28
glVertexArrayVertexBuffers(), 28
glVertexAttrib(), 122
glVertexAttrib4(), 122
glVertexAttrib4N(), 122
glVertexAttrib4N*(), 26
glVertexAttrib4Nub(), 122
glVertexAttribDivisor(), 139, 149
glVertexAttribI(), 123
glVertexAttribI*(), 123
glVertexAttribI4(), 123
glVertexAttribIPointer(), 119, 123
glVertexAttribL(), 123
glVertexAttribL*(), 123
glVertexAttribLPointer(), 120
glVertexAttribN*(), 159
glVertexAttribPointer(), 26–28, 30, 103, 117–122, 139, 159
glViewport(), 227
glViewportArrayv(), 563, 564, 567
glViewportIndexedf(), 563, 564, 566
glViewportIndexedfv(), 563
GLX
glXCreateContextAttribsARB(), 865
Gouraud shading, 160
gradient, 462
gradient vector, 462
graphics processing unit, 4
greaterThan(), 724
greaterThanEqual(), 724
groupMemoryBarrier(), 755
half-space, 99
halo, 398
handle, 338
hemispherical lighting, 399
hidden-line removal, 171
hidden-surface removal, 155
homogeneous clip coordinates, 200
homogeneous coordinates, 200, 206, 207
image processing, 654
image-based lighting, 403
imageAtomicCompSwap(), 596, 749
imageAtomicExchange(), 596, 748
immutable, 262
impostor, 571
imulExtended(), 726
init(), 8, 15, 16, 24, 26, 28, 157, 684
input-patch vertex, 501
instanced rendering, 95
instancing
intBitsToFloat(), 717
interpolate, 160
interpolateAtCentroid(), 751
interpolateAtOffset(), 752
interpolateAtSample(), 751
interpolation, 900
invariance, 54
inverse(), 723
inversesqrt(), 712
invocation, 55
compute shader, 637
isinf(), 716
isnan(), 716
IsTextureHandleResidentARB(), 340
jaggies, 188
lacunarity, 478
layered rendering, 537, 562–572
layout qualifier, 24, 523, 580, 638
ldexp(), 718
length(), 720
lens flare, 398
lessThan(), 724
lessThanEqual(), 724
light probe, 403
lighting, 72
ambient, 377
directional, 379
emissive, 394
hemispherical, 399
image-based, 403
material properties, 394
multiple lights, 390
point lights, 382
spherical harmonics, 409
spotlight, 385
two-sided, 396
linked list, 622
LoadImage.h, 270
LoadShaders(), 8, 22, 23, 79, 684, 686, 687
LoadShaders.h, 22
local viewer, 398
log(), 711
log2(), 712
logical operation, 178
lossless compression, 285
lossy compression, 285
low-pass filtering, 460
luminance, 43
magnification, 321
MakeTextureHandleNonResidentARB(), 339
MakeTextureHandleResidentARB(), 339
mantissa, 282
material, 72
matrices, 7
matrix, 205
column major, 225
multiplication, 205
OpenGL, 223
row major, 225
matrixCompMult(), 722
max(), 714
memory
read-only, 611
memoryBarrier(), 754
memoryBarrierAtomicCounter(), 755
memoryBarrierBuffer(), 755
memoryBarrierImage(), 755
memoryBarrierShared(), 755
min(), 714
minification, 321
magnification, 326
mipmap, 258
mipmaps, 324
mix(), 715
mod(), 714
model coordinates, 200
modeling transformation, 199
models, 4
modf(), 714
modulate, 376
monitor, 349
mutex, 598
nanosecond, 880
network, 3
gradient noise, 478
granite, 489
marble, 489
octave, 476
turbulence, 487
wood, 490
normal, 376
normal map, 453
normal maps, 452
normal vector, 222
normal vectors
transforming, 851
normalize(), 721
normalized device coordinates, 200
normalized homogeneous coordinates, 200
normalized value, 159
normalized device coordinates, 22
not(), 725
notEqual(), 725
object xxxix
label, 875
object coordinates, 200
octave, 476
off-screen rendering, 349
opaque types, 38
optimization
loop hoisting, 607
orthographic, 203
orthographic projection, 220
orthographic viewing model, 203
outerProduct(), 723
overloading, 40
pack, 106
packDouble2x32(), 719
packHalf2x16(), 720
packSnorm2x16(), 718
packSnorm4x8(), 718
packUnorm2x16(), 718
packUnorm4x8(), 718
pass-through shader, 11
performance profiling, 877
Perlin noise, 473
perspective correction, 751
perspective division, 203
perspective projection, 199, 202, 217
Phong reflection model, 390
Phong shading, 390
pixel, 4
point, 4
point fade threshold, 347
point lighting, 382
point sampling, 455
point sprites, 344
polygon, 100
polygon culling, 101
polygon faces, 101
polygon offset, 417
pow(), 711
primitive generator, 499
procedural shading, 424
procedural texture shader, 424
brick, 431
lattice, 442
regular patterns, 426
toy ball, 434
programmable blending, 622
projective texturing, 333, 421
protocol, 3
quadrilateral, 294
queries
timer, 880
race condition, 658
radians(), 708
rasterization, 3
disabling, 523
ray tracing, 4
readonly, 611
reflect(), 722
refract(), 722
renderbuffer, 348
rendering, 4
rendering pipeline, 10
resident, 339
resolved, 185
restrict, 608
restricted pointer, 608
RGBA, 153
rotation, 215
round(), 713
roundEven(), 713
sample, 185
sample shader, 187
sampler, 642
object, 287
sampler variables, 259
samples, 36
scaling, 212
scissor box, 164
scissor test, 567
scissoring, 164
separate shader objects, 83
server, 3
shader, 3
compiling, 639
fragment, 36
subroutines, 79
vertex, 35
shader plumbing, 8
shader program, 8
shader stage, 4
shader storage buffer, 46
shader storage buffer object, 71
shader variable, 23
shadow coordinates, 419
shadow map, 413
shadow mapping, 413
shadow sampler, 313
shadow texture, 415
shared exponent, 282
shared variables, 645
sign(), 712
sin(), 709
sinh(), 710
sky box, 307
slice, 258
smoothstep(), 716
sorting, 629
spaces
clip space, 200
eye, 397
eye space, 200
model space, 200
object space, 200
specialization constants, 86, 90
specular light, 376
spherical harmonic lighting, 409
SPIR-V, 86
spotlight, 385
sprite, 98
sqrt(), 712
state, 4
stencil buffer, 156
stencil testing, 13
step(), 716
stereo, 156
stipple, 170
storage qualifiers, 46
structures, 44
subpixel, 156
subroutines, 79
supersampling, 457
surface-local coordinate space, 446
surface-local coordinates, 446
sync object, 602
tan(), 709
tangent space, 447
tanh(), 710
temporal aliasing, 456
tessellated, 12
bypassing, 507
gl_in
variable, 502
gl_out
variable, 502
other variables, 503
pass-through, 507
cracking along shared edges, 518
displacement mapping, 520
domains
isolines, 505
selecting, 509
coordinate spacing options, 509–510
gl_in
variable, 511
gl_out
variable, 512
other variables, 512
primitive winding, 509
tessellation coordinates, 510
tessellation control shader, 498
tessellation coordinates, 498
tessellation domain, 497
tessellation evaluation shader, 498
tessellation level factor, 501
tessellation output patch vertices, 501
control, 35
evaluation, 35
tessellation shaders, 498
texels, 258
texture
array, 258
cube map, 571
gathering texels from, 336
proxy, 264
rectangle, 259
sparse, 341
target, 259
unit, 259
writing to, 587
texture comparison mode, 415
texture coordinates, 258
texture object, 258
texture sampler, 258
texture streaming, 330
texture swizzle, 297
texture targets, 259
texture unit, 259
texture view, 317
texture(), 291, 305, 313, 731, 732
textureGatherOffset(), 741, 742
textureGatherOffsets(), 742
textureGradOffset(), 337, 738, 739
textureOffset(), 333, 733, 734
TexturePageCommitmentEXT(), 342
textureProjGradOffset(), 337, 739, 740
textureProjLodOffset(), 337, 736, 737
textureQueryLevels(), 335, 731
textures
binding to image units, 582
bindless, 337
timeout, 603
transform feedback, 231, 544–561
objects, 231
particle system example, 246
starting and stopping, 244
varyings, 236
transform feedback object, 231
transformation matrices, 11, 851
transformation matrix
projection
orthographic, 220
perspective, 217
rotation, 215
scaling, 212
translation, 210
transformations
model-view, 200
modeling, 199
normals, 221
orthographic projection, 220
perspective projection, 199, 202, 217
rotation, 215
scaling, 212
translation, 210
viewing, 199
viewport, 200
translation, 210
transparency
order-independent, 621
transparent types, 38
transpose(), 723
trunc(), 713
turbulence, 487
typed array, 688
uaddCarry(), 726
uintBitsToFloat(), 717
umulExtended(), 726
uniform buffer object, 62
uniform variable, 47
unit square, 504
universe
end of, 880
unpack, 103
unpackDouble2x32(), 720
unpackHalf2x16(), 720
unpackSnorm2x16(), 719
unpackSnorm4x8(), 719
unpackUnorm2x16(), 719
unpackUnorm4x8(), 719
usubBorrow(), 726
Utah teapot, 512
vertex, 11
vertex winding, 509
vertex-array object, 16
vertex-attribute array, 26
viewing frustum, 200
viewing model, 198
viewing transformation, 199
viewpoint, 163
viewport, 12
index, 568
transform, 200
vmath::frustum(), 219
vmath::lookAt(), 220
vmath::ortho(), 221
vmath::rotate(), 217
vmath::scale(), 214
vmath::translate(), 211
volatile, 608
voxel, 302
WebGL
onload(), 689
WGL
wglCreateContext(), 864
wglCreateContextAttribsARB(), 864
wglGetProcAddress(), 864
winding, 101
window coordinates, 200
wire frame, 172
world coordinates, 200
write only, 611
X Window System, 3
z precision, 227
z-buffer, 156
z-buffering, 13
3.12.107.29