Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

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.

Thanks!

share|improve this question

3 Answers 3

up vote 10 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

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

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

Your Answer

 
discard

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.