Previous | Next --- Slide 17 of 79
Back to Lecture Thumbnails
aeu

When rendering game graphics, GPUs do anti-aliasing, blending of colors and all other sorts of things to make things not look jagged and blocky. I presume that to do anti-aliasing and those blending of visual elements types of effects, I would presume that we would first need to place fragments to the world and calculate those fragments' colors.

  1. At which part of this pipeline do we do those calculations and effects?
  2. Is there a feedback loop of some sorts that feeds information from the Fragment processing back to the pipeline?
kayvonf

@aeu: A reasonable explanation of one form of edge anti-aliasing via supersampling is in this lecture:

http://15462.courses.cs.cmu.edu/fall2015/lecture/triangle

aeu

@kayvonf Thank you for the pointer. I see how anti-aliasing is done. After calculating the 50% areas of the triangle (as in the lecture you have pointed to), does the GPU collect overlapping areas of other triangles and calculates the overall color for that particular pixel? When put like this, it seemed to me like it's approaching the overlapping circles of the assignment 2.

kayvonf

@aeu: keep reading the lecture... you stopped too soon!

aeu

@kayvonf I did look over the entire lecture but I suppose I missed it. Is it the tiling approach at slide 67 that allows us to do that?

kayvonf

Oh, I see what you mean. No magic. The GPU will store the supersampled buffer, not the resolved single sample per pixel result. By keeping the closest fragment per sample, processing all triangles and then resolving at the very end, you'll get an estimate of the proper anti-aliased result. This should be clear in slides 7 through 23 here:

http://15462.courses.cs.cmu.edu/fall2015/lecture/pipeline

aeu

@kayvonf Ah, perfect. That made it more clear. Thank you.