Direct Rendering of Trimmed NURBS Surfaces
|
|
- Clifford Bond
- 6 years ago
- Views:
Transcription
1 Direct Rendering of Trimmed NURBS Surfaces
2 Hardware Graphics Pipeline 2/ 81 Hardware Graphics Pipeline GPU Video Memory CPU Vertex Processor Raster Unit Fragment Processor Render Target Screen
3 Extended Hardware Graphics Pipeline 3/ 81 Extended Hardware Graphics Pipeline GPU Video Memory CPU Vertex Processor Raster Unit Intersection Shader Fragment Processor Render Target
4 Intersection Shader 4/ 81 Intersection Shader Conceptual extension of the hardware rendering pipeline Optional stage after the rasterization unit for non-triangular geometry Specifically for ray object intersection tests - Analytically, e.g. for quadrics - Numerically, e.g. for NURBS surfaces Can perform early ray termination test
5 Intersection Shader 5/ 81 Intersection Shader CPU Convex hull
6 Intersection Shader 6/ 81 Intersection Shader CPU Parametric object description GPU Convex hull vertices Convex hull
7 Intersection Shader 7/ 81 Intersection Shader CPU Parametric object description Convex hull vertices... GPU Convex hull Candidate rays, and ray directions are generated
8 Intersection Shader 8/ 81 Intersection Shader CPU Parametric object description Convex hull vertices GPU Convex hull Candidate rays, and ray directions are generated Intersection test
9 Intersection Shader 9/ 81 Intersection Shader Each eye ray corresponds to exactly one fragment Current hardware - Ray generation is performed in the vertex shader and rasterization unit - Intersection shader is part of the fragment shader program
10 Intersection Shader 10 / 81 Convex Hulls Used to reduce the number of ray object intersection tests Rays which are generated by the projection of the convex hull form a candidate set of rays Inverse acceleration structure Tightness of convex hulls can be used to trade CPU vs. GPU computation time
11 Intersection Shader 11 / 81 Intersection Shader Pros No tessellation and minimal storage Pixel-accurate - silhouettes, - intersection curves, - normals Seamless integration into standard graphics pipeline Cons Ray casting is expensive Artifact free intersection test can be difficult to perform
12 Intersection Shader 12 / 81 Intersection Shader Pros No tessellation and minimal storage Pixel-accurate - silhouettes, - intersection curves, - normals Seamless integration into standard graphics pipeline Cons Ray casting is expensive Artifact free intersection test can be difficult to perform
13 Intersection Shader 13 / 81 Intersection Shader Pros No tessellation and minimal storage Pixel-accurate - silhouettes, - intersection curves, - normals Seamless integration into standard graphics pipeline Cons Ray casting is expensive Artifact free intersection test can be difficult to perform
14 Intersection Shader 14 / 81 Intersection Shader Quadrics NURBS Node-based Implicit Surface
15 Ray Casting of NURBS Surfaces on the GPU 15 / 81 Ray Casting of NURBS Surfaces on the GPU
16 Ray Casting of NURBS Surfaces on the GPU 16 / 81 Overview 1. Patch is subdivided in a set of sub-patches 2. A Convex hull is computed for each sub-patch and its parameter range in (u,v) space is determined 3. Candidate rays are generated by rendering the convex hulls 4. Intersection test is performed using Newton Iteration 5. Trimming is performed using Bézier Clipping and Point-In-Polygon test
17 Preprocessing 17 / 81 Preprocessing 1. Generation of convex hulls - Conversion of NURBS surfaces into Bézier patches - Subdivision of Bézier patches - User-provided level, a flatness criteria or a minimum size of a convex hull primitive determines the number of subdivision steps - Convex hull consists of a set of polygonal primitives
18 Preprocessing 18 / 81 Preprocessing 2. Conversion of trimming curves into Bézier curves - Necessary for Bézier clipping algorithm
19 Preprocessing 19 / 81 Preprocessing 2. Conversion of trimming curves into Bézier curves - Necessary for Bézier clipping algorithm 3. Generation of fragment programs - Customised for surface properties
20 Preprocessing 20 / 81 Preprocessing 2. Conversion of trimming curves into Bézier curves - Necessary for Bézier clipping algorithm 3. Generation of fragment programs - Customised for surface properties 4. Parameters are stored in textures - Control points and knot vectors of surfaces - Control points of trimming curves
21 Curve and Surface Evaluation 21 / 81 Curve and Surface Evaluation Bézier curves / surfaces - de Casteljau algorithm is used for evaluation - Efficient because linear interpolation is supported directly in hardware
22 Curve and Surface Evaluation 22 / 81 Curve and Surface Evaluation Bézier curves / surfaces - de Casteljau algorithm is used for evaluation - Efficient because linear interpolation is directly supported in hardware NURBS curves / surfaces - de Boor algorithm is used for evaluation - Only knot spans which are relevant to evaluate the curve at a certain point are copied into registers
23 Ray Patch Intersection 23 / 81 Ray Patch Intersection Ray is represented as intersection of two planes P 1 P 2 : : r n r n 1 2 x x d 1 d 2 = 0 = 0
24 Ray Patch Intersection 24 / 81 Ray Patch Intersection Ray is represented as intersection of two planes NURBS surface P 1 P 2 : : r n r n 1 2 x x d 1 d 2 = 0 = 0 n m S = i j, i= 0 j= 0 p q ( u, v) N () u N () u pi j
25 Ray Patch Intersection 25 / 81 Ray Patch Intersection Ray is represented as intersection of two planes NURBS surface Objective function system 0 : 0 : = = d x n P d x n P r r ( ) () () j i q j n i m j p i p u N u N v u S, 0 0, = = = ( ) ( ) = ,, ), ( d v u S n d v u S n v u F
26 Ray Patch Intersection 26 / 81 Newton Iteration Each step takes the form where the Jacobian J is given by ) ), (( ), ( ), ( 1 1 k k k v u F J v u v u + = ( ) ( ) ( ) ( ) = v v u S n u v u S n v v u S n u v u S n J,,,,
27 Ray Patch Intersection 27 / 81 Newton Iteration Newton Iteration terminates if - an approximation for a root has been found F( u, v) k ) < ε, - the maximum number of iterations has been exceeded, - the algorithm diverges, i.e. ( u v) ) F( u, v) ) F >, k + 1 k
28 Ray Patch Intersection 28 / 81 Newton Iteration Newton Iteration has to be implemented in one rendering pass
29 Ray Patch Intersection 29 / 81 Newton Iteration Newton Iteration has to be implemented in one rendering pass
30 Ray Patch Intersection 30 / 81 Initial Values 1. Fixed initial guess for each primitive of the convex hull - Center of (u,v) parameter space enclosed by primitive of the convex hull
31 Ray Patch Intersection 31 / 81 Initial Values 1. Fixed initial guess for each primitive of the convex hull - Center of (u,v) parameter space enclosed by primitive of the convex hull 2. (u,v) Texturing - (u,v) parameter stored for each vertex during preprocessing - Parameters are linearly interpolated along the surfaces of the convex hull
32 Ray Patch Intersection 32 / 81 Initial Values 2.1. View-independent (u,v) Texturing - The (u,v) parameters as computed during the preprocessing are interpolated
33 Ray Patch Intersection 33 / 81 Initial Values 2.1. View-independent (u,v) Texturing - The (u,v) parameters as computed during the preprocessing are interpolated 2.2. View-dependent (u,v) Texturing - Vertex shader: Intersection test between the ray from the camera to the vertex and the surface patch - (u,v) parameters of the intersection points are interpolated
34 Trimming 34 / 81 Trimming Based on point-in-polygon test A ray is shot along the parametric surface and the number of intersections with the trimming curves is counted - The parity of the number of intersections determines if the fragment is inside or outside the trimming region Bézier clipping is used to determine the intersection of the ray with the trimming curves
35 Bézier Clipping 35 / 81 Bézier Clipping Mixture between subdivision-based and numerical intersection algorithm Can be used for ray Bézier curve and ray Bézier patch intersection test Guaranteed to find all intersection points - Some special cases for ray surface patch intersection
36 Bézier Clipping 36 / 81 Bézier Clipping Ray is given in implicit form ax + by c = 0
37 Bézier Clipping 37 / 81 Bézier Clipping Ray is given in implicit form ax + by c = 0 Bézier curve is given by n () n () u p B () u, p = ( x y ) C = i i i i, i= 0 i
38 Bézier Clipping 38 / 81 Bézier Clipping Ray is given in implicit form ax + by c = 0 Bézier curve is given by () n () u p B () u, p = ( x y ) Objective function (distance field) d n C = i i i i, n i= 0 () n () u d B () u, d = ax + by c = i= 0 i i i i i i
39 Bézier Clipping 39 / 81 Bézier Clipping Objective function as explicit, non-parametric Bézier curve n () n () u ( u, d() u ) = D B () u, D = ( u d ) D = i i i i, i= 0 Because D(u) is a Bézier curve, the control points are evenly spaced, i.e. i u i = i n
40 Bézier Clipping 40 / 81 Bézier Clipping ray 2 Bézier curve
41 Bézier Clipping 41 / 81 Bézier Clipping 4 2 d (1/3,3) (2/3,4) (1,4) 3 ray u 2 (0,2) Bézier curve Explicit Bézier curve
42 Bézier Clipping 42 / 81 Bézier Clipping 4 2 d (1/3,3) (2/3,4) (1,4) 3 ray u min u max u 2 (0,2) Bézier curve Explicit Bézier curve
43 Bézier Clipping 43 / 81 Bézier Clipping If the convex hull DOES NOT intersect the d=0 axis then no intersection point exists If the convex hull DOES intersect the d=0 axis then the convex hull property for Bézier curve guarantees that an intersection lies between u min and u max The de Casteljau algorithm can be used to subdivide the curve into three segments - Two of the segments, [0, u min ) and ( u max,1], do not contain a ray curve intersection
44 Bézier Clipping 44 / 81 Bézier Clipping If the [u min, u max ] is bigger than some predefined threshold then the interval contains two intersections and is itself subdivided - The search is continued in each subinterval separately The interval contraction is applied until the interval [u min, u max ] k is smaller than a predefined threshold - The intersection point is the center of the final interval [u min, u max ] k
45 Bézier Clipping 45 / 81 Bézier Clipping on the GPU Algorithm has been reformulated to be iterative - For efficiency reasons implemented as a state machine on the GPU The convex hull is reconstructed only locally - Only the edges which contain u min and u max are found and the corresponding control points are stored - Reduces the number of registers necessary
46 Bézier Clipping 46 / 81 Bézier Clipping on the GPU If a subdivision of [u min, u max ] k is necessary, the search is continued only in the left subinterval - The limited number of register on the GPU does not allow to store different right subintervals - A global right subinterval is used which requires only one scalar for its representation After the search terminated in the left subinterval it is continued in the global right subinterval
47 Bézier Clipping 47 / 81 Bézier Clipping on the GPU 0 1 u min,0 u max,0
48 Bézier Clipping 48 / 81 Bézier Clipping on the GPU 0 1 u min,0 u min,1 subdivision u max,1 u max,0
49 Bézier Clipping 49 / 81 Bézier Clipping on the GPU 0 1 u min,0 u min,1 subdivision u max,1 u max,0 u min,2 u max,2
50 Bézier Clipping 50 / 81 Bézier Clipping on the GPU 0 1 u min,0 u max,0 subdivision u min,1 u max,1 u min,2 u max,2 subdivision u min,3 u max,3
51 Bézier Clipping 51 / 81 Bézier Clipping on the GPU 0 1 u min,0 u max,0 subdivision u min,1 u max,1 u min,2 u max,2 subdivision u min,3 u max,3 u min,4 u max,4
52 Bézier Clipping 52 / 81 Bézier Clipping on the GPU 0 1 u min,0 u max,0 subdivision u min,1 u max,1 u min,2 u max,2 subdivision u min,3 u max,3 u min,4 u max,4 ε intersection
53 Early Ray Termination 53 / 81 Early Ray Termination Reduces the number of intersection tests Intersection shader program is not executed for a ray if it can be guaranteed that any intersection which would be found is behind the one that has already been encountered for the fragment Convex hull property for parametric patches enables early ray termination based on minimal depth value of bounding primitive for sub-patch
54 Early Ray Termination 54 / 81 Early Ray Termination
55 Early Ray Termination 55 / 81 Early Ray Termination
56 Early Ray Termination 56 / 81 Early Ray Termination
57 Early Ray Termination 57 / 81 Early Ray Termination
58 Early Ray Termination 58 / 81 Early Ray Termination d cur d min depth
59 Early Ray Termination 59 / 81 Early Ray Termination GPU provides Early-Z - BUT cannot be used if depth value is changed in the fragment shader program - Depth value has to be written for consistent depth buffering
60 Early Ray Termination 60 / 81 Early Ray Termination GPU provides Early-Z - BUT cannot be used if depth value is changed in the fragment shader program - Depth value has to be written for consistent depth buffering Manual Early-Z can be implemented by branching in the fragment shader - Current depth value from depth buffer is compared to minimal depth value of convex hull
61 Early Ray Termination 61 / 81 Early Ray Termination OpenGL: Simultaneous read and write of buffer results in undefined behaviour - No memory-cache synchronisation - Parallel processing of rays / fragments In practice reading from the currently bound depth buffer is possible (Nvidia boards) - Depth buffer is accessed as texture, similar to shadow mapping
62 Early Ray Termination 62 / 81 Early Ray Termination Reading from depth buffer is conservative - Depth buffer values are monotonically decreasing within one render pass - Values obtained in the intersection shader are always equal or greater than the correct value - Depth buffering is performed after fragment shader Some unnecessary intersection tests are performed but images are artifact free
63 Early Ray Termination 63 / 81 Early Ray Termination Reading from depth buffer is conservative - Depth buffer values are monotonically decreasing within one render pass - Values obtained in the intersection shader are always equal or greater than the correct value - Depth buffering is performed after fragment shader Some unnecessary intersection tests are performed but images are artifact free Requires front-to-back sorting of convex hull primitives
64 Results 64 / 81 Results All tests performed at 1280x % of screen covered by objects AMD Athlon Single Nvidia Quadro FX SLI usually nearly doubles the performance Results are draw times in ms
65 Results 65 / 81 No trimming curve Different number of sub-patches Patches Sub- Patches Number of Iterations
66 Results 66 / 81 One trimming curve Different number of sub-patches Patches Sub- Patches Number of Iterations
67 67 / 81 Results Different number of trimming curves 2048 sub-patches
68 Results 68 / 81 Newton Iteration - 1, 2, 3 and 4 Newton Iteration steps (ltr, ttb)
69 Results 69 / 81 Newton Iteration - 1, 2, 3 and 4 Newton Iteration steps (ltr, ttb)
70 Results 70 / 81 Newton Iteration - 1, 2, 3 and 4 Newton Iteration steps (ltr, ttb)
71 Results 71 / 81 Newton Iteration - 1, 2, 3 and 4 Newton Iteration steps (ltr, ttb)
72 Results 72 / 81 Early ray termination Quads NURBS
73 Comparison 73 / 81 Comparison with Guthe et al. [2005] Integration into hardware graphics pipeline Pixel error Trimming Guthe et al. Seamless Estimator for screen space error Texture-based, often high resolutions necessary GPUCast Seamless Pixel-accurate (some artifacts through nonconvergence) Pixel-accurate
74 Comparison 74 / 81 Comparison with Guthe et al. [2005] Guthe et al. GPUCast Number of trims Unlimited Currently max. 10 Multi-GPU setups Does not scale Scales well Quality at surface intersections Possible model complexity Appropriate tessellation factor hard to determine Complex models possible but real-time not guaranteed in these cases Pixel accurate without additional computations Limited to medium complex models on current hardware
75 Limitations 75 / 81 Limitations At the very limit of GPU resources - Especially registers - Adding functionality or improving the current one is (very) hard - Many GLSL compiler bugs - Got better for NV4X over the years - Alternative SH was used
76 Limitations 76 / 81 Limitations Usually one fragment program per surface Limited degree of NURBS surfaces (max. degree 7) Images are not artifact free - Newton Iteration does not always converge No acceleration structure for trimming - Currently for each fragment all trimming curves have to be tested - About 10 trimming curves are supported efficiently Manual Early-Z is not officially supported
77 Future Work 77 / 81 Future Work Requires DirectX10 graphics hardware Reliable intersection tests - Bezier Clipping - Subdivision-based methods - Resultant-based methods Acceleration structure for trimming - First experiments with a quad tree are promising NURBS with arbitrary degree
78 Conclusions 78 / 81 Conclusions Pixel-accurate rendering of NURBS surfaces without tessellation Real-time performance for medium size scenes Number of trimming curves limited Some image artifacts because of non-converging intersection tests Next generation of GPUs provides processing power and feature to overcome current limitations
79
80
81 Demo 81 / 81 DEMO Slides available at
Ray Casting of Trimmed NURBS Surfaces on the GPU
Ray Casting of Trimmed NURBS Surfaces on the GPU Hans-Friedrich Pabst Jan P. Springer André Schollmeyer Robert Lenhardt Christian Lessig Bernd Fröhlich Bauhaus University Weimar Faculty of Media Virtual
More informationCHAPTER 1 Graphics Systems and Models 3
?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........
More informationCS452/552; EE465/505. Clipping & Scan Conversion
CS452/552; EE465/505 Clipping & Scan Conversion 3-31 15 Outline! From Geometry to Pixels: Overview Clipping (continued) Scan conversion Read: Angel, Chapter 8, 8.1-8.9 Project#1 due: this week Lab4 due:
More informationThe Traditional Graphics Pipeline
Last Time? The Traditional Graphics Pipeline Participating Media Measuring BRDFs 3D Digitizing & Scattering BSSRDFs Monte Carlo Simulation Dipole Approximation Today Ray Casting / Tracing Advantages? Ray
More informationReal - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský
Real - Time Rendering Graphics pipeline Michal Červeňanský Juraj Starinský Overview History of Graphics HW Rendering pipeline Shaders Debugging 2 History of Graphics HW First generation Second generation
More informationApproximate Catmull-Clark Patches. Scott Schaefer Charles Loop
Approximate Catmull-Clark Patches Scott Schaefer Charles Loop Approximate Catmull-Clark Patches Scott Schaefer Charles Loop Catmull-Clark Surface ACC-Patches Polygon Models Prevalent in game industry Very
More informationRendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane
Rendering Pipeline Rendering Converting a 3D scene to a 2D image Rendering Light Camera 3D Model View Plane Rendering Converting a 3D scene to a 2D image Basic rendering tasks: Modeling: creating the world
More informationThe Traditional Graphics Pipeline
Final Projects Proposals due Thursday 4/8 Proposed project summary At least 3 related papers (read & summarized) Description of series of test cases Timeline & initial task assignment The Traditional Graphics
More informationThe Traditional Graphics Pipeline
Last Time? The Traditional Graphics Pipeline Reading for Today A Practical Model for Subsurface Light Transport, Jensen, Marschner, Levoy, & Hanrahan, SIGGRAPH 2001 Participating Media Measuring BRDFs
More information2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into
2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into the viewport of the current application window. A pixel
More informationComputer Graphics CS 543 Lecture 13a Curves, Tesselation/Geometry Shaders & Level of Detail
Computer Graphics CS 54 Lecture 1a Curves, Tesselation/Geometry Shaders & Level of Detail Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) So Far Dealt with straight lines
More informationInformation Coding / Computer Graphics, ISY, LiTH. Splines
28(69) Splines Originally a drafting tool to create a smooth curve In computer graphics: a curve built from sections, each described by a 2nd or 3rd degree polynomial. Very common in non-real-time graphics,
More informationINF3320 Computer Graphics and Discrete Geometry
INF3320 Computer Graphics and Discrete Geometry More smooth Curves and Surfaces Christopher Dyken, Michael Floater and Martin Reimers 10.11.2010 Page 1 More smooth Curves and Surfaces Akenine-Möller, Haines
More informationRasterization Overview
Rendering Overview The process of generating an image given a virtual camera objects light sources Various techniques rasterization (topic of this course) raytracing (topic of the course Advanced Computer
More informationFROM VERTICES TO FRAGMENTS. Lecture 5 Comp3080 Computer Graphics HKBU
FROM VERTICES TO FRAGMENTS Lecture 5 Comp3080 Computer Graphics HKBU OBJECTIVES Introduce basic implementation strategies Clipping Scan conversion OCTOBER 9, 2011 2 OVERVIEW At end of the geometric pipeline,
More informationOutline. The de Casteljau Algorithm. Properties of Piecewise Linear Interpolations. Recall: Linear Interpolation
CS 430/585 Computer Graphics I Curve Drawing Algorithms Week 4, Lecture 8 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing Laboratory Department of Computer Science Drexel
More informationOutline. Properties of Piecewise Linear Interpolations. The de Casteljau Algorithm. Recall: Linear Interpolation
CS 430/585 Computer Graphics I Curve Drawing Algorithms Week 4, Lecture 8 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing Laboratory Department of Computer Science Drexel
More informationOverview. Pipeline implementation I. Overview. Required Tasks. Preliminaries Clipping. Hidden Surface removal
Overview Pipeline implementation I Preliminaries Clipping Line clipping Hidden Surface removal Overview At end of the geometric pipeline, vertices have been assembled into primitives Must clip out primitives
More informationInteractive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL
International Edition Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL Sixth Edition Edward Angel Dave Shreiner Interactive Computer Graphics: A Top-Down Approach with Shader-Based
More informationCPSC GLOBAL ILLUMINATION
CPSC 314 21 GLOBAL ILLUMINATION Textbook: 20 UGRAD.CS.UBC.CA/~CS314 Mikhail Bessmeltsev ILLUMINATION MODELS/ALGORITHMS Local illumination - Fast Ignore real physics, approximate the look Interaction of
More informationPipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11
Pipeline Operations CS 4620 Lecture 11 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to pixels RASTERIZATION
More informationTSBK03 Screen-Space Ambient Occlusion
TSBK03 Screen-Space Ambient Occlusion Joakim Gebart, Jimmy Liikala December 15, 2013 Contents 1 Abstract 1 2 History 2 2.1 Crysis method..................................... 2 3 Chosen method 2 3.1 Algorithm
More informationgraphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1
graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time
More informationgraphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1
graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time
More informationHomework #2. Hidden Surfaces, Projections, Shading and Texture, Ray Tracing, and Parametric Curves
Computer Graphics Instructor: Brian Curless CSE 457 Spring 2013 Homework #2 Hidden Surfaces, Projections, Shading and Texture, Ray Tracing, and Parametric Curves Assigned: Sunday, May 12 th Due: Thursday,
More informationWerner Purgathofer
Einführung in Visual Computing 186.822 Visible Surface Detection Werner Purgathofer Visibility in the Rendering Pipeline scene objects in object space object capture/creation ti modeling viewing projection
More informationCS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST
CS 380 - GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1 Markus Hadwiger, KAUST Reading Assignment #2 (until Feb. 17) Read (required): GLSL book, chapter 4 (The OpenGL Programmable
More informationPipeline Operations. CS 4620 Lecture 14
Pipeline Operations CS 4620 Lecture 14 2014 Steve Marschner 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives
More informationModels and Architectures
Models and Architectures Objectives Learn the basic design of a graphics system Introduce graphics pipeline architecture Examine software components for an interactive graphics system 1 Image Formation
More informationIntroduction to Computer Graphics with WebGL
Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science Laboratory University of New Mexico Models and Architectures
More informationCS 130 Final. Fall 2015
CS 130 Final Fall 2015 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is trying
More informationCSE 167: Introduction to Computer Graphics Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015
CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015 Announcements Project 2 due tomorrow at 2pm Grading window
More informationModels and Architectures. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico
Models and Architectures Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico 1 Objectives Learn the basic design of a graphics system Introduce
More informationReview of Tuesday. ECS 175 Chapter 3: Object Representation
Review of Tuesday We have learnt how to rasterize lines and fill polygons Colors (and other attributes) are specified at vertices Interpolation required to fill polygon with attributes 26 Review of Tuesday
More informationModule Contact: Dr Stephen Laycock, CMP Copyright of the University of East Anglia Version 1
UNIVERSITY OF EAST ANGLIA School of Computing Sciences Main Series PG Examination 2013-14 COMPUTER GAMES DEVELOPMENT CMPSME27 Time allowed: 2 hours Answer any THREE questions. (40 marks each) Notes are
More informationComputergrafik. Matthias Zwicker. Herbst 2010
Computergrafik Matthias Zwicker Universität Bern Herbst 2010 Today Bump mapping Shadows Shadow mapping Shadow mapping in OpenGL Bump mapping Surface detail is often the result of small perturbations in
More informationComputer Graphics I Lecture 11
15-462 Computer Graphics I Lecture 11 Midterm Review Assignment 3 Movie Midterm Review Midterm Preview February 26, 2002 Frank Pfenning Carnegie Mellon University http://www.cs.cmu.edu/~fp/courses/graphics/
More information3D Rasterization II COS 426
3D Rasterization II COS 426 3D Rendering Pipeline (for direct illumination) 3D Primitives Modeling Transformation Lighting Viewing Transformation Projection Transformation Clipping Viewport Transformation
More informationLecture 4: Geometry Processing. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)
Lecture 4: Processing Kayvon Fatahalian CMU 15-869: Graphics and Imaging Architectures (Fall 2011) Today Key per-primitive operations (clipping, culling) Various slides credit John Owens, Kurt Akeley,
More informationApplications of Explicit Early-Z Culling
Applications of Explicit Early-Z Culling Jason L. Mitchell ATI Research Pedro V. Sander ATI Research Introduction In past years, in the SIGGRAPH Real-Time Shading course, we have covered the details of
More informationOUTLINE. Learn the basic design of a graphics system Introduce pipeline architecture Examine software components for a graphics system
GRAPHICS PIPELINE 1 OUTLINE Learn the basic design of a graphics system Introduce pipeline architecture Examine software components for a graphics system 2 IMAGE FORMATION REVISITED Can we mimic the synthetic
More informationReal-Time Rendering (Echtzeitgraphik) Michael Wimmer
Real-Time Rendering (Echtzeitgraphik) Michael Wimmer wimmer@cg.tuwien.ac.at Walking down the graphics pipeline Application Geometry Rasterizer What for? Understanding the rendering pipeline is the key
More informationMany rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.
1 2 Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters. Crowd rendering in large environments presents a number of challenges,
More informationClipping. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015
Clipping 1 Objectives Clipping lines First of implementation algorithms Clipping polygons (next lecture) Focus on pipeline plus a few classic algorithms 2 Clipping 2D against clipping window 3D against
More informationLine Drawing. Introduction to Computer Graphics Torsten Möller / Mike Phillips. Machiraju/Zhang/Möller
Line Drawing Introduction to Computer Graphics Torsten Möller / Mike Phillips Rendering Pipeline Hardware Modelling Transform Visibility Illumination + Shading Perception, Color Interaction Texture/ Realism
More informationS U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T
S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T Copyright 2018 Sung-eui Yoon, KAIST freely available on the internet http://sglab.kaist.ac.kr/~sungeui/render
More informationCOMPUTER AIDED GEOMETRIC DESIGN. Thomas W. Sederberg
COMPUTER AIDED GEOMETRIC DESIGN Thomas W. Sederberg January 31, 2011 ii T. W. Sederberg iii Preface This semester is the 24 th time I have taught a course at Brigham Young University titled, Computer Aided
More informationReal - Time Rendering. Pipeline optimization. Michal Červeňanský Juraj Starinský
Real - Time Rendering Pipeline optimization Michal Červeňanský Juraj Starinský Motivation Resolution 1600x1200, at 60 fps Hw power not enough Acceleration is still necessary 3.3.2010 2 Overview Application
More informationCSE 167: Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012
CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Homework project #2 due this Friday, October
More informationBeginning Direct3D Game Programming: 1. The History of Direct3D Graphics
Beginning Direct3D Game Programming: 1. The History of Direct3D Graphics jintaeks@gmail.com Division of Digital Contents, DongSeo University. April 2016 Long time ago Before Windows, DOS was the most popular
More informationCS451Real-time Rendering Pipeline
1 CS451Real-time Rendering Pipeline JYH-MING LIEN DEPARTMENT OF COMPUTER SCIENCE GEORGE MASON UNIVERSITY Based on Tomas Akenine-Möller s lecture note You say that you render a 3D 2 scene, but what does
More informationFor each question, indicate whether the statement is true or false by circling T or F, respectively.
True/False For each question, indicate whether the statement is true or false by circling T or F, respectively. 1. (T/F) Rasterization occurs before vertex transformation in the graphics pipeline. 2. (T/F)
More informationCS 354R: Computer Game Technology
CS 354R: Computer Game Technology Texture and Environment Maps Fall 2018 Texture Mapping Problem: colors, normals, etc. are only specified at vertices How do we add detail between vertices without incurring
More informationGraphics Hardware. Instructor Stephen J. Guy
Instructor Stephen J. Guy Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability! Programming Examples Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability!
More informationReal-Time Reyes: Programmable Pipelines and Research Challenges. Anjul Patney University of California, Davis
Real-Time Reyes: Programmable Pipelines and Research Challenges Anjul Patney University of California, Davis Real-Time Reyes-Style Adaptive Surface Subdivision Anjul Patney and John D. Owens SIGGRAPH Asia
More informationDirect Rendering. Direct Rendering Goals
May 2, 2005 Goals General Goals Small memory footprint Fast rendering High-quality results identical to those of Saffron V1 using distance-based anti-aliasing and alignment zones Goals Specific Goals Avoid
More informationLecture 11: Ray tracing (cont.)
Interactive Computer Graphics Ray tracing - Summary Lecture 11: Ray tracing (cont.) Graphics Lecture 10: Slide 1 Some slides adopted from H. Pfister, Harvard Graphics Lecture 10: Slide 2 Ray tracing -
More informationTopics. From vertices to fragments
Topics From vertices to fragments From Vertices to Fragments Assign a color to every pixel Pass every object through the system Required tasks: Modeling Geometric processing Rasterization Fragment processing
More informationComputer Graphics 1. Chapter 2 (May 19th, 2011, 2-4pm): 3D Modeling. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2011
Computer Graphics 1 Chapter 2 (May 19th, 2011, 2-4pm): 3D Modeling 1 The 3D rendering pipeline (our version for this class) 3D models in model coordinates 3D models in world coordinates 2D Polygons in
More informationRobust Stencil Shadow Volumes. CEDEC 2001 Tokyo, Japan
Robust Stencil Shadow Volumes CEDEC 2001 Tokyo, Japan Mark J. Kilgard Graphics Software Engineer NVIDIA Corporation 2 Games Begin to Embrace Robust Shadows 3 John Carmack s new Doom engine leads the way
More informationLast Time. Why are Shadows Important? Today. Graphics Pipeline. Clipping. Rasterization. Why are Shadows Important?
Last Time Modeling Transformations Illumination (Shading) Real-Time Shadows Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Graphics Pipeline Clipping Rasterization
More informationComputer Graphics. Bing-Yu Chen National Taiwan University The University of Tokyo
Computer Graphics Bing-Yu Chen National Taiwan University The University of Tokyo Hidden-Surface Removal Back-Face Culling The Depth-Sort Algorithm Binary Space-Partitioning Trees The z-buffer Algorithm
More informationThe Graphics Pipeline
The Graphics Pipeline Ray Tracing: Why Slow? Basic ray tracing: 1 ray/pixel Ray Tracing: Why Slow? Basic ray tracing: 1 ray/pixel But you really want shadows, reflections, global illumination, antialiasing
More informationVisible-Surface Detection Methods. Chapter? Intro. to Computer Graphics Spring 2008, Y. G. Shin
Visible-Surface Detection Methods Chapter? Intro. to Computer Graphics Spring 2008, Y. G. Shin The Visibility Problem [Problem Statement] GIVEN: a set of 3-D surfaces, a projection from 3-D to 2-D screen,
More informationFall CSCI 420: Computer Graphics. 7.1 Rasterization. Hao Li.
Fall 2015 CSCI 420: Computer Graphics 7.1 Rasterization Hao Li http://cs420.hao-li.com 1 Rendering Pipeline 2 Outline Scan Conversion for Lines Scan Conversion for Polygons Antialiasing 3 Rasterization
More informationRay tracing. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 3/19/07 1
Ray tracing Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 3/19/07 1 From last time Hidden surface removal Painter s algorithm Clipping algorithms Area subdivision BSP trees Z-Buffer
More informationChapter 7 - Light, Materials, Appearance
Chapter 7 - Light, Materials, Appearance Types of light in nature and in CG Shadows Using lights in CG Illumination models Textures and maps Procedural surface descriptions Literature: E. Angel/D. Shreiner,
More informationCS 130 Exam I. Fall 2015
S 3 Exam I Fall 25 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is trying
More informationPractical Shadow Mapping
Practical Shadow Mapping Stefan Brabec Thomas Annen Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken, Germany Abstract In this paper we propose several methods that can greatly improve
More informationAdvanced Shading I: Shadow Rasterization Techniques
Advanced Shading I: Shadow Rasterization Techniques Shadow Terminology umbra: light totally blocked penumbra: light partially blocked occluder: object blocking light Shadow Terminology umbra: light totally
More informationFor Intuition about Scene Lighting. Today. Limitations of Planar Shadows. Cast Shadows on Planar Surfaces. Shadow/View Duality.
Last Time Modeling Transformations Illumination (Shading) Real-Time Shadows Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Graphics Pipeline Clipping Rasterization
More informationIllumination and Geometry Techniques. Karljohan Lundin Palmerius
Illumination and Geometry Techniques Karljohan Lundin Palmerius Objectives Complex geometries Translucency Huge areas Really nice graphics! Shadows Graceful degradation Acceleration Optimization Straightforward
More informationInterpolation using scanline algorithm
Interpolation using scanline algorithm Idea: Exploit knowledge about already computed color values. Traverse projected triangle top-down using scanline. Compute start and end color value of each pixel
More informationA Trip Down The (2011) Rasterization Pipeline
A Trip Down The (2011) Rasterization Pipeline Aaron Lefohn - Intel / University of Washington Mike Houston AMD / Stanford 1 This talk Overview of the real-time rendering pipeline available in ~2011 corresponding
More informationCSE 167: Introduction to Computer Graphics Lecture #6: Lights. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2014
CSE 167: Introduction to Computer Graphics Lecture #6: Lights Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2014 Announcements Project 2 due Friday, Oct. 24 th Midterm Exam
More informationFrom Vertices To Fragments-1
From Vertices To Fragments-1 1 Objectives Clipping Line-segment clipping polygon clipping 2 Overview At end of the geometric pipeline, vertices have been assembled into primitives Must clip out primitives
More informationComputer Graphics 1. Chapter 7 (June 17th, 2010, 2-4pm): Shading and rendering. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2010
Computer Graphics 1 Chapter 7 (June 17th, 2010, 2-4pm): Shading and rendering 1 The 3D rendering pipeline (our version for this class) 3D models in model coordinates 3D models in world coordinates 2D Polygons
More informationSung-Eui Yoon ( 윤성의 )
CS380: Computer Graphics Ray Tracing Sung-Eui Yoon ( 윤성의 ) Course URL: http://sglab.kaist.ac.kr/~sungeui/cg/ Class Objectives Understand overall algorithm of recursive ray tracing Ray generations Intersection
More informationVIII. Visibility algorithms (II)
VIII. Visibility algorithms (II) Hybrid algorithsms: priority list algorithms Find the object visibility Combine the operations in object space (examples: comparisons and object partitioning) with operations
More informationCSCI 420 Computer Graphics Lecture 14. Rasterization. Scan Conversion Antialiasing [Angel Ch. 6] Jernej Barbic University of Southern California
CSCI 420 Computer Graphics Lecture 14 Rasterization Scan Conversion Antialiasing [Angel Ch. 6] Jernej Barbic University of Southern California 1 Rasterization (scan conversion) Final step in pipeline:
More informationCurves and Surfaces Computer Graphics I Lecture 9
15-462 Computer Graphics I Lecture 9 Curves and Surfaces Parametric Representations Cubic Polynomial Forms Hermite Curves Bezier Curves and Surfaces [Angel 10.1-10.6] February 19, 2002 Frank Pfenning Carnegie
More informationCS770/870 Fall 2015 Advanced GLSL
Expanded Graphics Pipeline CS770/870 Fall 2015 Advanced GLSL Geometry definition Shaders can actually be inserted in more places in pipeline Vertex and fragment shaders are most important Vertex shader
More informationClipping. CSC 7443: Scientific Information Visualization
Clipping Clipping to See Inside Obscuring critical information contained in a volume data Contour displays show only exterior visible surfaces Isosurfaces can hide other isosurfaces Other displays can
More information2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT
COMP27112 Computer Graphics and Image Processing 2: Introducing image synthesis Toby.Howard@manchester.ac.uk 1 Introduction In these notes we ll cover: Some orientation how did we get here? Graphics system
More informationVisibility: Z Buffering
University of British Columbia CPSC 414 Computer Graphics Visibility: Z Buffering Week 1, Mon 3 Nov 23 Tamara Munzner 1 Poll how far are people on project 2? preferences for Plan A: status quo P2 stays
More informationLine Drawing. Foundations of Computer Graphics Torsten Möller
Line Drawing Foundations of Computer Graphics Torsten Möller Rendering Pipeline Hardware Modelling Transform Visibility Illumination + Shading Perception, Interaction Color Texture/ Realism Reading Angel
More informationCS-184: Computer Graphics
CS-184: Computer Graphics Lecture #12: Curves and Surfaces Prof. James O Brien University of California, Berkeley V2007-F-12-1.0 Today General curve and surface representations Splines and other polynomial
More informationCSE528 Computer Graphics: Theory, Algorithms, and Applications
CSE528 Computer Graphics: Theory, Algorithms, and Applications Hong Qin State University of New York at Stony Brook (Stony Brook University) Stony Brook, New York 11794--4400 Tel: (631)632-8450; Fax: (631)632-8334
More informationSUMMARY. CS380: Introduction to Computer Graphics Ray tracing Chapter 20. Min H. Kim KAIST School of Computing 18/05/29. Modeling
CS380: Introduction to Computer Graphics Ray tracing Chapter 20 Min H. Kim KAIST School of Computing Modeling SUMMARY 2 1 Types of coordinate function Explicit function: Line example: Implicit function:
More informationRay Casting on Programmable Graphics Hardware. Martin Kraus PURPL group, Purdue University
Ray Casting on Programmable Graphics Hardware Martin Kraus PURPL group, Purdue University Overview Parallel volume rendering with a single GPU Implementing ray casting for a GPU Basics Optimizations Published
More informationRasterization. Rasterization (scan conversion) Digital Differential Analyzer (DDA) Rasterizing a line. Digital Differential Analyzer (DDA)
CSCI 420 Computer Graphics Lecture 14 Rasterization Jernej Barbic University of Southern California Scan Conversion Antialiasing [Angel Ch. 6] Rasterization (scan conversion) Final step in pipeline: rasterization
More informationL10 Layered Depth Normal Images. Introduction Related Work Structured Point Representation Boolean Operations Conclusion
L10 Layered Depth Normal Images Introduction Related Work Structured Point Representation Boolean Operations Conclusion 1 Introduction Purpose: using the computational power on GPU to speed up solid modeling
More informationProgrammable Shaders for Deformation Rendering
Programmable Shaders for Deformation Rendering Carlos D. Correa, Deborah Silver Rutgers, The State University of New Jersey Motivation We present a different way of obtaining mesh deformation. Not a modeling,
More informationClass of Algorithms. Visible Surface Determination. Back Face Culling Test. Back Face Culling: Object Space v. Back Face Culling: Object Space.
Utah School of Computing Spring 13 Class of Algorithms Lecture Set Visible Surface Determination CS56 Computer Graphics From Rich Riesenfeld Spring 13 Object (Model) Space Algorithms Work in the model
More informationCurves and Surfaces 1
Curves and Surfaces 1 Representation of Curves & Surfaces Polygon Meshes Parametric Cubic Curves Parametric Bi-Cubic Surfaces Quadric Surfaces Specialized Modeling Techniques 2 The Teapot 3 Representing
More informationHardware-driven Visibility Culling Jeong Hyun Kim
Hardware-driven Visibility Culling Jeong Hyun Kim KAIST (Korea Advanced Institute of Science and Technology) Contents Introduction Background Clipping Culling Z-max (Z-min) Filter Programmable culling
More informationLast week. Machiraju/Zhang/Möller
Last week Machiraju/Zhang/Möller 1 Overview of a graphics system Output device Input devices Image formed and stored in frame buffer Machiraju/Zhang/Möller 2 Introduction to CG Torsten Möller 3 Ray tracing:
More informationCS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside
CS230 : Computer Graphics Lecture 4 Tamar Shinar Computer Science & Engineering UC Riverside Shadows Shadows for each pixel do compute viewing ray if ( ray hits an object with t in [0, inf] ) then compute
More informationHidden surface removal. Computer Graphics
Lecture Hidden Surface Removal and Rasterization Taku Komura Hidden surface removal Drawing polygonal faces on screen consumes CPU cycles Illumination We cannot see every surface in scene We don t want
More informationComputer Graphics Shadow Algorithms
Computer Graphics Shadow Algorithms Computer Graphics Computer Science Department University of Freiburg WS 11 Outline introduction projection shadows shadow maps shadow volumes conclusion Motivation shadows
More information