• Aliasing: an effect that reduces the quality of images that are under-sampled.
  • Ambient lighting: lighting that is applied equally to all surfaces regardless of normal.
  • Antialiasing: a process for reducing aliasing.
  • Array buffer: a binding point that is used to specify a buffer that contains vertex attributes.
  • Attribute: a type of variable that is used to pass vertex-specific data to vertex shaders.



  • Camera matrix: a matrix that represents the transformation of the camera.
  • Clip space: a coordinate system that represents the rendering context in the range [1,1][-1,1].
  • Clipped: not rasterized due to being outside of clip space.
  • Color buffer: a region of a framebuffer that holds color data.
  • Color space: a coordinate system that organizes the values of colors in the range [0,1][0,1].
  • Cubemap: a type of texture that consists of six faces.


  • Depth buffer: a buffer that stores the depth of fragments.
  • Depth testing: the process by which fragments are only rasterized if they pass a test based on the depth buffer.
  • Diffuse lighting: directional lighting.
  • Directional lighting: lighting that comes uniformly from one direction.
  • Dot limit: the cosine of a limit.
  • Drawing buffer: the color buffer that contains the fragments that are rasterized to the rendering context.




  • GLSL: the OpenGL ES Shading Language; a strictly-typed language that runs on the GPU.
  • GLSL ES 3.00: the third version of GLSL; the version of GLSL that WebGL2 shaders use.


  • Half vector: a vector that sits halfway between two other vectors.



  • Limit: the angle from the direction of a cone to its sides.
  • Location: a pointer to a variable in a shader program.


  • Mip: a smaller version of a texture that is used to rasterize the texture at different sizes.
  • Mipmap: a collection of mips.
  • Multisampling: a form of antialiasing.


  • Normal: a unit vector that represents the direction that a surface is facing.
  • Normal matrix: the inverse transpose of the rotation portion of a transformation matrix.


  • OpenGL: the rasterization engine that WebGL is based on.
  • OpenGL ES 3.0: the third version of OpenGL; the version of OpenGL that WebGL2 is based on.
  • Orthographic projection: a projection that uses parallel lines to project its shape.


  • Peter panning: an effect resulting from adding a bias to fragment depth that causes shadows to appear slightly disjointed from their caster.
  • Perspective projection: a projection that scales its shape based on its distance from the camera.
  • Pixel: a discrete unit used to represent visual information.
  • Point lighting: lighting that extends in every direction from a point.
  • Polygon culling: the process by which only front-facing polygons are rasterized.
  • Primitive: points, lines, and triangles; shapes that are understood by computers.
  • Projection: a linear transformation from a vector space to itself.
  • Projection mapping: the process of projecting an image.
  • Projection matrix: a transformation matrix that applies a projection.



  • Sampler: a uniform that is used to sample a texture.
  • Scene graph: a general data structure that arranges the local representation of a graphical scene.
  • Screen space: a coordinate system that represents the rendering context in the ranges [0,x][0,x] and [0,y][0,y] for horizontal and vertical coordinates, respectively, where xx is the width of the rendering context in pixels and yy is the height of the rendering context in pixels.
  • Shader: a function that runs on the GPU.
  • Shader program: a pair of one vertex shader and one fragment shader that are linked together and used to rasterize primitives.
  • Shadow acne: a visual artifact resulting from the limited resolution of a shadow map.
  • Shadow map: a texture that contains depth data from the point of view of a light source.
  • Skybox: a cubemap that represents the background of a scene.
  • Specular lighting: lighting that results from light reflecting off of a shiny surface.
  • Spot lighting: lighting that extends in a cone.
  • Swizzling: the process of accessing the components of a vector using a specific shorthand syntax.


  • Texel: a texture element.
  • Texture: an array of data that can be randomly accessed.
  • Texture complete: the property of a texture that allows it to be rasterized.
  • Texture matrix: a modified view projection matrix that also converts from clip space to texture space.
  • Texture space: a coordinate system that represents a texture in the range [0,1][0,1] from left to right, first pixel to last pixel.
  • Texture unit: a value that represents a texture and is passed to a shader program in its stead.
  • Tightly-packed: describes data in which the number of bytes from the start of one element to the next is the same as the byte size of the element.
  • Transformation matrix: a matrix that represents transformations.


  • Uniform: a type of variable that is uniform for each vertex.



  • WebGL: a rasterization engine that is designed to work in the browser.
  • WebGL2: the second version of WebGL.
  • WebGL API: the interface that allows JavaScript to interact with WebGL.
  • World matrix: a transformation matrix that represents the transformation of a node in a scene graph relative to the origin.
  • World view projection matrix: a matrix that transforms vertices to appear from the point of view of a camera.