Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
OpenGL 4.0 Shading Language Cookbook

You're reading from   OpenGL 4.0 Shading Language Cookbook With over 60 recipes, this Cookbook will teach you both the elementary and finer points of the OpenGL Shading Language, and get you familiar with the specific features of GLSL 4.0. A totally practical, hands-on guide.

Arrow left icon
Product type Paperback
Published in Jul 2011
Publisher Packt
ISBN-13 9781849514767
Length 340 pages
Edition 1st Edition
Tools
Arrow right icon
Toc

Table of Contents (16) Chapters Close

OpenGL 4.0 Shading Language Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
1. Getting Started with GLSL 4.0 2. The Basics of GLSL Shaders FREE CHAPTER 3. Lighting, Shading Effects, and Optimizations 4. Using Textures 5. Image Processing and Screen Space Techniques 6. Using Geometry and Tessellation Shaders 7. Shadows 8. Using Noise in Shaders 9. Animation and Particles Index

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...
    / How it works..., 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...
    / How it works...
  • 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...
lock icon The rest of the chapter is locked
arrow left Previous Section
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €18.99/month. Cancel anytime
Banner background image