Index
A
- accessibility / Improving realism with prebaked ambient occlusion
- adjacency modes
- GL_LINES_ADJACENCY / Drawing silhouette lines using the geometry shader
- GL_LINE_STRIP_ADJACENCY / Drawing silhouette lines using the geometry shader
- GL_TRIANGLES_ADJACENCY / Drawing silhouette lines using the geometry shader
- GL_TRIANGLE_STRIP_ADJACENCY / Drawing silhouette lines using the geometry shader
- ads function
- about / How it works...
- ADS shading
- implementing / Implementing per-vertex ambient, diffuse, and specular (ADS) shading, How to do it..., How it works...
- non-local viewer, using / Using a non-local viewer
- per-vertex, vs. per-fragment / Per-vertex vs. Per-fragment
- directional light source / Directional lights
- distance attenuation / Light attenuation with distance
- functions, using / Using functions in shaders, How to do it..., How it works...
- Airy disc / Creating a "bloom" effect
- aliasing artifacts
- about / Using multisample anti-aliasing
- alpha maps
- using, for discarding pixels / Using alpha maps to discard pixels, How it works...
- ambAndDiff / How it works...
- ambient component
- about / Implementing per-vertex ambient, diffuse, and specular (ADS) shading
- ambient occlusion (AO)
- about / Introduction
- Screen-space ambient occlusion / Screen-space ambient occlusion
- dynamic ambient occlusion / Another technique for dynamic ambient occlusion
- anti-aliasing
- about / Using multisample anti-aliasing
- aoFactor
- about / How it works...
B
- back faces
- rendering / Rendering back faces only for the shadow map
- baking
- about / Improving realism with prebaked ambient occlusion
- Bernstein polynomials / Tessellating a curve
- Bezier curve
- about / Tessellating a curve
- binormal vector / Using normal maps
- blending functions / Tessellating a curve
- BlobSettings block / Using an instance name with a uniform block
- bloom effect
- about / Creating a "bloom" effect, There's more...
- creating / Creating a "bloom" effect, Getting ready, How to do it..., How it works...
- low-res textures, using / Using low-res textures
- blur filter
- about / Applying a Gaussian blur filter
- buffer object
- about / Using uniform blocks and uniform buffer objects
- example / Using uniform blocks and uniform buffer objects
- using / Getting ready, How to do it...
- buffer ping-ponging / Creating a particle system using transform feedback
C
- C++ shader program class
- requirements / Getting ready
- building / How to do it...
- working / How it works...
- canonical viewing volume
- about / Rendering shadows with shadow maps
- cartoon shading effect
- creating / Creating a cartoon shading effect, How to do it..., How it works...
- centroid qualifier
- about / There's more...
- chromatic aberration
- about / Chromatic aberration
- clamp function / There's more...
- cloud-like effect
- creating / Creating a cloud-like effect, How it works..., There's more...
- CloudColor / Getting ready
- Color attribute / How it works...
- ColorTex variable / Getting ready
- compatibility profile / Profiles: Core vs. Compatibility
- compileShaderFromFile function / How it works...
- compileShaderFromString function / How it works...
- const qualifier / The const qualifier
- convolution filters / Introduction
- core profile / Profiles: Core vs. Compatibility
- cube map
- about / Simulating reflection with cube maps
- CubeMapTex / How it works...
- curve
- tessellating / Tessellating a curve, How to do it..., How it works...
D
- 2D quad
- tessellating / Tessellating a 2D quad, How to do it..., How it works...
- 2D texture
- applying / Applying a 2D texture, How to do it..., How it works...
- 3D surface
- tessellating / Tessellating a 3D surface, How to do it..., How it works...
- DarkWoodColor / Getting ready
- deferredFBO variable / Getting ready
- deferred shading / Introduction
- using / Using deferred shading, How to do it..., How it works..., There's more...
- about / Using deferred shading
- deprecation model / Profiles: Core vs. Compatibility
- depth shadows
- about / Introduction
- diffuse component
- about / Implementing per-vertex ambient, diffuse, and specular (ADS) shading
- diffuse irradiance environment map / Image-based lighting
- diffuseOnly function / How it works...
- diffuse reflectivity / Implementing diffuse, per-vertex shading with a single point light source
- diffuse shading
- implementing, with single point light source / Implementing diffuse, per-vertex shading with a single point light source, Getting ready, How to do it..., How it works...
- about / There's more...
- directional light source
- about / Directional lights
- shading with / Shading with a directional light source, How to do it..., How it works...
- directional light source
- about / Shading with a directional light source
- discard keyword / Discarding fragments to create a perforated look
- disintegration effect
- creating / Creating a disintegration effect, Getting ready, How it works...
- distance
- computing, from eye / Computing distance from the eye
- dynamic ambient occlusion
- about / Another technique for dynamic ambient occlusion
E
- edge detection
- about / Applying an edge detection filter
- edge detection filter
- applying / Applying an edge detection filter, How to do it..., How it works...
- EdgeWidth variable / Getting ready
- emitEdgeQuad function / How it works...
- EmitVertex function
- about / The geometry shader
- EndPrimitive function
- about / The geometry shader
- environment mapping
- about / Simulating reflection with cube maps
F
- fileExists function / How it works...
- fire
- simulating, with particles / Simulating fire with particles, Getting ready, How to do it..., There's more...
- fixed-function pipeline / The OpenGL Shading Language
- flat shading
- implementing / Implementing flat shading, How it works...
- about / Implementing flat shading
- fog
- simulating / Simulating fog, How to do it..., How it works..., There's more...
- fog factor
- about / Simulating fog
- forward compatible context / Profiles: Core vs. Compatibility
- FragColor variable
- about / How it works...
- fragment shader
- about / Vertex and fragment shaders
- discarding / Discarding fragments to create a perforated look, Getting ready, How to do it..., How it works...
- framebuffer
- about / Introduction
- framebuffer object / How it works...
- Fresnel equations
- about / The Fresnel equations
- full compatible context / Profiles: Core vs. Compatibility
G
- gamma correction
- using, for improving image quality / Using gamma correction to improve image quality, There's more...
- Gaussian blur filter
- applying / Applying a Gaussian blur filter, How to do it...
- working / How it works...
- GEdgeDistance variable / How it works...
- generic vertex attributes / Sending data to a shader using per-vertex attributes and vertex buffer objects
- geometry shader (GS)
- about / The geometry shader
- geometry shaders(GS)
- about / Introduction
- getUniformLocation function / How it works...
- GetValue function / How it works...
- glActiveTexture / How it works...
- glBeginTransformFeedback function / Creating a particle system using transform feedback
- glBindAttribLocation function / How it works...
- glBindBufferBase function / How it works...
- glBindFramebuffer / How it works...
- glBindTexture / How it works...
- glCreateShader function / How it works...
- glDeleteProgram / Deleting a shader program
- glDeleteShader / Deleting a shader object
- glDrawArrays function / How it works...
- glDrawArraysInstanced function / Creating a particle system using instanced particles
- glDrawElementsInstanced function / Creating a particle system using instanced particles
- GLee library / See also
- glEnableVertexAttribArray / How it works...
- glEndTransformFeedback function / Creating a particle system using transform feedback
- GLEW Library
- using, for OpenGL functionality accessing / Using the GLEW Library to access the latest OpenGL functionality, How it works..., Checking for extension availability at runtime
- downloading / Getting ready
- glGenFramebuffers / How it works...
- glGenTextures / How it works...
- glGenVertexArrays function / How it works...
- glGetActiveAttrib function / How it works...
- glGetActiveUniformName function / There's more...
- glGetAttribLocation / How it works...
- glGetIntegerv function
- about / Determining the GLSL and OpenGL version
- working / How it works..., There's more...
- glGetProgramInfoLog / How it works...
- glGetProgramiv / How it works...
- glGetShaderInfoLog / How it works...
- glGetShaderiv / How it works...
- glGetString function
- about / Determining the GLSL and OpenGL version
- working / How it works..., There's more...
- glGetSubroutineIndex / How it works...
- glLight function
- about / Light attenuation with distance
- glLinkProgram / How it works...
- glm**lookAt function / How it works...
- glm**rotate function / How it works...
- GLM library
- about / Using the GLM library for mathematics
- using, for mathematics / How to do it...
- working / How it works...
- GLM types, using as input to OpenGL / Using the GLM types as input to OpenGL
- glOrtho function / Using the GLM library for mathematics
- glPatchParameter function / How to do it...
- glPointParameter function / Point sprites with the geometry shader
- glPointSize function / Point sprites with the geometry shader
- glPolygonOffset / Rendering back faces only for the shadow map
- glProvokingVertex function
- about / How it works...
- glRotate function / Using the GLM library for mathematics
- glShaderSource function / How it works...
- GLSL
- about / The OpenGL Shading Language
- subroutine / Using subroutines to select shader functionality
- multiple positional lights, shading with / Shading with multiple positional lights, Getting ready, How to do it..., How it works...
- directional light source, shading with / Shading with a directional light source, How to do it..., How it works...
- per-fragment shading, using / Using per-fragment shading for improved realism, How to do it..., How it works..., There's more...
- halfway vector, using / Using the halfway vector for improved performance, How it works...
- spotlight, simulating / Simulating a spotlight, How to do it..., How it works...
- cartoon shading effect, creating / Creating a cartoon shading effect, How to do it..., How it works...
- fog, simulating / Simulating fog, How to do it..., How it works..., There's more...
- 2D texture, applying / Applying a 2D texture, How to do it..., How it works...
- multiple textures, applying / Applying multiple textures, Getting ready, How to do it..., How it works...
- alpha maps, using for discarding pixels / Using alpha maps to discard pixels, How it works...
- normal mapping / Using normal maps
- normal map / Using normal maps
- normal map, using / Using normal maps, How to do it..., How it works...
- reflection, simulating with cube maps / Simulating reflection with cube maps, Getting ready, How to do it..., How it works..., There's more...
- refraction, simulating with cube maps / Simulating refraction with cube maps, How to do it..., How it works...
- image based lighting / Image-based lighting, Getting ready, How it works..., There's more...
- projected texture, applying / Applying a projected texture, Getting ready, How to do it..., How it works...
- texture, rendering to / Rendering to a texture, How to do it..., How it works...
- edge detection filter, applying / Applying an edge detection filter, How to do it..., How it works...
- Gaussian blur filter, applying / Applying a Gaussian blur filter, How to do it..., How it works...
- bloom effect, creating / Creating a "bloom" effect, Getting ready, How to do it..., How it works...
- gamma correction, using / Using gamma correction to improve image quality, There's more...
- multisample anti-aliasing, using / Using multisample anti-aliasing, Getting ready, There's more...
- deferred shading, using / Using deferred shading, How to do it..., How it works..., There's more...
- shadows / Introduction
- noise texture, creating using libnoise / Creating a noise texture using libnoise, Getting ready, There's more...
- seamless noise texture, creating / Creating a seamless noise texture, How to do it..., How it works...
- cloud-like effect, creating / Creating a cloud-like effect, How it works..., There's more...
- wood grain effect, creating / Creating a wood grain effect, How to do it..., How it works..., There's more...
- disintegration effect, creating / Creating a disintegration effect, Getting ready, How to do it...
- paint-spatter effect, creating / Creating a paint-spatter effect, Getting ready, How it works...
- night-vision effect, creating / Creating a night-vision effect, How to do it..., How it works...
- surface, animating with vertex displacement / Animating a surface with vertex displacement, Getting ready, How it works...
- particle fountain, creating / Creating a particle fountain, Getting ready, How to do it..., How it works..., There's more...
- particle system, creating using transform feedback used / Creating a particle system using transform feedback, Getting ready, How to do it..., How it works...
- particle system, creating using instanced particles / Creating a particle system using instanced particles, How to do it..., How it works...
- fire, simulating with particles / Simulating fire with particles, Getting ready, How to do it..., There's more...
- smoke, simulating with particles / Simulating smoke with particles, How to do it..., How it works...
- GLSL functions
- getEyeSpace function / How it works...
- main function / How it works...
- phongModel function / How it works...
- GLSL noise functions
- creating / Introduction
- GLSLProgram class / How it works...
- GLSL Shaders
- about / Introduction
- overview / Introduction
- geometry / Vertex and fragment shaders
- vertex / Vertex and fragment shaders
- tessellation control / Vertex and fragment shaders
- fragment / Vertex and fragment shaders
- old fixed functionality, replicating / Replicating the old fixed functionality
- per-vertex shading, implementing with single point light source / Implementing diffuse, per-vertex shading with a single point light source, Getting ready, How to do it..., How it works...
- diffuse shading, implementing with single point light source / Implementing diffuse, per-vertex shading with a single point light source, Getting ready, How to do it..., How it works...
- ADS shading, implementing / Implementing per-vertex ambient, diffuse, and specular (ADS) shading, How to do it..., How it works...
- functions, using / Using functions in shaders, How to do it..., How it works...
- two-sided shadind, implementing / Implementing two-sided shading, Getting ready, How to do it..., How it works..., There's more...
- flat shading, implementing / Implementing flat shading, How it works...
- glTexImage2D / How it works..., How it works...
- glTexImage2D function / How it works...
- glTexParameterf / How it works...
- glTexParameterfv function / How it works...
- glTransformFeedbackVaryings function / Creating a particle system using transform feedback
- GLuint variable / How to do it...
- gluLookAt function / Using the GLM library for mathematics
- glUniform functions / How it works...
- glUniformMatrix4fv / How it works...
- glUniformSubroutinesuiv function / How it works...
- glUseProgram / How it works..., There's more...
- glVertexAttribDivisor function / Creating a particle system using instanced particles
- glVertexAttribPointer / How it works...
- gl_FrontFacing variable / How it works...
- gl_PointCoord variable / How it works...
- gl_Position variable
- about / How it works...
- gl_TessLevelInner array
- about / The tessellation shaders
- gl_TessLevelOuter array
- about / The tessellation shaders
- GNormal variable / How it works...
- Gouraud shading
- about / Implementing flat shading, Using per-fragment shading for improved realism
- GPGPU / The OpenGL Shading Language
- GPosition variable / How it works...
- GPUs / Introduction
- gradient noise
- about / Introduction
- greaterThan function / How it works...
H
- halfway vector
- using / Using the halfway vector for improved performance, How it works...
- HighThreshold / Getting ready
- homogeneous clip coordinates
- about / Rendering shadows with shadow maps
I
- image based lighting
- about / Image-based lighting, Getting ready, How it works..., There's more...
- instanced attribute / Creating a particle system using instanced particles
- instanced rendering / Creating a particle system using instanced particles
- isFrontFacing function / How it works...
L
- layout qualifiers
- packed qualifier / Using layout qualifiers with uniform blocks
- shared qualifier / Using layout qualifiers with uniform blocks
- row_major / Using layout qualifiers with uniform blocks
- column_major / Using layout qualifiers with uniform blocks
- level-of-detail (LOD)
- implementing / Tessellating based on depth
- about / Tessellating based on depth
- libnoise
- about / Introduction, How it works...
- compiling / Creating a noise texture using libnoise
- downloading / Creating a noise texture using libnoise
- LightDir / How it works...
- LightInfo / How it works...
- LightIntensity variable
- about / How it works...
- LightPosition
- about / How it works...
- LightWoodColor / Getting ready
- LineColor variable / Getting ready, Getting ready
- link function / How it works...
- local coordinate system / Using normal maps
- log function / How it works...
- low-res textures
- using / Using low-res textures
- LowThreshold / Getting ready
- LumThresh variable / Getting ready
M
- main function / How it works..., How it works...
- mathematics
- about / Using the GLM library for mathematics
- MaxDepth variable / Getting ready
- MaxTessLevel variable / Getting ready
- MinDepth variable / Getting ready
- MinTessLevel variable / Getting ready
- mix function / Getting ready, Getting ready
- multi-sample anti-aliasing
- about / Using multisample anti-aliasing
- multiple positional lights
- shading with / Shading with multiple positional lights, Getting ready, How to do it..., How it works...
- multiple textures
- applying / Applying multiple textures, Getting ready, How to do it..., How it works...
- multisample anti-aliasing
- using / Using multisample anti-aliasing, Getting ready, There's more...
N
- night-vision effect
- creating / Creating a night-vision effect, How to do it..., How it works...
- NoiseTex / Getting ready
- noise texture
- creating, libnoise used / Creating a noise texture using libnoise, Getting ready, How to do it..., How it works..., There's more...
- NoiseTex variable / Getting ready
- non-local viewer
- about / Using a non-local viewer
- noperspective qualifier / How it works...
- normal map
- about / Using normal maps
- using / Using normal maps, How to do it..., How it works...
- normal mapping
- about / Using normal maps
- NormalTex variable / Getting ready
- NumSegments variable / Getting ready
- NumStrips variable / Getting ready
O
- octave
- about / Creating a noise texture using libnoise
- OpenGL
- adjacency modes / Drawing silhouette lines using the geometry shader
- OpenGL documentation / How it works...
- OpenGL functionality
- accessing, GLEW Library used / Using the GLEW Library to access the latest OpenGL functionality, How it works..., Checking for extension availability at runtime
- optimization techniques
- about / Optimization techniques
P
- paint-spatter effect
- creating / Creating a paint-spatter effect, Getting ready, How it works...
- PaintColor / Getting ready
- particle fountain
- creating / Creating a particle fountain, Getting ready, How to do it..., How it works..., There's more...
- particle system
- creating, transform feedback used / Creating a particle system using transform feedback, Getting ready, How to do it..., How it works...
- transform feedback results, querying / Querying transform feedback results
- particles, recycling / Recycling particles
- creating, instanced particles used / Creating a particle system using instanced particles, How to do it..., How it works...
- fire, simulating with particles / Simulating fire with particles, Getting ready, How to do it..., There's more...
- smoke simulating with particles / Simulating smoke with particles, How to do it..., How it works...
- pass4 function / How it works...
- patch primitive
- about / The tessellation shaders
- PctExtend variable / Getting ready
- per-fragment shading
- using / Using per-fragment shading for improved realism, How to do it..., How it works..., There's more...
- per-vertex lighting
- about / Per-vertex vs. Per-fragment
- per-vertex shading
- implementing, with single point light source / Implementing diffuse, per-vertex shading with a single point light source, Getting ready, How to do it..., How it works...
- Percentage-Closer Filtering (PCF)
- about / Anti-aliasing shadow edges with PCF
- Perlin noise
- about / Introduction
- using / Introduction
- Perlin noise generator
- about / Creating a noise texture using libnoise
- perspective division
- about / Rendering shadows with shadow maps
- phongModel / How it works...
- phongModel function / How it works..., How it works..., How it works...
- Phong reflection model
- about / Implementing per-vertex ambient, diffuse, and specular (ADS) shading
- Phong shading
- about / Using per-fragment shading for improved realism
- point sprites
- about / Point sprites with the geometry shader
- point sprites, withg geometry shader
- about / Point sprites with the geometry shader, How to do it..., How it works..., There's more...
- PositionTex variable / Getting ready
- printActiveAttribs function / How it works...
- printActiveUniforms function / How it works...
- programHandle variable / Getting ready
- projected texture
- applying / Applying a projected texture, Getting ready, How to do it..., How it works...
- projective texture mapping / Applying a projected texture
- provoking vertex
- about / How it works...
Q
- QImage class / How it works...
- QImage object / How it works...
R
- randFloat function / Getting ready
- random sampling
- using, for creating soft shadow edges / Creating soft shadow edges with random sampling , How to do it...
- about / Creating soft shadow edges with random sampling
- realism
- improving, with ambient occlusion (AO) / Improving realism with prebaked ambient occlusion, How it works...
- ReflectDir / How it works...
- ReflectFactor / How it works...
- reflect function
- about / How it works...
- reflection
- simulating, with cube maps / Simulating reflection with cube maps, Getting ready, How to do it..., How it works..., There's more...
- refraction
- simulating, with cube maps / Simulating refraction with cube maps, How to do it..., How it works...
- about / Simulating refraction with cube maps
- render function / How it works...
- renderTex variable / Getting ready
- Runge-Kutta integration / Creating a particle system using transform feedback
S
- Screen-Space Ambient Occlusion (SSAO)
- about / Screen-space ambient occlusion
- sDotN
- about / How it works...
- seamless noise texture
- creating / Creating a seamless noise texture, How to do it..., How it works...
- SetFrequency function / How it works...
- SetOctaveCount function / How it works...
- SetPersistence function / There's more...
- setUniform function / How it works...
- shadeModelType, subroutine type / How it works...
- shader
- compiling / Compiling a shader, Getting ready
- compiling, diagrammatic representation / Compiling a shader
- compiling, steps / How to do it...
- working / How it works...
- shader object, deleting / Deleting a shader object
- shader functionality
- selecting, subroutines used / Using subroutines to select shader functionality, Getting ready, How to do it..., How it works...
- shader pipeline
- simplified view / The shader pipeline extended
- shader program
- about / The OpenGL Shading Language
- models, in NVIDIA GeForce 400 series cards / The OpenGL Shading Language
- linking / Linking a shader program, Getting ready
- linking, steps / How to do it...
- working / How it works...
- deleting / Deleting a shader program
- C++ class, building / Building a C++ shader program class
- shaders
- about / Introduction
- shadeWithShadow function / How it works...
- shadow
- aliasing / Aliasing
- shadow edges
- antialiasing, PCF used / Anti-aliasing shadow edges with PCF, How it works...
- shadow map
- about / Rendering shadows with shadow maps
- shadow mapping algorithm
- about / Introduction
- shadows
- about / Introduction
- rendering, with shadow maps / Rendering shadows with shadow maps, Getting ready, How to do it...
- silhouette lines
- drawing, geometry shader used / Drawing silhouette lines using the geometry shader, How to do it..., How it works..., There's more...
- simply shaders / The OpenGL Shading Language
- SkyColor / Getting ready
- smoke
- simulating, with particles / Simulating smoke with particles, How to do it..., How it works...
- smoothstep function / Getting ready, Drawing a wireframe on top of a shaded mesh, How it works...
- Snell's law
- about / Simulating refraction with cube maps
- Sobel operator
- about / Applying an edge detection filter, There's more...
- soft shadow edges
- creating, with random sampling / Creating soft shadow edges with random sampling , How to do it..., How it works...
- specular component
- about / Implementing per-vertex ambient, diffuse, and specular (ADS) shading
- specular highlights
- about / Implementing per-vertex ambient, diffuse, and specular (ADS) shading
- specular irradiance environment map / Image-based lighting
- spotlight
- simulating / Simulating a spotlight, How to do it..., How it works...
- about / Simulating a spotlight
- subroutine
- using, to select shader functionality / Using subroutines to select shader functionality, Getting ready, How to do it..., How it works...
- about / Using subroutines to select shader functionality
- working / How it works...
- surface
- animating, with vertex displacement / Animating a surface with vertex displacement, Getting ready, How it works...
T
- tangent space / Using normal maps
- tangent vector / Using normal maps
- TENormal variable / Getting ready
- TEPosition variable / Getting ready
- tessellation, based on depth
- about / Tessellating based on depth, Getting ready
- working / How it works..., There's more...
- tessellation control shader (TCS)
- about / The shader pipeline extended
- tessellation evaluation shader (TES)
- about / The shader pipeline extended
- tessellation primitive generator (TPG)
- about / The tessellation shaders
- tessellation shaders
- about / Introduction, The tessellation shaders
- texColor / How it works...
- TexCoord variable / How it works..., How to do it...
- texel / Image-based lighting
- texels / Anti-aliasing shadow edges with PCF
- texture
- rendering to / Rendering to a texture, How to do it..., How it works...
- textureProj function / How it works..., Anti-aliasing shadow edges with PCF
- textureProjOffset function / Anti-aliasing shadow edges with PCF
- Threshold / Getting ready
- toObjectLocal / How it works...
- toon shading
- about / Creating a cartoon shading effect
- transform feedback
- about / Introduction
- Transp variable / How it works...
- triangle altitude / Drawing a wireframe on top of a shaded mesh
- two-sided rendering
- using, for debugging / Using two-sided rendering for debugging
- two-sided shading
- implementing / Implementing two-sided shading, Getting ready, How to do it..., How it works..., There's more...
U
- uniform blocks
- need for / Using uniform blocks and uniform buffer objects
- about / Using uniform blocks and uniform buffer objects
- working / How it works...
- data, modifying / There's more...
- instance name, using / Using an instance name with a uniform block
- layout qualifiers, using / Using layout qualifiers with uniform blocks
- uniform buffer objects
- using / Getting ready, How to do it...
- working / How it works...
- uniform variables
- about / Sending data to a shader using uniform variables
- vertex shader, using / Getting ready
- RotationMatrix, using / Getting ready
- data, sending to shader / How to do it...
- working / How it works...
- member structure / There's more...
- list / Getting ready
- information, printing / How to do it..., How it works...
- update function / How it works...
- use function / How it works...
- using namespace glm;, command link / There's more...
V
- Verlet integration / Creating a particle system using transform feedback
- vertex array object (VAO) / How it works...
- vertex attribute indices
- getting / Getting a list of active vertex input attributes and indices, How to do it...
- working / How it works...
- vertex attributes
- about / Sending data to a shader using uniform variables
- vertex buffer objects (VBOs)
- rendering with / How it works...
- VertexColor attribute / Sending data to a shader using per-vertex attributes and vertex buffer objects
- vertex input attributes list
- getting / Getting a list of active vertex input attributes and indices, How to do it...
- VertexPosition attribute / Getting ready
- vertex shader
- about / Sending data to a shader using per-vertex attributes and vertex buffer objects, Vertex and fragment shaders
- components / Sending data to a shader using per-vertex attributes and vertex buffer objects
- per-vertex input attributes / Sending data to a shader using per-vertex attributes and vertex buffer objects
- vertex buffer objects, using / Sending data to a shader using per-vertex attributes and vertex buffer objects
- (basic.vert) / Getting ready
- VertexPosition attribute / Getting ready
- VertexColor attribute / Getting ready
- fragment shader (basic.frag) / Getting ready
- buffer objects, setting up / How to do it...
- triangle, rendering / How to do it...
- vertex attributes, working / How it works...
- layout qualifiers, using / Using layout qualifiers
- element arrays, using / Using element arrays
- interleaved arrays / Interleaved arrays
- VertexTexCoord / How it works...
- ViewDir / How it works...
W
- winding / How it works...
- wireframe
- drawing, on top of shaded mesh / Drawing a wireframe on top of a shaded mesh, How to do it..., How it works...
- wood grain effect
- creating / Creating a wood grain effect, How to do it..., How it works..., There's more...