A Quadrilateral Rendering Primitive Kai Hormann · Marco Tarini A Quadrilateral Rendering Primitive Visual Computing Group · CNR · Pisa.

Slides:



Advertisements
Similar presentations
COMPUTER GRAPHICS SOFTWARE.
Advertisements

OpenGL: Simple Use Open a window and attach OpenGL to it Set projection parameters (e.g., field of view) Setup lighting, if any Main rendering loop –Set.
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Ray tracing. New Concepts The recursive ray tracing algorithm Generating eye rays Non Real-time rendering.
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Graphics Pipeline.
REAL-TIME VOLUME GRAPHICS Christof Rezk Salama Computer Graphics and Multimedia Group, University of Siegen, Germany Eurographics 2006 Real-Time Volume.
Texture Mapping. Typical application: mapping images on geometry 3D geometry (quads mesh) + RGB texture 2D (color-map) =
9/25/2001CS 638, Fall 2001 Today Shadow Volume Algorithms Vertex and Pixel Shaders.
I3D Fast Non-Linear Projections using Graphics Hardware Jean-Dominique Gascuel, Nicolas Holzschuch, Gabriel Fournier, Bernard Péroche I3D 2008.
CS CS 175 – Week 4 Mesh Decimation General Framework, Progressive Meshes.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Interpolation Clipping.
HCI 530 : Seminar (HCI) Damian Schofield.
CGDD 4003 THE MASSIVE FIELD OF COMPUTER GRAPHICS.
IN4151 Introduction 3D graphics 1 Introduction 3D Computer Graphics part 1 Projective display Viewing pipeline Graphics hardware Image-based rendering.
Rasterization May 14, Triangles Only We will discuss the rasterization of triangles only. Why? –Polygon can be decomposed into triangles. –A triangle.
1Notes. 2Atop  The simplest (useful) and most common form of compositing: put one image “atop” another  Image 1 (RGB) on top of image 2 (RGB)  For.
GPU Simulator Victor Moya. Summary Rendering pipeline for 3D graphics. Rendering pipeline for 3D graphics. Graphic Processors. Graphic Processors. GPU.
Sorting and cell compositing for irregular meshes Nelson Max, Peter Williams, Richard Cook, Claudio Silva.
Part I: Basics of Computer Graphics Rendering Polygonal Objects (Read Chapter 1 of Advanced Animation and Rendering Techniques) Chapter
Graphics Pipeline Rasterization CMSC 435/634. Drawing Terms Primitive – Basic shape, drawn directly – Compare to building from simpler shapes Rasterization.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
1 Computer Graphics Week13 –Shading Models. Shading Models Flat Shading Model: In this technique, each surface is assumed to have one normal vector (usually.
March Shape Drawing Algorithms Shmuel Wimer Bar Ilan Univ., Engineering Faculty.
Under the Hood: 3D Pipeline. Motherboard & Chipset PCI Express x16.
Graphics Pipeline Rasterization CMSC 435/634. Drawing Terms Primitive – Basic shape, drawn directly – Compare to building from simpler shapes Rasterization.
Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which.
COLLEGE OF ENGINEERING UNIVERSITY OF PORTO COMPUTER GRAPHICS AND INTERFACES / GRAPHICS SYSTEMS JGB / AAS 1 Shading (Shading) & Smooth Shading Graphics.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
Mesh Color Cem Yuksel John Keyser Donald H. House Texas A&M University SIGGRAPH /12/06 Xiang.
Surface displacement, tessellation, and subdivision Ikrima Elhassan.
MIT EECS 6.837, Durand and Cutler Graphics Pipeline: Projective Transformations.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
Week 2 - Friday.  What did we talk about last time?  Graphics rendering pipeline  Geometry Stage.
Graphics Systems and OpenGL. Business of Generating Images Images are made up of pixels.
CSE Real Time Rendering Week 2. Graphics Processing 2.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
GRAPHICS PIPELINE & SHADERS SET09115 Intro to Graphics Programming.
Computer Graphics 2 Lecture 7: Texture Mapping Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
Computer Graphics Basic 3D Geometry CO2409 Computer Graphics Week 5-1.
CS418 Computer Graphics John C. Hart
1 Visiblity: Culling and Clipping Computer Graphics COMP 770 (236) Spring 2009 January 21 & 26: 2009.
1 3D API OPENGL ES v1.0 Owned by Silicon Graphics (SGL) Control was then transferred to Khronos Group Introduction.
Smooth Shading Gouraud Phong
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2013 Tamara Munzner Rasterization.
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
OpenGL Graphics Textures. Quiz You didn't see that coming!
1 Georgia Tech, IIC, GVU, 2006 MAGIC Lab Rossignac Graphic pipeline  Scan-conversion algorithm (high level)  Pixels.
Graphics Pipeline Rasterization CMSC 435/634. Drawing Terms Primitive – Basic shape, drawn directly – Compare to building from simpler shapes Rasterization.
Ray Tracing using Programmable Graphics Hardware
Introduction to Meshes Lecture 22 Mon, Oct 20, 2003.
Computer Graphics Inf4/MSc 1 Computer Graphics Lecture 5 Hidden Surface Removal and Rasterization Taku Komura.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 10, 2015 TRIANGLE MESHES 3D MESHES MESH OPERATIONS.
2 3D Viewing Process  3D viewing process MC Model Space Model Transformation Model Transformation WC World Space Viewing Transformation Viewing Transformation.
Computer Graphics Lecture 08 Taqdees A. Siddiqi Computer Graphics Filled Area Primitives I Lecture 08 Taqdees A. Siddiqi
GLSL Review Monday, Nov OpenGL pipeline Command Stream Vertex Processing Geometry processing Rasterization Fragment processing Fragment Ops/Blending.

- Introduction - Graphics Pipeline
Week 2 - Friday CS361.
The Graphics Rendering Pipeline
CS451Real-time Rendering Pipeline
Positive Gordon–Wixom Coordinates
Lecture 13 Clipping & Scan Conversion
Introduction to Meshes
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Polygons.
Introduction to Meshes
OpenGL-Rendering Pipeline
Presentation transcript:

A Quadrilateral Rendering Primitive Kai Hormann · Marco Tarini A Quadrilateral Rendering Primitive Visual Computing Group · CNR · Pisa

A Quadrilateral Rendering Primitive Motivation our methoddiagonal split quadrilateralstriangles modelling primitiverendering primitive

A Quadrilateral Rendering Primitive How to render a quad ? diagonal split two triangles linear in each triangle diagonal visible (C 0 ) diagonal split two triangles linear in each triangle

A Quadrilateral Rendering Primitive How to render a quad ? diagonal split two triangles linear in each triangle diagonal visible (C 0 )

A Quadrilateral Rendering Primitive How to render a quad ? two-fold linear linear along edges linear along horizontal spans two horizontal lines visible (C 0 ) strongly view dependent two-fold linear linear along edges linear along horizontal spans

A Quadrilateral Rendering Primitive How to render a quad ? projective map unique mapping from unit square to quad false depth-impression not linear along edges convex quads only projective map unique mapping from unit square to quad

A Quadrilateral Rendering Primitive How to render a quad ? bilinear interpolation unique mapping from unit square to quad costly geometry refinement required unfeasible for hardware implementation bilinear interpolation unique mapping from unit square to quad

A Quadrilateral Rendering Primitive How to render a quad ? diagonal split 1 diagonal split 0 two-fold linear projective map bilinear interpolation new method

A Quadrilateral Rendering Primitive vertex process 2D screen quad General concept 3D vertices fragment process final pixels rasterizer fragments

A Quadrilateral Rendering Primitive General concept vertex process 2D screen quad 3D vertices fragment process final pixels rasterizer fragments remains the same project vertices define vertex attributes etc.

A Quadrilateral Rendering Primitive General concept remains the same depth test shading texture accesses etc. vertex process 2D screen quad 3D vertices fragment process final pixels rasterizer fragments remains the same depth test shading texture accesses etc.

A Quadrilateral Rendering Primitive General concept vertex process 2D screen quad 3D vertices fragment process final pixels rasterizer fragments a new quad rasterizer determine fragments to be covered interpolate attributes per fragment

A Quadrilateral Rendering Primitive Determine fragments to be covered possible shapes of 2D screen quads rasterization general scan-line algorithm via edge-functions concave (v-shape) self-intersecting (cross-shape) convex

A Quadrilateral Rendering Primitive General concept vertex process 2D screen quad 3D vertices fragment process final pixels rasterizer fragments a new quad rasterizer determine fragments to be covered interpolate attributes per fragment

A Quadrilateral Rendering Primitive v0v0 v2v2 v1v1 v Interpolating vertex attributes triangles barycentric coordinates weights for linear interpolation λ i (v) = A(v, v i+1,v i+2 ) A(v 0, v 1,v 2 ) a(v) = λ i (v) a i Σ i=0 2

A Quadrilateral Rendering Primitive Generalized barycentric coordinates quadrilaterals mean value coordinates (Floater 2003) vivi v i-1 v i+1 v α i-1 αiαi riri μ i (v) = riri tan + tan α i-1 2 αiαi 2 λ i (v) = μiμi μjμj Σ j=0 3

A Quadrilateral Rendering Primitive Generalized barycentric coordinates properties Lagrange property linear along edges positive work for all shapes smooth (C ∞ inside) distinguish front/back-facing not too costly to compute vivi v i-1 v i+1 v α i-1 αiαi riri

A Quadrilateral Rendering Primitive Example interpolating texture coordinates texture

A Quadrilateral Rendering Primitive Perspective correction a(v) = Σ i=0 3 λ i (v) aiai wiwi / Σ i=0 3 λ i (v) 1 wiwi withoutwith a(v) = λ i (v) a i Σ i=0 3

A Quadrilateral Rendering Primitive Works in all cases possible shapes of 2D screen quads concave (v-shape) self-intersecting (cross-shape) convex

A Quadrilateral Rendering Primitive Points behind the eye it also works for exterior quads all vertices in front some vertices behind

A Quadrilateral Rendering Primitive Points behind the eye

A Quadrilateral Rendering Primitive Interpolating depth

A Quadrilateral Rendering Primitive Discussion blends well with current architecture modifies the rasterizer only vertex and fragment ops unchanged properties of triangles carry over  depth calculation  behaviour along edges allows mixed triangle/quad meshes OpenGL and DirectX friendly

A Quadrilateral Rendering Primitive Application front-end OpenGL quads are part of current syntax our quads comply with the specs re-implement GL_QUADS in the API DirectX need to add a new primitive type

A Quadrilateral Rendering Primitive Discussion rasterization cost generalized barycentric coordinates  for example, 19 ARB instructions edge functions for membership test  5 instead of 3 fewer and larger primitives  1 quad instead of 2 triangles

A Quadrilateral Rendering Primitive Discussion increased quality quad meshes look much better almost identical to a refined mesh view-dependency

A Quadrilateral Rendering Primitive Future work improving the method extend to other primitives? simplify formulas? avoid view-dependency? turn it into hardware discuss feasibility with  graphics card developers  DirectX developers  OpenGL community