Direct Rendering of Trimmed NURBS Surfaces


 Clifford Bond
 7 months 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 nontriangular 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 Pixelaccurate  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 Pixelaccurate  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 Pixelaccurate  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 Nodebased 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 subpatches 2. A Convex hull is computed for each subpatch 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 PointInPolygon test
17 Preprocessing 17 / 81 Preprocessing 1. Generation of convex hulls  Conversion of NURBS surfaces into Bézier patches  Subdivision of Bézier patches  Userprovided 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. Viewindependent (u,v) Texturing  The (u,v) parameters as computed during the preprocessing are interpolated
33 Ray Patch Intersection 33 / 81 Initial Values 2.1. Viewindependent (u,v) Texturing  The (u,v) parameters as computed during the preprocessing are interpolated 2.2. Viewdependent (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 pointinpolygon 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 subdivisionbased 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, nonparametric 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 subpatch
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 EarlyZ  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 EarlyZ  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 EarlyZ 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 memorycache 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 fronttoback 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 subpatches Patches Sub Patches Number of Iterations
66 Results 66 / 81 One trimming curve Different number of subpatches Patches Sub Patches Number of Iterations
67 67 / 81 Results Different number of trimming curves 2048 subpatches
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 Texturebased, often high resolutions necessary GPUCast Seamless Pixelaccurate (some artifacts through nonconvergence) Pixelaccurate
74 Comparison 74 / 81 Comparison with Guthe et al. [2005] Guthe et al. GPUCast Number of trims Unlimited Currently max. 10 MultiGPU setups Does not scale Scales well Quality at surface intersections Possible model complexity Appropriate tessellation factor hard to determine Complex models possible but realtime 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 EarlyZ is not officially supported
77 Future Work 77 / 81 Future Work Requires DirectX10 graphics hardware Reliable intersection tests  Bezier Clipping  Subdivisionbased methods  Resultantbased methods Acceleration structure for trimming  First experiments with a quad tree are promising NURBS with arbitrary degree
78 Conclusions 78 / 81 Conclusions Pixelaccurate rendering of NURBS surfaces without tessellation Realtime performance for medium size scenes Number of trimming curves limited Some image artifacts because of nonconverging 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
The 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 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 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 informationTSBK03 ScreenSpace Ambient Occlusion
TSBK03 ScreenSpace 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 objectorder processing primitives processed oneatatime
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 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. 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 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 informationClipping. Angel and Shreiner: Interactive Computer Graphics 7E AddisonWesley 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 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 informationComputer Graphics 1. Chapter 2 (May 19th, 2011, 24pm): 3D Modeling. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2011
Computer Graphics 1 Chapter 2 (May 19th, 2011, 24pm): 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 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 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 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 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 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 ZBuffer
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 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 informationFall CSCI 420: Computer Graphics. 7.1 Rasterization. Hao Li.
Fall 2015 CSCI 420: Computer Graphics 7.1 Rasterization Hao Li http://cs420.haoli.com 1 Rendering Pipeline 2 Outline Scan Conversion for Lines Scan Conversion for Polygons Antialiasing 3 Rasterization
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 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 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 informationInterpolation using scanline algorithm
Interpolation using scanline algorithm Idea: Exploit knowledge about already computed color values. Traverse projected triangle topdown using scanline. Compute start and end color value of each pixel
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 informationCurves and Surfaces Computer Graphics I Lecture 9
15462 Computer Graphics I Lecture 9 Curves and Surfaces Parametric Representations Cubic Polynomial Forms Hermite Curves Bezier Curves and Surfaces [Angel 10.110.6] February 19, 2002 Frank Pfenning Carnegie
More informationComputer Graphics 1. Chapter 7 (June 17th, 2010, 24pm): Shading and rendering. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2010
Computer Graphics 1 Chapter 7 (June 17th, 2010, 24pm): 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 informationCurves and Surfaces 1
Curves and Surfaces 1 Representation of Curves & Surfaces Polygon Meshes Parametric Cubic Curves Parametric BiCubic Surfaces Quadric Surfaces Specialized Modeling Techniques 2 The Teapot 3 Representing
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 informationMotivation MGB Agenda. Compression. Scalability. Scalability. Motivation. Tessellation Basics. DX11 Tessellation Pipeline
MGB 005 Agenda Motivation Tessellation Basics DX Tessellation Pipeline Instanced Tessellation Instanced Tessellation in DX0 Displacement Mapping Content Creation Compression Motivation Save memory and
More informationCentral issues in modelling
Central issues in modelling Construct families of curves, surfaces and volumes that can represent common objects usefully; are easy to interact with; interaction includes: manual modelling; fitting to
More informationOrder Independent Transparency with Dual Depth Peeling. Louis Bavoil, Kevin Myers
Order Independent Transparency with Dual Depth Peeling Louis Bavoil, Kevin Myers Document Change History Version Date Responsible Reason for Change 1.0 February 9 2008 Louis Bavoil Initial release Abstract
More informationGraphics Processing Unit Architecture (GPU Arch)
Graphics Processing Unit Architecture (GPU Arch) With a focus on NVIDIA GeForce 6800 GPU 1 What is a GPU From Wikipedia : A specialized processor efficient at manipulating and displaying computer graphics
More informationChapter 43D Modeling
Chapter 43D Modeling Polygon Meshes Geometric Primitives Interpolation Curves Levels Of Detail (LOD) Constructive Solid Geometry (CSG) Extrusion & Rotation Volume and Pointbased Graphics 1 The 3D rendering
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 informationC P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev
C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE UGRAD.CS.UBC.C A/~CS314 Mikhail Bessmeltsev 1 WHAT IS RENDERING? Generating image from a 3D scene 2 WHAT IS RENDERING? Generating image
More informationLecture 25 of 41. Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees
Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://bit.ly/hgvxlh / http://bit.ly/evizre Public
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 informationLecture 13: Reyes Architecture and Implementation. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)
Lecture 13: Reyes Architecture and Implementation Kayvon Fatahalian CMU 15869: Graphics and Imaging Architectures (Fall 2011) A gallery of images rendered using Reyes Image credit: Lucasfilm (Adventures
More informationIntro to Modeling Modeling in 3D
Intro to Modeling Modeling in 3D Polygon sets can approximate more complex shapes as discretized surfaces 2 1 2 3 Curve surfaces in 3D Sphere, ellipsoids, etc Curved Surfaces Modeling in 3D ) ( 2 2 2 2
More informationLecture 2. Shaders, GLSL and GPGPU
Lecture 2 Shaders, GLSL and GPGPU Is it interesting to do GPU computing with graphics APIs today? Lecture overview Why care about shaders for computing? Shaders for graphics GLSL Computing with shaders
More informationIntroduction to 3D Graphics
Graphics Without Polygons Volume Rendering May 11, 2010 So Far Volumetric Rendering Techniques Misc. So Far Extended the Fixed Function Pipeline with a Programmable Pipeline Programming the pipeline is
More informationApplications of Explicit EarlyZ Z Culling. Jason Mitchell ATI Research
Applications of Explicit EarlyZ Z Culling Jason Mitchell ATI Research Outline Architecture Hardware depth culling Applications Volume Ray Casting Skin Shading Fluid Flow Deferred Shading EarlyZ In past
More informationSoft Particles. Tristan Lorach
Soft Particles Tristan Lorach tlorach@nvidia.com January 2007 Document Change History Version Date Responsible Reason for Change 1 01/17/07 Tristan Lorach Initial release January 2007 ii Abstract Before:
More informationCurves & Surfaces. Last Time? Progressive Meshes. Selective Refinement. Adjacency Data Structures. Mesh Simplification. Mesh Simplification
Last Time? Adjacency Data Structures Curves & Surfaces Geometric & topologic information Dynamic allocation Efficiency of access Mesh Simplification edge collapse/vertex split geomorphs progressive transmission
More informationCMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker
CMSC427 Advanced shading getting global illumination by local methods Credit: slides Prof. Zwicker Topics Shadows Environment maps Reflection mapping Irradiance environment maps Ambient occlusion Reflection
More informationSpring 2009 Prof. Hyesoon Kim
Spring 2009 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on
More informationRealTime Non Photorealistic Rendering
RealTime Non Photorealistic Rendering Presented by: Qing Hu LIAO SOCS, McGill Feb 1, 2005 Index Introduction Motivation Appel s Algorithm Improving Schema Rendering Result Economy of line A great deal
More information3D Rendering Pipeline (for direct illumination)
Clipping 3D Rendering Pipeline (for direct illumination) 3D Primitives 3D Modeling Coordinates Modeling Transformation Lighting 3D Camera Coordinates Projection Transformation Clipping 2D Screen Coordinates
More information Rasterization. Geometry. Scan Conversion. Rasterization
Computer Graphics  The graphics pipeline  Geometry Modelview Geometry Processing Lighting Perspective Clipping Scan Conversion Texturing Fragment Tests Blending Framebuffer Fragment Processing  So far,
More informationCould you make the XNA functions yourself?
1 Could you make the XNA functions yourself? For the second and especially the third assignment, you need to globally understand what s going on inside the graphics hardware. You will write shaders, which
More informationScene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development
Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development Chap. 5 Scene Management Overview Scene Management vs Rendering This chapter is about rendering
More informationVisibility and Occlusion Culling
Visibility and Occlusion Culling CS535 Fall 2014 Daniel G. Aliaga Department of Computer Science Purdue University [some slides based on those of Benjamin Mora] Why? To avoid processing geometry that does
More informationOverview: Ray Tracing & The Perspective Projection Pipeline
Overview: Ray Tracing & The Perspective Projection Pipeline Lecture #2 Thursday, August 28 2014 About this Lecture! This is an overview.! Think of it as a quick tour moving fast.! Some parts, e.g. math,
More informationIntroduction to Shaders.
Introduction to Shaders Marco Benvegnù hiforce@gmx.it www.benve.org Summer 2005 Overview Rendering pipeline Shaders concepts Shading Languages Shading Tools Effects showcase Setup of a Shader in OpenGL
More informationLecture 9: Deferred Shading. Visual Computing Systems CMU , Fall 2013
Lecture 9: Deferred Shading Visual Computing Systems The course so far The realtime graphics pipeline abstraction Principle graphics abstractions Algorithms and modern high performance implementations
More informationDeus Ex is in the Details
Deus Ex is in the Details Augmenting the PC graphics of Deus Ex: Human Revolution using DirectX 11 technology Matthijs De Smedt Graphics Programmer, Nixxes Software Overview Introduction DirectX 11 implementation
More informationCS GAME PROGRAMMING Question bank
CS6006  GAME PROGRAMMING Question bank Part A Unit I 1. List the different types of coordinate systems. 2. What is ray tracing? Mention some applications of ray tracing. 3. Discuss the stages involved
More informationTriangle Rasterization
Triangle Rasterization Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 2/07/07 1 From last time Lines and planes Culling View frustum culling Backface culling Occlusion culling
More informationVolume Shadows Tutorial Nuclear / the Lab
Volume Shadows Tutorial Nuclear / the Lab Introduction As you probably know the most popular rendering technique, when speed is more important than quality (i.e. realtime rendering), is polygon rasterization.
More informationSpatial Data Structures
CSCI 480 Computer Graphics Lecture 7 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids BSP Trees [Ch. 0.] March 8, 0 Jernej Barbic University of Southern California http://wwwbcf.usc.edu/~jbarbic/cs480s/
More informationIntroduction to Geometry. Computer Graphics CMU /15662
Introduction to Geometry Computer Graphics CMU 15462/15662 Assignment 2: 3D Modeling You will be able to create your own models (This mesh was created in Scotty3D in about 5 minutes... you can do much
More informationTopic 0. Introduction: What Is Computer Graphics? CSC 418/2504: Computer Graphics EF432. Today s Topics. What is Computer Graphics?
EF432 Introduction to spagetti and meatballs CSC 418/2504: Computer Graphics Course web site (includes course information sheet): http://www.dgp.toronto.edu/~karan/courses/418/ Instructors: L0101, W 122pm
More informationSpring 2011 Prof. Hyesoon Kim
Spring 2011 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on
More informationGPU Memory Model. Adapted from:
GPU Memory Model Adapted from: Aaron Lefohn University of California, Davis With updates from slides by Suresh Venkatasubramanian, University of Pennsylvania Updates performed by Gary J. Katz, University
More informationSpatial Data Structures
15462 Computer Graphics I Lecture 17 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) April 1, 2003 [Angel 9.10] Frank Pfenning Carnegie
More informationComputer Graphics. BingYu Chen National Taiwan University
Computer Graphics BingYu Chen National Taiwan University VisibleSurface Determination BackFace Culling The DepthSort Algorithm Binary SpacePartitioning Trees The zbuffer Algorithm ScanLine Algorithm
More informationDeferred Rendering Due: Wednesday November 15 at 10pm
CMSC 23700 Autumn 2017 Introduction to Computer Graphics Project 4 November 2, 2017 Deferred Rendering Due: Wednesday November 15 at 10pm 1 Summary This assignment uses the same application architecture
More informationEfficient GPU Rendering of Subdivision Surfaces. Tim Foley,
Efficient GPU Rendering of Subdivision Surfaces Tim Foley, 20170302 Collaborators Activision Wade Brainerd Stanford Matthias Nießner NVIDIA Manuel Kraemer Henry Moreton 2 Subdivision surfaces are a powerful
More informationComputergrafik. Matthias Zwicker Universität Bern Herbst 2016
Computergrafik Matthias Zwicker Universität Bern Herbst 2016 Today Curves NURBS Surfaces Parametric surfaces Bilinear patch Bicubic Bézier patch Advanced surface modeling 2 Piecewise Bézier curves Each
More informationIntroduction to the Direct3D 11 Graphics Pipeline
Introduction to the Direct3D 11 Graphics Pipeline Kevin Gee  XNA Developer Connection Microsoft Corporation 2008 NVIDIA Corporation. Direct3D 11 focuses on Key Takeaways Increasing scalability, Improving
More informationMattan Erez. The University of Texas at Austin
EE382V: Principles in Computer Architecture Parallelism and Locality Fall 2008 Lecture 10 The Graphics Processing Unit Mattan Erez The University of Texas at Austin Outline What is a GPU? Why should we
More informationComputer Graphics. Lecture 9 Environment mapping, Mirroring
Computer Graphics Lecture 9 Environment mapping, Mirroring Today Environment Mapping Introduction Cubic mapping Sphere mapping refractive mapping Mirroring Introduction reflection first stencil buffer
More informationReal Time Rendering of Expensive Small Environments Colin Branch Stetson University
Real Time Rendering of Expensive Small Environments Colin Branch Stetson University Abstract One of the major goals of computer graphics is the rendering of realistic environments in realtime. One approach
More informationSurface Graphics. 200 polys 1,000 polys 15,000 polys. an empty foot.  a mesh of spline patches:
Surface Graphics Objects are explicitely defined by a surface or boundary representation (explicit inside vs outside) This boundary representation can be given by:  a mesh of polygons: 200 polys 1,000
More informationVolume Graphics Introduction
HighQuality Volume Graphics on Consumer PC Hardware Volume Graphics Introduction Joe Kniss Gordon Kindlmann Markus Hadwiger Christof RezkSalama Rüdiger Westermann Motivation (1) Motivation (2) Scientific
More informationAdvanced TextureMapping Curves and Curved Surfaces. PreLecture Business. Texture Modes. Texture Modes. Review quiz
Advanced TextureMapping Curves and Curved Surfaces Preecture Business loadtexture example midterm handed bac, code posted (still) get going on pp3! more on texturing review quiz CS148: Intro to CG Instructor:
More informationCSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling
CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015 Announcements Project 4 due tomorrow Project
More informationClipping and Scan Conversion
15462 Computer Graphics I Lecture 14 Clipping and Scan Conversion Line Clipping Polygon Clipping Clipping in Three Dimensions Scan Conversion (Rasterization) [Angel 7.37.6, 7.87.9] March 19, 2002 Frank
More informationCurves and Surfaces 2
Curves and Surfaces 2 Computer Graphics Lecture 17 Taku Komura Today More about Bezier and Bsplines de Casteljau s algorithm BSpline : General form de Boor s algorithm Knot insertion NURBS Subdivision
More informationCSE 167: Lecture #8: GLSL. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012
CSE 167: Introduction to Computer Graphics Lecture #8: GLSL Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Homework project #4 due Friday, November 2 nd Introduction:
More informationMIT EECS 6.837, Teller and Durand 1
MIT EECS 6.837, Teller and Durand 1 Clipping MIT EECS 6.837 Frédo Durand and Seth Teller Some slides and images courtesy of Leonard McMillan MIT EECS 6.837, Teller and Durand 2 Administrative Assignment
More informationGraphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multithreaded manycore. Dedicated to 2D and 3D graphics
Why GPU? Chapter 1 Graphics Hardware Graphics Processing Unit (GPU) is a Subsidiary hardware With massively multithreaded manycore Dedicated to 2D and 3D graphics Special purpose low functionality, high
More informationDirect Evaluation of NURBS Curves and Surfaces on the GPU
Direct Evaluation of NURBS Curves and Surfaces on the GPU Adarsh Krishnamurthy, Rahul Khardekar and Sara McMains Computer Aided Design and Manufacturing Lab University of California, Berkeley Figure 1:
More informationSingle Scattering in Refractive Media with Triangle Mesh Boundaries
Single Scattering in Refractive Media with Triangle Mesh Boundaries Bruce Walter Shuang Zhao Nicolas Holzschuch Kavita Bala Cornell Univ. Cornell Univ. Grenoble Univ. Cornell Univ. Presented at SIGGRAPH
More informationSpatial Data Structures
Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) [Angel 9.10] Outline Ray tracing review what rays matter? Ray tracing speedup faster
More informationComputer Graphics.  Rasterization  Philipp Slusallek
Computer Graphics  Rasterization  Philipp Slusallek Rasterization Definition Given some geometry (point, 2D line, circle, triangle, polygon, ), specify which pixels of a raster display each primitive
More informationAccelerating RayTracing
Lecture 9: Accelerating RayTracing Computer Graphics and Imaging UC Berkeley CS184/284A, Spring 2016 Course Roadmap Rasterization Pipeline Core Concepts Sampling Antialiasing Transforms Geometric Modeling
More informationComputergrafik. Matthias Zwicker. Herbst 2010
Computergrafik Matthias Zwicker Universität Bern Herbst 2010 Today Curves NURBS Surfaces Parametric surfaces Bilinear patch Bicubic Bézier patch Advanced surface modeling Piecewise Bézier curves Each segment
More informationOrthogonal Projection Matrices. Angel and Shreiner: Interactive Computer Graphics 7E AddisonWesley 2015
Orthogonal Projection Matrices 1 Objectives Derive the projection matrices used for standard orthogonal projections Introduce oblique projections Introduce projection normalization 2 Normalization Rather
More informationA Bandwidth Effective Rendering Scheme for 3D Texturebased Volume Visualization on GPU
for 3D Texturebased Volume Visualization on GPU WonJong Lee, TackDon Han Media System Laboratory (http://msl.yonsei.ac.k) Dept. of Computer Science, Yonsei University, Seoul, Korea Contents Background
More informationCOMPUTER GRAPHICS COURSE. Rendering Pipelines
COMPUTER GRAPHICS COURSE Rendering Pipelines Georgios Papaioannou  2014 A Rendering Pipeline Rendering or Graphics Pipeline is the sequence of steps that we use to create the final image Many graphics/rendering
More informationEvolution of GPUs Chris Seitz
Evolution of GPUs Chris Seitz Overview Concepts: Realtime rendering Hardware graphics pipeline Evolution of the PC hardware graphics pipeline: 19951998: Texture mapping and zbuffer 1998: Multitexturing
More informationGraphics Architectures and OpenCL. Michael Doggett Department of Computer Science Lund university
Graphics Architectures and OpenCL Michael Doggett Department of Computer Science Lund university Overview Parallelism Radeon 5870 Tiled Graphics Architectures Important when Memory and Bandwidth limited
More informationRealTime Shadows. Computer Graphics. MIT EECS Durand 1
RealTime Shadows Computer Graphics MIT EECS 6.837 Durand 1 Why are Shadows Important? Depth cue Scene Lighting Realism Contact points 2 Shadows as a Depth Cue source unknown. All rights reserved. This
More informationShading Shades. Frank Jargstorff. June 1, Abstract
Shading Shades Frank Jargstorff fjargstorff@nvidia.com June 1, 2004 Abstract Procedural material shaders continue to pop up since the advent of fragment programmability. Most of these shaders concentrate
More information03 RENDERING PART TWO
03 RENDERING PART TWO WHAT WE HAVE SO FAR: GEOMETRY AFTER TRANSFORMATION AND SOME BASIC CLIPPING / CULLING TEXTURES AND MAPPING MATERIAL VISUALLY DISTINGUISHES 2 OBJECTS WITH IDENTICAL GEOMETRY FOR NOW,
More informationRay Tracing. CS334 Fall Daniel G. Aliaga Department of Computer Science Purdue University
Ray Tracing CS334 Fall 2013 Daniel G. Aliaga Department of Computer Science Purdue University Ray Casting and Ray Tracing Ray Casting Arthur Appel, started around 1968 Ray Tracing Turner Whitted, started
More informationRendering Algorithms: Realtime indirect illumination. Spring 2010 Matthias Zwicker
Rendering Algorithms: Realtime indirect illumination Spring 2010 Matthias Zwicker Today Realtime indirect illumination Ray tracing vs. Rasterization Screen space techniques Visibility & shadows Instant
More information