Aliasing & Antialiasing

Slides:



Advertisements
Similar presentations
Sampling, Aliasing.
Advertisements

Sampling and Reconstruction
Technische Universität München Fakultät für Informatik Computer Graphics SS 2014 Sampling Rüdiger Westermann Lehrstuhl für Computer Graphik und Visualisierung.
David Luebke 1 4/28/2015 Aliasing & Antialiasing.
Computer Graphics Viewing, Rendering, Antialiasing گرد آوري و تاليف: دكتر احمد رضا نقش نيل چي دانشگاه اصفهان گروه مهندسي كامپيوتر.
David Luebke1/19/99 CS 551/651: Antialiasing David Luebke
CS 551 / CS 645 Antialiasing. What is a pixel? A pixel is not… –A box –A disk –A teeny tiny little light A pixel is a point –It has no dimension –It occupies.
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 3: Sampling and Reconstruction Ravi Ramamoorthi Some slides.
Sampling, Aliasing, & Mipmaps
CSCE 641 Computer Graphics: Image Sampling and Reconstruction Jinxiang Chai.
General Functions A non-periodic function can be represented as a sum of sin’s and cos’s of (possibly) all frequencies: F(  ) is the spectrum of the function.
CSCE 641 Computer Graphics: Image Sampling and Reconstruction Jinxiang Chai.
Immagini e filtri lineari. Image Filtering Modifying the pixels in an image based on some function of a local neighborhood of the pixels
Advanced Computer Graphics (Spring 2006) COMS 4162, Lecture 3: Sampling and Reconstruction Ravi Ramamoorthi
CSCE 641 Computer Graphics: Fourier Transform Jinxiang Chai.
CS5520 Image-Based Rendering © Chun-Fa Chang, Spring 2003 Sampling Theorem & Antialiasing April 15, 2003.
University of British Columbia CPSC 414 Computer Graphics © Tamara Munzner 1 Sampling Week 7, Fri 17 Oct 2003 p1 demos sampling.
CPSC 641 Computer Graphics: Fourier Transform Jinxiang Chai.
Aliasing and Anti-Aliasing Copyright Zachary Wartell, University of North Carolina at Charlotte, All Rights Reserved Revision: 10/24/2007 3:38:00 AM ©Zachary.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 3: Sampling and Reconstruction Ravi Ramamoorthi
Computational Photography: Fourier Transform Jinxiang Chai.
CIS 681 Distributed Ray Tracing. CIS 681 Anti-Aliasing Graphics as signal processing –Scene description: continuous signal –Sample –digital representation.
02/12/02 (c) 2002 University of Wisconsin, CS 559 Filters A filter is something that attenuates or enhances particular frequencies Easiest to visualize.
CSC418 Computer Graphics n Aliasing n Texture mapping.
Sampling and Antialiasing CMSC 491/635. Abstract Vector Spaces Addition –C = A + B = B + A –(A + B) + C = A + (B + C) –given A, B, A + X = B for only.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 3 Ravi Ramamoorthi
Filtering theory: Battling Aliasing with Antialiasing Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology.
CS 431/636 Advanced Rendering Techniques
© Chun-Fa Chang Sampling Theorem & Antialiasing. © Chun-Fa Chang Motivations “ My ray traced images have a lot more pixels than the TV screen. Why do.
Antialiasing CptS 548 Advanced Computer Graphics John C. Hart.
Attributes of Graphics Primitives Sang Il Park Sejong University.
David Luebke 1 9/4/2015 CS 551/651: Advanced Computer Graphics Antialiasing Continued: Prefiltering and Supersampling.
Antialiasing CAP4730: Computational Structures in Computer Graphics.
10/26/04© University of Wisconsin, CS559 Fall 2004 Last Time Drawing lines Polygon fill rules Midterm Oct 28.
Filtering Robert Lin April 29, Outline Why filter? Filtering for Graphics Sampling and Reconstruction Convolution The Fourier Transform Overview.
Multimedia Data Introduction to Image Processing Dr Sandra I. Woolley Electronic, Electrical.
CS 450: COMPUTER GRAPHICS ANTIALIASING SPRING 2015 DR. MICHAEL J. REALE.
Week 6 - Wednesday.  What did we talk about last time?  Light  Material  Sensors.
09/19/2002 (C) University of Wisconsin 2002, CS 559 Last Time Color Quantization Dithering.
Image Processing Basics. What are images? An image is a 2-d rectilinear array of pixels.
Digital Image Processing Lecture 10: Image Restoration March 28, 2005 Prof. Charlene Tsai.
CMSC 635 Sampling and Antialiasing. Aliasing in images.
Digital Image Processing Lecture 10: Image Restoration
David Luebke 1 12/2/2015 CS 551/651: Advanced Computer Graphics Advanced Ray Tracing Radiosity.
Sang Il Park Sejong University
Duy & Piotr. How to reconstruct a high quality image with the least amount of samples per pixel the least amount of resources And preserving the image.
Sampling Pixel is an area!! – Square, Rectangular, or Circular? How do we approximate the area? – Why bother? Color of one pixel Image Plane Areas represented.
2D Sampling Goal: Represent a 2D function by a finite set of points.
Sampling Theorem & Antialiasing
(c) 2002 University of Wisconsin, CS 559
CS559: Computer Graphics Lecture 12: Antialiasing & Visibility Li Zhang Spring 2008.
Lecture 5: Fourier and Pyramids
David Luebke 3/17/2016 Advanced Computer Graphics Antialiasing David Luebke
CIS 681 Distributed Ray Tracing. CIS 681 Anti-Aliasing Graphics as signal processing –Scene description: continuous signal –Sample –digital representation.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Sampling and Reconstruction.
Antialiasing. What is alias? Alias - A false signal in telecommunication links from beats between signal frequency and sampling frequency (from dictionary.com)
Sampling Week 7, Fri 17 Oct 2003 p1 demos sampling.
Advanced Computer Graphics
… Sampling … … Filtering … … Reconstruction …
Distributed Ray Tracing
Sampling Theorem & Antialiasing
(C) 2002 University of Wisconsin, CS 559
Sampling and Antialiasing
General Functions A non-periodic function can be represented as a sum of sin’s and cos’s of (possibly) all frequencies: F() is the spectrum of the function.
Sampling Theorem told us …
Joshua Barczak CMSC435 UMBC
CSCE 643 Computer Vision: Image Sampling and Filtering
Distributed Ray Tracing
CSC418 Computer Graphics Aliasing Texture mapping.
Distributed Ray Tracing
Presentation transcript:

Aliasing & Antialiasing Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006 (Slide set originally by David Luebke)

Overview Introduction Signal Processing Sampling Theorem Prefiltering Supersampling Continuous Antialiasing Catmull's Algorithm The A-Buffer Stochastic Sampling

Antialiasing Aliasing: signal processing term with very specific meaning Aliasing: computer graphics term for any unwanted visual artifact Antialiasing: computer graphics term for avoiding unwanted artifacts We’ll tackle these in order

No anti-aliasing

5 sample anti-aliasing

16 sample anti-aliasing

Overview Introduction Signal Processing Sampling Theorem Prefiltering Supersampling Continuous Antialiasing Catmull's Algorithm The A-Buffer Stochastic Sampling

Signal Processing Raster display: regular sampling of a continuous function (Really?) Think about sampling a 1-D function:

Signal Processing Sampling a 1-D function:

Signal Processing Sampling a 1-D function:

Signal Processing Sampling a 1-D function: What do you notice?

Signal Processing Sampling a 1-D function: what do you notice? Jagged, not smooth

Signal Processing Sampling a 1-D function: what do you notice? Jagged, not smooth Loses information!

Signal Processing Sampling a 1-D function: what do you notice? Jagged, not smooth Loses information! What can we do about these? Use higher-order reconstruction Use more samples How many more samples?

Overview Introduction Signal Processing Sampling Theorem Prefiltering Supersampling Continuous Antialiasing Catmull's Algorithm The A-Buffer Stochastic Sampling

The Sampling Theorem Obviously, the more samples we take the better those samples approximate the original function The Nyquist sampling theorem: A continuous bandlimited function can be completely represented by a set of equally spaced samples, if the samples occur at more than twice the frequency of the highest frequency component of the function

The Sampling Theorem In other words, to adequately capture a function with maximum frequency F, we need to sample it at frequency N = 2F. N is called the Nyquist limit. The Nyquist sampling theorem applied to CDs Most humans can hear to 20 kHz Some (like me!) to 22 kHz CDs are sampled at 44.1 kHz Although not twice the “highest frequency component”, it is twice the “highest frequency component” that can be (generally) heard

The Sampling Theorem An example: sinusoids

The Sampling Theorem An example: sinusoids

Fourier Theory All our examples have been sinusoids Does this help with real world signals? Why? Fourier theory lets us decompose any signal into the sum of (a possibly infinite number of) sine waves

Overview Introduction Signal Processing Sampling Theorem Prefiltering Supersampling Continuous Antialiasing Catmull's Algorithm The A-Buffer Stochastic Sampling

Prefiltering Eliminate high frequencies before sampling (Foley & van Dam p. 630) Convert I(x) to F(u) Apply a low-pass filter A low-pass filter allows low frequencies through, but attenuates (or reduces) high frequencies Then sample. Result: no aliasing!

Prefiltering

Prefiltering

Prefiltering So what’s the problem? Problem: most rendering algorithms generate sampled function directly e.g., Z-buffer, ray tracing

Overview Introduction Signal Processing Sampling Theorem Prefiltering Supersampling Continuous Antialiasing Catmull's Algorithm The A-Buffer Stochastic Sampling

Supersampling The simplest way to reduce aliasing artifacts is supersampling Increase the resolution of the samples Average the results down For now, we’ll assume that the samples are evenly spaced In the “Stochastic Sampling” section, we’ll see other ways of doing it Sometimes called postfiltering Create virtual image at higher resolution than the final image Apply a low-pass filter Resample filtered image

Supersampling: Limitations Q: What practical consideration hampers super-sampling? A: Storage goes up quadratically Q: What theoretical problem does supersampling suffer? A: Doesn’t eliminate aliasing! Supersampling simply shifts the Nyquist limit higher

Supersampling: Worst Case Q: Give a simple scene containing infinite frequencies A: A checkered ground plane receding into infinity See next slide…

Supersampling Despite these limitations, people still use super-sampling (why?) So how can we best perform it?

Supersampling The process: Create virtual image at higher resolution than the final image Apply a low-pass filter Resample filtered image

Supersampling: Step 1 Create virtual image at higher resolution than the final image This is easy

Supersampling: Step 2 Apply a low-pass filter Convert to frequency domain Multiply by a box function Expensive! Can we simplify this? Recall: multiplication in frequency equals convolution in space, so… Just convolve initial sampled image with the FT of a box function Isn’t this a lot of work?

Supersampling: Digital Convolution In practice, we combine steps 2 & 3: Create virtual image at higher resolution than the final image Apply a low-pass filter Resample filtered image Idea: only create filtered image at new sample points I.e., only convolve filter with image at new points

Supersampling: Digital Convolution Q: What does convolving a filter with an image entail at each sample point? A: Multiplying and summing values Example: 1 2 4  = …

Supersampling Typical supersampling algorithm: Compute multiple samples per pixel Combine sample values for pixel’s value using simple average Q: What filter does this equate to? A: Box filter -- one of the worst! Q: What’s wrong with box filters? Passes infinitely high frequencies Attenuates desired frequencies

Supersampling Common filters: Truncated sinc Box Triangle Guassian sinc(x) = sin(x)/x Box Triangle Guassian

Supersampling In Practice Sinc function: ideal but impractical One approximation: sinc2 Another: Gaussian falloff Q: How wide (what res) should filter be? A: As wide as possible (duh) In practice: 3x3, 5x5, at most 7x7 In other words, the filter is larger than the final pixel So we are using the values of neighboring pixels This creates a better visual effect

Supersampling: Summary Supersampling improves aliasing artifacts by shifting the Nyquist limit It works by calculating a high-res image and filtering down to final res “Filtering down” means simultaneous convolution and resampling This equates to a weighted average Wider filter  better results  more work

Summary So Far Prefiltering Before sampling the image, use a low-pass filter to eliminate frequencies above the Nyquist limit This blurs the image… But ensures that no high frequencies will be misrepresented as low frequencies

Summary So Far Supersampling Sample image at higher resolution than final image, then “average down” “Average down” means multiply by low-pass function in frequency domain Which means convolving by that function’s FT in space domain Which equates to a weighted average of nearby samples at each pixel

Summary So Far Supersampling cons Supersampling pros Doesn’t eliminate aliasing, just shifts the Nyquist limit higher Can’t fix some scenes (e.g., checkerboard) Badly inflates storage requirements Supersampling pros Relatively easy Often works all right in practice Can be added to a standard renderer

Overview Introduction Signal Processing Sampling Theorem Prefiltering Supersampling Continuous Antialiasing Catmull's Algorithm The A-Buffer Stochastic Sampling

Antialiasing in the Continuous Domain Problem with prefiltering: Sampling and image generation inextricably linked in most renderers Z-buffer algorithm Ray tracing Why? Still, some approaches try to approximate effect of convolution in the continuous domain

Antialiasing in the Continuous Domain Pixel Grid Polygons Filter kernel

Antialiasing in the Continuous Domain The good news Exact polygon coverage of the filter kernel can be evaluated What does this entail? Clipping Hidden surface determination

Antialiasing in the Continuous Domain The bad news Evaluating coverage is very expensive The intensity variation is too complex to integrate over the area of the filter Q: Why does intensity make it harder? A: Because polygons might not be flat- shaded Q: How bad a problem is this? A: Intensity varies slowly within a pixel, so shape changes are more important

Overview Introduction Signal Processing Sampling Theorem Prefiltering Supersampling Continuous Antialiasing Catmull's Algorithm The A-Buffer Stochastic Sampling

Catmull’s Algorithm A2 A1 AB A3 Find fragment areas Multiply by fragment colors Sum for final pixel color A1 AB A3

Catmull’s Algorithm First real attempt to filter in continuous domain Very expensive Clipping polygons to fragments Sorting polygon fragments by depth (What’s wrong with this as a hidden surface algorithm?) Equates to box filter (Is that good?)

Overview Introduction Signal Processing Sampling Theorem Prefiltering Supersampling Continuous Antialiasing Catmull's Algorithm The A-Buffer Stochastic Sampling

The A-Buffer Idea: approximate continuous filtering by subpixel sampling Summing areas now becomes simple

The A-Buffer Advantages: Incorporating into scanline renderer reduces storage costs dramatically Processing per pixel depends only on number of visible fragments Can be implemented efficiently using bitwise logical ops on subpixel masks

The A-Buffer Disadvantages Still basically a supersampling algorithm Not a hardware-friendly algorithm Lists of potentially visible polygons can grow without limit Work per-pixel non-deterministic

Recap: Antialiasing Strategies Supersampling: sample at higher resolution, then filter down Pros: Conceptually simple Easy to retrofit existing renderers Works well most of the time Cons: High storage costs Doesn’t eliminate aliasing, just shifts Nyquist limit upwards A-Buffer: approximate pre-filtering of continuous signal by sampling Pros: Integrating with scan-line renderer keeps storage costs low Can be efficiently implemented with clever bitwise operations Cons: Still basically a super-sampling approach Doesn’t integrate with ray-tracing

Overview Introduction Signal Processing Sampling Theorem Prefiltering Supersampling Continuous Antialiasing Catmull's Algorithm The A-Buffer Stochastic Sampling

Stochastic Sampling Stochastic: involving or containing a random variable Sampling theory tells us that with a regular sampling grid, frequencies higher than the Nyquist limit will alias Q: What about irregular sampling? A: High frequencies appear as noise, not aliases This turns out to bother our visual system less!

Stochastic Sampling An intuitive argument: In stochastic sampling, every region of the image has a finite probability of being sampled Thus small features that fall between uniform sample points tend to be detected by non-uniform samples

Stochastic Sampling Integrating with different renderers: Ray tracing: It is just as easy to fire a ray one direction as another Z-buffer: hard, but possible Notable example: REYES system (?) Using image jittering is easier (more later) A-buffer: nope Totally built around square pixel filter and primitive-to-sample coherence

Stochastic Sampling Idea: randomizing distribution of samples scatters aliases into noise Problem: what type of random distribution to adopt? Reason: type of randomness used affects spectral characteristics of noise into which high frequencies are converted

Stochastic Sampling Problem: given a pixel, how to distribute points (samples) within it? Grid Random Poisson Disc Jitter

Stochastic Sampling Poisson distribution: Completely random Add points at random until area is full. Uniform distribution: some neighboring samples close together, some distant

Stochastic Sampling Poisson disc distribution: Poisson distribution, with minimum- distance constraint between samples Add points at random, removing again if they are too close to any previous points Very even-looking distribution

Stochastic Sampling Jittered distribution Start with regular grid of samples Perturb each sample slightly in a random direction More “clumpy” or granular in appearance

Stochastic Sampling Spectral characteristics of these distributions: Poisson: completely uniform (white noise). High and low frequencies equally present Poisson disc: Pulse at origin (DC component of image), surrounded by empty ring (no low frequencies), surrounded by white noise Jitter: Approximates Poisson disc spectrum, but with a smaller empty disc.

Stochastic Sampling Watt & Watt, p. 134 See Foley & van Dam, p 644-645 Should have images next time