Antialiasing - PowerPoint PPT Presentation

About This Presentation
Title:

Antialiasing

Description:

CAP4730: Computational Structures in Computer Graphics Antialiasing Outline What is antialiasing? How do we see the affects of antialiasing? What can we do about it? – PowerPoint PPT presentation

Number of Views:66
Avg rating:3.0/5.0
Slides: 39
Provided by: lok
Learn more at: https://www.cise.ufl.edu
Category:

less

Transcript and Presenter's Notes

Title: Antialiasing


1
Antialiasing
CAP4730 Computational Structures in Computer
Graphics
2
Outline
  • What is antialiasing?
  • How do we see the affects of antialiasing?
  • What can we do about it?
  • Math behind antialiasing
  • Antialiasing in modern day graphics cards
  • Advanced stuff on AA

3
Lets Revisit a pixel
  • A pixel is which of these things (theoretically)?
  • point
  • circle/disk
  • square/rectangle
  • has area
  • has a location
  • sample

4
White Picket Fence
  • What happens when we back away?
  • 1 with a camera /eye
  • 2 with OpenGL
  • 3 with ray-tracing
  • Whats the cause of the difference?
  • A pixel could be too BIG!

5
A New Thought about Images
  • Images are really a 2D function
  • Heres an image plotted as a height field
  • Now we store this image as an array of points.
    What does that mean?

6
We Sample the Image Function
  • Here is the sampling function. It is called the
    delta function

7
Thus we are sampling a continuous image function
  • We call these samples at this regular grid of
    points, pixels.
  • Pixels are a sampling of the function that
    describes the image.
  • We store these pixels into memory as an array of
    colors.
  • How densely should we sample?
  • What would govern this?

8
Samples
  • Continuous - function with values at any input.
    Most things in the world. Ex. sine and cosine
  • Discrete - function with values only at specific
    inputs. Computers are discrete.
  • What is a 1D example? a 2D example?
  • To convert from a continuous function to a
    discrete one, we discretize or sample
  • To convert form a continuous variable to a
    discrete one, we quantize
  • When we render an image (which is a continuous
    function, why?), we sample and quantize

9
Lets get grounded with an example
10
Similar examples?
  • High frequency information, low sampling.
  • Examples?
  • Train comes every 2 hours. You go every 215.
    How long do you wait?
  • Audio. 44/48 Khz signal. 11 Khz Sample
  • What is the result?
  • Images
  • 8 MP vs 4 MP vs 640 x 480

11
A quick footnote into frequency analysis
  • A way to understand the sampling question is to
    convert the function into a different space or
    domain.
  • We use the Fourier Transform to convert the
    function (in our case the image) into the
    frequency domain.

12
What does sampling mean?
  • What happens if we dont sample enough?

13
Aliasing
  • If we sample at too low a rate, the high
    frequencies in the image appear as lower
    frequencies.
  • How do we fix it?
  • Increase sampling
  • Remove high frequencies

14
Aliasing Manifestations
  • Pixels approximating a signal
  • Pixels arent small enough and MISS information

15
Aliasing
  • Aliasing manifests itself as jaggies in
    graphics. Thus we dont have enough pixels to
    accurately represent the underlying function.
    Check out what happens when we increase our
    sampling.

16
Aliasing
  • Aliasing also manifests itself in repeating
    patterns
  • Car wheels
  • Big picture
  • Continuous signal
  • Discrete sampling (pixels, frames, etc.)
  • Aliasing represents misrepresentation (hence the
    name) involved
  • How do we fix it?

17
Fixing Aliasing
  • Increase Resolution
  • Whats wrong with this approach?
  • Filtering is another possibility
  • We want to remove the high frequency areas
  • How would we do that?
  • Lets re-examine what a pixel is in reality.

18
Pixels are points
  • But when we display the points, what happens?
  • Each pixel is actually a blob on the CRT. This
    blob has energy that falls off close to a
    Gaussian.
  • Thus the CRT has a built in blurring system.
    Think about how this works with resolution of
    your monitor.

19
Lets recall
(4,2)
2
1
(0,0)
(4,0)
0
2
1
0
3
4
20
Point Sampling
  • Thus for each pixel, we are sampling a specific
    point. In the frequency domain we get
  • To convert from frequency to spatial domains, we
    do an integration.
  • To get around point sampling we should come up
    with another sampling technique

21
BiLinear Sampling
  • What we will do is use a bilinear filter.
  • This reduces the high frequencies (which cause
    aliasing)
  • Interpolate between samples.

22
BiLinear Sampling
23
What are we doing?
(4,2)
2
1
(0,0)
(4,0)
0
2
1
0
3
4
24
Blurring
  • Remember, blurring removes high frequencies,
    which cause aliasing.
  • We can do other filtering besides bilinear, and
    we would like to to avoid artifacts.
  • http//graphics.lcs.mit.edu/classes/6.837/F98/Lect
    ure11/Slide27.html
  • How would we blur using our traditional graphics
    pipeline?

25
Two ways to Antialias
  • Increase resolution (increase sampling)
  • or
  • Supersampling

26
Increase Rendering Resolution
  • Render the image at a higher resolution and
    downsample.
  • Really, you are letting your eye do some
    filtering for you.

27
Supersampling
  • For each pixel, we would like to figure out what
    percentage is covered.

1
(0,0)
(4,0)
0
2
1
0
3
4
28
Supersampling
  • For each pixel, sample at multiple points.
  • What is the distribution of these points?
  • Uniform Grid
  • Random
  • Psuedo-random
  • How many?
  • How far away from center should I try?
  • How would I program this?

29
Line Antialiasing
30
Full Screen Antialiasing
  • Another way to do the supersampling is to do full
    screen antialiasing
  • We want to draw the image with several camera
    jitter positions and average the answers
  • Can you see why this would give us near similar
    answers?
  • Thats what they mean by 2-tap, 4-tap
    antialiasing
  • What does this require?
  • Memory-wise
  • Computation-wise
  • How would you implement this?

31
Full Screen Antialiasing Example (Exaggerated)
32
Antialiasing in OpenGL
  • To do this in OpenGL, use the Accumulation buffer
  • glAccum(GL_ACCUM, FRAMES_TO_AVERAGE)
  • glAccum(GL_LOAD, 1)
  • glAccum(GL_RETURN)
  • VERY SLOW! What does this mean memory wise?
  • Other approahces graphics cards, quincux

33
Aliasing Examples
  • From http//www.os2ezine.com/v1n7/colorwks.html

34
(No Transcript)
35
Hardware Antialiasing
  • Dont just generate 1 answer to write to a pixel
  • nVidia Quincunx AA (2000 GeForce3)
  • Result

36
Results from http//www.techreport.com/etc/2005q3/
sli-aa/index.x?pg4
37
Difference
38
OpenGL Antialiasing
  • Points and Lines
  • glEnable(GL_POINT_SMOOTH)
  • glEnable(GL_LINE_SMOOTH)
  • Triangles
  • glEnable(GL_POLYGON_SMOOTH)
  • Provides blend alpha at edges of a triangle
Write a Comment
User Comments (0)
About PowerShow.com