Fragment shader 2026-11-05
A fragment shader is a programmable stage of the rasterization pipeline that computes values for a fragment, such as its output color and optionally its depth. It receives interpolated data from rasterized primitives and can use texture mapping to sample an image. A fragment is a candidate contribution; later tests and blending determine what reaches the final digital image.[ref]
The OpenGL Graphics System Version 4.6 Core Profile by Khronos Group. Chapter 15, Fragment Shaders; Chapter 17, per-fragment operations
For example, a shader can multiply a surface's interpolated color by a sampled image to decorate a triangle. A fragment hidden behind a nearer opaque surface may fail the depth buffer test. With multiple samples per pixel, fragments, shader invocations and final pixels need not correspond one to one.
Texture mapping 2026-11-05
Texture mapping associates surface locations with values sampled from an image or other texture data. In a common two-dimensional case, each vertex carries coordinates identifying a location in the texture. Rasterization interpolates the coordinates, and a fragment shader uses them to obtain a color or another surface parameter.[ref]
The OpenGL Graphics System Version 4.6 Core Profile by Khronos Group. Chapter 8, Textures; Chapter 15, fragment-shader inputs
For example, a square wall can use , , and at its corners so a rectangular image covers it once. Repeating coordinates from zero to four can tile the same image when the wrapping mode allows repetition. The mapping is separate from sampling: nearest-sample selection and interpolation can give visibly different results from identical coordinates.
When a tilted surface is viewed through perspective projection, equal distances on the surface need not occupy equal distances on screen. Correct interpolation must account for that projection. A texture also supplies data rather than an automatic physical material model: a stored color and the light reflected toward the camera are different quantities.