Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is a fragment in a fragment shader? Wikipedia says that:

In general, a fragment can be thought of as the data needed to shade the pixel, plus the data needed to test whether the fragment survives to become a pixel (depth, alpha, stencil, scissor, window ID, etc.)

So is it textures, vertices whatever.

Sorry if I'm asking something rather trivial.


share|improve this question
up vote 21 down vote accepted

In computer graphics, a fragment is the data necessary to generate a single pixel's worth of a drawing primitive in the frame buffer.

This data may include, but is not limited to:

  • raster position
  • depth
  • interpolated attributes (color, texture coordinates, etc.)
  • stencil
  • alpha
  • window ID

As a scene is drawn, drawing primitives are rasterized into fragments which are textured and combined with the existing frame buffer. How a fragment is combined with the data already in the frame buffer depends on various settings. In a typical case, a fragment may be discarded if it is farther away than the pixel that is already at that location (according to the depth buffer). If it is nearer than the existing pixel, it may replace what is already there, or, if alpha blending is in use, the pixel's color may be replaced with a mixture of the fragment's color and the pixel's existing color, as in the case of drawing a translucent object.

In general, a fragment can be thought of as the data needed to shade the pixel, plus the data needed to test whether the fragment survives to become a pixel (depth, alpha, stencil, scissor, window ID, etc.)

From wikipedia

share|improve this answer
And it's been all there... Thanks! – Albus Dumbledore Feb 24 '11 at 19:09

A fragment is simply the data that is given from the contribution of the 3 vertices around the pixel you're shading.

In the Vertex Shader, you output some data per vertex (color, texture coords, ...). Then in the Fragment Shader, for each pixel you get a weighted average of those values, that you then use to build the final color(s) of the pixel.

share|improve this answer
The pixel and all the other data on invisible buffers as mentioned above. – StarWeaver Mar 24 at 22:34

In the same way a vertex shader acts on vertices, a fragment (or pixel) shader will just act on pixels.

share|improve this answer
Sorry, but this is not correct without mentioning word "rastarisation" and interpolations. – Notabene Feb 24 '11 at 20:13
Even worse it says pixels - which are distinct from fragments, especially when multisampling AA render targets are involved, coverage to alpha, or any of number of other situations - I would down vote if I had the rep – jheriko Jul 16 '11 at 2:46

What is a fragment in a fragment shader

The only precise thing that can be said is defining the inputs and outputs of the fragment shader.

Since that has been done / is too broad, I will focus on the intuitive visual side of it.

A fragment is the raster output

The OpenGL wiki says:

A Fragment is a collection of values produced by the Rasterizer.

Which makes sense since the fragment shader comes after the rasterizer which produces its input.

And this is the visual representation of the rasterizer output:

Image source.

The input of the rasterizer is a 3D triangle and a point of view, and the output, is a set of pixels which might appear on the screen (if they don't get blocked by others).

Each of those those little squares (which are encoded as a single plixel), is a piece of the triangle, and fragment is just another name for piece.

share|improve this answer
Downvoters, please explain so I can learn and improve content ;-) – Ciro Santilli 巴拿馬文件 六四事件 法轮功 Mar 24 at 21:57
The information in the top answer mixed with your visual explinations would be best. – StarWeaver Mar 24 at 22:36

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.