Attributes of Graphics Primitives Sang Il Park Sejong University.

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.
CP411 polygon Lecture 6 1. Scan conversion algorithm for circle 2. Draw polygons 3. Antialiasing.
CS 4363/6353 BASIC RENDERING. THE GRAPHICS PIPELINE OVERVIEW Vertex Processing Coordinate transformations Compute color for each vertex Clipping and Primitive.
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.
Aliasing & Antialiasing
Sampling, Aliasing, & Mipmaps
Implementation III Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
Graphics Programming: Polygon Filling
Now Playing: Big Bird Eddie Floyd from The Complete Stax-Volt Singles Volume 1 ( ) Released April 30, 1991.
University of British Columbia CPSC 414 Computer Graphics © Tamara Munzner 1 Sampling Week 7, Fri 17 Oct 2003 p1 demos sampling.
CS 4731: Computer Graphics Lecture 22: Raster Graphics Part 3 Emmanuel Agu.
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.
CIS 681 Distributed Ray Tracing. CIS 681 Anti-Aliasing Graphics as signal processing –Scene description: continuous signal –Sample –digital representation.
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.
Image Processing 고려대학교 컴퓨터 그래픽스 연구실 cgvr.korea.ac.kr.
Antialiasing CptS 548 Advanced Computer Graphics John C. Hart.
Ray Tracing Primer Ref: SIGGRAPH HyperGraphHyperGraph.
David Luebke 1 9/4/2015 CS 551/651: Advanced Computer Graphics Antialiasing Continued: Prefiltering and Supersampling.
Computer Graphics Inf4/MSc Computer Graphics Lecture 9 Antialiasing, Texture Mapping.
CGMB 314 Intro to Computer Graphics Fill Area Primitives.
Geometric Objects Computer Graphics Lab. Sun-Jeong Kim.
JOGL in MS Windows GDI – Graphics Device Interface (Windows-specific) OpenGL Lib JOGL Commands GDI Processor Graphics Hardware JOGL Lib.
CGMB214: Introduction to Computer Graphics
ATTRIBUTES OF GRAPHICS PRIMITIVES CA 302 Computer Graphics and Visual Programming Aydın Öztürk
Antialiasing CAP4730: Computational Structures in Computer Graphics.
3/4/04© University of Wisconsin, CS559 Spring 2004 Last Time Clipping Lines –Cohen-Sutherland: The use of outcodes and early reject/accept tests –Liang-Barsky:
Introduction to Computer Graphics with WebGL
CS 480/680 Computer Graphics Implementation III Dr. Frederick C Harris, Jr. Fall 2011.
10/26/04© University of Wisconsin, CS559 Fall 2004 Last Time Drawing lines Polygon fill rules Midterm Oct 28.
1 Introduction Line attribute Color and gray scale Area filled attribute Anti-aliasing.
CS 450: COMPUTER GRAPHICS ANTIALIASING SPRING 2015 DR. MICHAEL J. REALE.
Week 6 - Wednesday.  What did we talk about last time?  Light  Material  Sensors.
Image Processing Basics. What are images? An image is a 2-d rectilinear array of pixels.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Lecture Fall 2001 From S. Zeki, Inner Vision.
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.
Attributes of Graphics Primitives Hearn & Baker Chapter 4 Some slides are taken from Robert Thomsons notes.
Lecture 6 Rasterisation, Antialiasing, Texture Mapping,
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.
Sampling Theorem & Antialiasing
Attributes of Graphics Primitives
Graphics Output Primitives
CS559: Computer Graphics Lecture 12: Antialiasing & Visibility Li Zhang Spring 2008.
David Luebke 3/17/2016 Advanced Computer Graphics Antialiasing David Luebke
CS552: Computer Graphics Lecture 17: Scan Conversion (Special Cases)
COMPUTER GRAPHICS CS 482 – FALL 2015 NOVEMBER 10, 2015 VISIBILITY CULLING HIDDEN SURFACES ANTIALIASING HALFTONING.
Attributes of Graphics Primitives Chapter 4
Antialiasing. What is alias? Alias - A false signal in telecommunication links from beats between signal frequency and sampling frequency (from dictionary.com)
Computer Graphics I, Fall 2010 Scan conversion algorithms.
CS 4722 Made by Dr. Jeffrey Chastine Modified by Dr. Chao Mei
CSC Graphics Programming
Attributes of Graphics Primitives Hearn & Baker Chapter 4
Distributed Ray Tracing
Sampling Theorem & Antialiasing
Advanced Computer Graphics:
Jim X. Chen George Mason University
Sampling Theorem told us …
Joshua Barczak CMSC435 UMBC
Agenda Polygon Terminology Types of polygons Inside Test
Agenda Polygon Terminology Types of polygons Inside Test
Primitive Drawing Algorithm
Primitive Drawing Algorithm
Presentation transcript:

Attributes of Graphics Primitives Sang Il Park Sejong University

OpenGL State variables: Color Point attributes Line attributes Fill-Area attributes

Color buffer Setting: Setting the color value: Ex) Color in OpenGL glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB) GLUT_RGBA GLUT_RGB GLUT_INDEX GLUT_SINGLE GLUT_DOUBLE GLUT_RGBA GLUT_RGB GLUT_INDEX GLUT_SINGLE GLUT_DOUBLE glColor* (values); glColor3f (0.0, 1.0, 0.5); glColor3i ( 0, 255, 128); glColor3f (0.0, 1.0, 0.5); glColor3i ( 0, 255, 128);

Size: Color : Point Attributes in OpenGL glPointSize ( size ); glColor* (values);

Width: Line-Style : ex) Line-Style On/Off: Line Attributes in OpenGL glLineWidth ( width ); glLineStipple (repeatFactor, pattern); glLineStipple (1, 0x00FF); glLineStipple (1, 0x0101); glLineStipple (1, 0x00FF); glLineStipple (1, 0x0101); glEnable (GL_LINE_STIPPLE); glDisable (GL_LINE_STIPPLE); glEnable (GL_LINE_STIPPLE); glDisable (GL_LINE_STIPPLE);

Line Caps: Connecting: Other Line Attributes Not in OpenGL Butt capRound capProjecting square cap Miter joinRound joinBevel join

Pen and Brush Options: Other Line Attributes Not in OpenGL

Color buffer Setting: Setting the color value: Ex) Color in OpenGL glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB) GLUT_RGBA GLUT_RGB GLUT_INDEX GLUT_SINGLE GLUT_DOUBLE GLUT_RGBA GLUT_RGB GLUT_INDEX GLUT_SINGLE GLUT_DOUBLE glColor* (values); glColor3f (0.0, 1.0, 0.5); glColor3i ( 0, 255, 128); glColor3f (0.0, 1.0, 0.5); glColor3i ( 0, 255, 128);

Area Filling Scan line approach Seed Fill Algorithm

Area Filling (Scan line Approach) For each scan line (1) Find intersections (the extrema of spans) Use Bresenham's line-scan algorithm (2) Sort intersections (increasing x order) (3) Fill in between pair of intersections

Area Filling (Scan line Approach) Take advantage of –Edge coherence: edges intersected by scan line i are also intersected by scan line i+1

Area Filling (Scan line method)

 basic idea −Start at a pixel interior to a polygon −Fill the others using connectivity Area Filling (Seed Fill Algorithm) seed

4-connected8-connected Need a stack. Why? Seed Fill Algorithm (Cont’)

start position Seed Fill Algorithm (Cont’)

interior-defined boundary-defined flood fill algorithmboundary fill algorithm

Seed Fill Algorithm (Cont’) hole boundary pixelinterior pixelseed pixel The stack may contain duplicated or unnecessary information !!!

Boundary Filling

Flood Filling : Start a point inside the figure, replace a specified interior color only.

Shani, U., “Filling Regions in Binary Raster Images: A Graph-Theoretic Approach”, Computer Graphics, 14, (1981), scan line conversion seed filling + Scan Line Seed Fill

Boundary Filling Efficiency in space! –finish the scan line containing the starting position –process all lines below the start line –process all lines above the start line

Problems of Filling Algorithm What happens if a vertex is shared by more than one polygon, e.g. three triangles? What happens if the polygon intersects itself? What happens for a “sliver”? Solutions? Redefine what it means to be inside of a triangle Different routines for nasty little triangles

OpenGL Fill-Area Function Shade model: Wire-frame or point: glShadeModel ( shadeModel ); GL_SMOOTH GL_FLAT GL_SMOOTH GL_FLAT glPolygonMode ( face, displayMode ); GL_FRONT GL_BACK GL_FRONT_AND_BACK GL_FRONT GL_BACK GL_FRONT_AND_BACK GL_LINE GL_POINT GL_FILL GL_LINE GL_POINT GL_FILL

Aliasing in CG Which is the better?

Aliasing in CG Digital technology can only approximate analog signals through a process known as sampling The distortion of information due to low-frequency sampling (undersampling) Choosing an appropriate sampling rate depends on data size restraints, need for accuracy, the cost per sample… Errors caused by aliasing are called artefacts. Common aliasing artefacts in computer graphics include jagged profiles, disappearing or improperly rendered fine detail, and disintegrating textures.

The Nyquist Theorem the sampling rate must be at least twice the frequency of the signal or aliasing occurs

Aliasing Effects

Artifacts - Jagged profiles Jagged silhouettes are probably the most familiar effect caused by aliasing. Jaggies are especially noticeable where there is a high contrast between the interior and the exterior of the silhouette

Artefacts - Improperly rendered detail

Artefacts - Disintegrating textures The checkers should become smaller as the distance from the viewer increases.

Antialiasing Antialiasing methods were developed to combat the effects of aliasing. The two major categories of antialiasing techniques are prefiltering and postfiltering.

32 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!

High Frequency

34 Prefiltering

35 Prefiltering

Basis for Prefiltering Algorithms

Catmull’s Algorithm ABAB A1A1 A2A2 A3A3 Find fragment areas Multiply by fragment colors Sum for final pixel color

Prefiltering Example

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

40 Supersampling The simplest way to reduce aliasing artifacts is supersampling –Increase the resolution of the samples –Average the results down Or sometimes, it is called “Postfiltering”.

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

42 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

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

44

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

Sampling in the Postfiltering method Supersampling from a 4*3 image. Sampling can be done randomly or regularly. The method of perturbing the sample positions is known as "jittering."

47 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!

48 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

49 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

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

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

52 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

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

Nonuniform Supersampling Adaptive Sampling

Final Samples Problem: Many more blue samples than white samples But final pixel actually more white than purple! Simple filtering will not handle this correctly

Filters

Antialiasing