C Glossary#

Vertex#

A point where two or more lines intersect. Polygon shapes have the same number of vertices as sides, e.g., a triangle has three vertices.

Array#

A linear data structure where elements are arranged sequentially.

Buffer#

A region of memory used to store data temporarily whilst it is transferred from one place to another.

Vertex Array Object (VAO)#

A container object for storing any data and attributes related to a vertex, e.g., co-ordinates, texture co-ordinates, normal vectors etc.

Vertex Buffer Object (VBO)#

The buffer where the values of the vertex attributes are stored, e.g., \(x\), \(y\) and \(z\) co-ordinates of the vertices.

Graphics Processing Unit#

The hardware used by a computer to output graphical information to the display.

Fragment#

A pixel or collection of pixels.

Shader#

A program that is performed on the GPU that determines how fragments as displayed on the screen.

Vertex shader#

A shader program that is used to transform the current vertex to the screen space.

Fragment shader#

A shader program that is used to calculate the colour of the fragment.

Uniform#

A global shader variable that remains constant for all vertices and fragments.

RGB#

A colour model where the colour is defined by levels of red, green and blue.

RGBA#

A colour model where colours are defined by levels of red, green and blue in addition to an opacity value Alpha.

Texture#

A 2D image that is mapped onto a polygon in the screen space.

Textel#

An individual pixel in a texture.

Texture co-ordinates#

The co-ordinates of a pixel (textel) in the texture.

Texture wrapping#

Controls how textures are repeated across a surface of a polygon.

Texture filtering#

Controls how the colour of a fragment is obtained from the texture.

Mipmap#

A duplicate of a texture and successively smaller resolution.

Vector (math)#

An object that has length and direction.

Matrix#

A rectangular array of elements, e.g., numbers.

Transformation#

The process of changing an object, e.g., changing its position, orientation, size etc.

Origin#

A point in a space with all zero co-ordinates.

Normalized Device Co-ordinates (NDC)#

A 3D right-handed co-ordinate system used by OpenGL where the camera is assumed to be at the origin pointing down the \(z\)-axis.

Translation#

Moving a point or set of points in a space by the same vector.

Scaling#

Changing the distance between a point or set of points from the origin.

Rotation#

Changing the orientation of a point or set of points.

Composite transformations#

The combination of a sequence of transformations.

Unit cube#

A cube with sides of length 2 parallel to the co-ordinate axes where the vertex co-ordinates are combinations of \(-1\) and \(1\).

Model space#

The space in which an individual 3D model is defined (also known as object space).

World space#

The space which contains the objects that make up the virtual world.

View space#

A transformed world space such that the camera is at the origin pointing down the \(z\)-axis.

Screen space#

A transformed view space that represents what is to be displayed on the screen.

Model matrix#

A transformation matrix used to transform from the model space to the screen space.

View matrix#

A transformation matrix used to transform from the world space to the view space.

Projection matrix#

A transformation matrix used to project the view space onto the screen space.

Z buffer#

A buffer containing the \(z\) co-cordinate of the nearest surface to the viewer (also known as a depth buffer).

Depth test#

A test applied to each fragment where only fragments that are closer than those currently stored in the Z buffer are computed by the shaders. Used to remove hidden surfaces.

Orthographic projection#

Transformation from the view space to the screen space where the \(z\) co-ordinate is ignored.

Perspective projection#

Transformation from the view space to the screen space which accounts for the distance of objects from the camera.

Field of View (FOV)#

The angle between the top and bottom edges of the screen space.

Aspect#

The width-to-height aspect ratio of the screen.

Near projection plane#

A plane parallel to the \(x\) and \(y\) axes that defines the nearest points to the camera shown in the screen space.

Far projection plane#

A plane parallel to the \(x\) and \(y\) axes that defines the furthest points to the camera shown in the screen space.

Pitch, roll and yaw#

Euler angles used for the rotations in the \(x\), \(y\) and \(z\) axes respectively.

Back face culling#

The removal of any surface whose normal vector is pointing away from the camera (known as back facing).

Local illumination model#

A lighting model where the colour of a surface is only determined by light emanating directly from light sources (also known as direct illumination).

Global illumination model#

A lighting model where the colour of a surface is determined by light emanating from light sources and that reflected off other surface in the scene (also known as indirect illumination).

Phong’s lighting model#

A local illumination model where the colour of a fragment is determined by summing ambient, diffuse and specular lighting models.

Ambient reflection#

A simplified model of the light reflected off of all objects in the scene.

Diffuse reflection#

A reflection model for light reflecting off rough surfaces.

Specular reflection#

A reflection model for light reflecting off smooth surfaces.

Attenuation#

The loss of light intensity over distance.

Normal map#

A texture map containing information for the normal vectors across a surface.

Tangent space#

A 3D space defined using orthogonal tangent, bitangent and normal vectors.

Tangent vector#

A vector pointing along a surface.

Bitangent vector#

A vector pointing along a surface that is orthogonal to the tangent vector.

Normal vector#

A vector pointing perpendicularly away from a surface.

Orthogonal#

At right angles to \(\ldots\)

TBN matrix#

The transformation matrix used to transform to the tangent space.

Specular map#

A texture map containing the levels or specular reflection across a surface.

Quaternion#

A 4D object consisting of a real part and three imaginary parts.

SLERP#

Spherical Linear intERPolation used to interpolated between points on a sphere.