Project Gotham Racing 2 (Xbox) Real-Time Rendering. Microsoft Flighsimulator. Halflife 2
|
|
- Gillian Glenn
- 5 years ago
- Views:
Transcription
1 Project Gotham Racing 2 (Xbox) Real-Time Rendering Microsoft Flighsimulator Halflife 2 1
2 Motivation (1) Many graphics applications are dynamic Simulators (surgery, flight simulators, ) 3D computer games 3D walk through s Minimal frame rates 10 Hz: perceived as animation 60 Hz: flicker free 2 2
3 Motivation (2) Geometry (vertex count) 200 Million 83 Million 0.14 Million Elevation model of Switzerland (Endoxon AG) Double Eagle Tanker (UNC Walkthru Group) Brooks House (UNC Walkthru Group) Display resolution (pixel count) e.g x 1000 = 2 Million 3 3
4 Motivation (3) Today s best peak performance 600 M vertices/s 10 M vertices/frame! 6 G fragments/s 100 M fragments/frame! Reality Latest hardware not available on all systems Slowdown by complex shader programs Multi pass rendering Non perfect load balancing Speedup shading & reduce geometry 4 4
5 Overview Shading Acceleration Optimization of Graphics Pipeline Geometry Reduction Spatial Data Structures Culling Techniques Levels of Detail 5 5
6 Simplified Graphics Pipeline CPU Geometry Storage Geometry Processor Rasterizer Fragment Processor Frame Buffer Texture Storage + Filtering Vertices Pixels Pipeline slides courtesy John Spitzer - NVIDIA 6 6
7 Possible Pipeline Bottlenecks CPU transfer transform raster texture fragment frame buffer CPU Geometry Storage Geometry Processor Rasterizer Fragment Processor Frame Buffer CPU/Bus Bound Texture Storage + Filtering Vertex Bound Pixel Bound 7 7
8 Locate the bottleneck(s) Battle Plan for Better Performance Eliminate the bottleneck (if possible) Decrease workload of the bottlenecked stage Otherwise, balance the pipeline Increase workload of the non-bottlenecked stages 8 8
9 Run App Bottleneck Identification Vary Frame Buffer FPS varies? No Yes Frame Buffer limited Vary texture size/filtering Vary resolution Vary vertex instructions FPS varies? No FPS varies? No FPS varies? No Yes Yes Yes Texture limited Vary fragment instructions Transform limited Yes FPS varies? No Fragment limited Raster limited Vary vertex size/ AGP rate FPS varies? No Yes Transfer limited CPU limited 9 9
10 CPU Bottlenecks CPU transfer transform raster texture fragment frame buffer CPU Geometry Storage Geometry Processor Rasterizer Fragment Processor Frame Buffer CPU/Bus Bound Texture Storage + Filtering Vertex Bound Pixel Bound 10 10
11 CPU Bottlenecks Application limited simulation, disc I/O slower that rendering tune application (profiling tools) Driver or API limited too many state changes too many API calls use arrays, display lists 11 11
12 Geometry Transfer Bottlenecks CPU transfer transform raster texture fragment frame buffer CPU Geometry Storage Geometry Processor Rasterizer Fragment Processor Frame Buffer CPU/Bus Bound Texture Storage + Filtering Vertex Bound Pixel Bound 12 12
13 Vertex data problems size issues (just under or over 32 bytes) non-native types (e.g. double, packed byte normals) Using the wrong API calls immediate mode, non-accelerated vertex arrays use vertex arrays + indexed primitives (shared vertices transferred only once) access vertices in sequential (cache friendly) pattern AGP misconfigured (rare) Geometry Transfer Bottlenecks 13 13
14 Geometry Transform Bottlenecks CPU transfer transform raster texture fragment frame buffer CPU Geometry Storage Geometry Processor Rasterizer Fragment Processor Frame Buffer CPU/Bus Bound Texture Storage + Filtering Vertex Bound Pixel Bound 14 14
15 Too many vertices Geometry Transform Bottlenecks Use levels of detail (but beware of CPU overhead) Use bump maps to fake geometric detail Too much computation per vertex Move per-object calculations to CPU, save results as constants Make use of full spectrum of instruction set (LIT, DST, SIN,...) Make use of swizzle and mask operators to minimize MOVs 15 15
16 Rasterization Bottlenecks CPU transfer transform raster texture fragment frame buffer CPU Geometry Storage Geometry Processor Rasterizer Fragment Processor Frame buffer CPU/Bus Bound Texture Storage + Filtering Vertex Bound Pixel Bound 16 16
17 Rasterization Bottlenecks Rarely the bottleneck Speed influenced by number of vertex attributes to be interpolated Be sure to maximize depth culling efficiency Clear depth at the beginning of each frame Coarsely sort objects front to back Constrain near and far planes to geometry visible in frame 17 17
18 Texture Bottlenecks CPU transfer transform raster texture fragment frame buffer CPU Geometry Storage Geometry Processor Rasterizer Fragment Processor Frame Buffer CPU/Bus Bound Texture Storage + Filtering Vertex Bound Pixel Bound 18 18
19 Texture Bottlenecks Running out of texture memory Texture resolutions only as big as needed Avoid expensive internal formats (floating point) Compress textures (16-bit color depth for environment maps and shadow maps) Poor texture cache utilization Localize texture accesses Use expensive filtering (trilinear, anisotropic) only when needed 19 19
20 Fragment Bottlenecks CPU transfer transform raster texture fragment frame buffer CPU Geometry Storage Geometry Processor Rasterizer Fragment Processor Frame Buffer CPU/Bus Bound Texture Storage + Filtering Vertex Bound Pixel Bound 20 20
21 Fragment Bottlenecks Too many fragments Consider using a depth-only first pass shade only the visible fragments in subsequent pass(es) Too much computation per fragment Use a mix of texture and math instructions (they often run in parallel) Move constant per-triangle calculations to vertex program, send data as texture coordinates Do similar with values that can be linear interpolated 21 21
22 Framebuffer Bottlenecks CPU transfer transform raster texture fragment frame buffer CPU Geometry Storage Geometry Processor Rasterizer Fragment Processor Frame Buffer CPU/Bus Bound Texture Storage + Filtering Vertex Bound Pixel Bound 22 22
23 Minimizing Framebuffer Traffic Reduce number of passes with longer shaders Floating point frame buffers only when needed Use 16-bit Z-depth if you can get away with it 23 23
24 Overview Shading Acceleration Optimization of Graphics Pipeline Geometry Reduction Spatial Data Structures Culling Techniques Levels of Detail 24 24
25 Spatial Data Structures Key to geometry reduction: Bounding Volume Hierarchies Space Partitioning Trees Scene Graphs 25 25
26 Bounding Volumes Bounding Volume (BV) Volume that encloses a set of objects Should be much simpler geometrical shape than contained objects Sphere ABB OBB 6-DOP Convex hull simplicity quality 26 26
27 Bounding Volume Hierarchies Tree structure Leaf nodes contain geometry + bounding volume Internal nodes contain bounding volume of subtree root Internal node 27 27
28 Space Partitioning Trees Uniform subdivision Quadtree k-d tree BSP tree 28 28
29 Creation Binary Space Partitioning (BSP) Trees Use plane to divide the space in two subspaces Sort geometry into these two subspaces Divide subspaces recursively Types Plane axis or polygon aligned Used in many game engines: Quake I/II/III, Doom I/II, Unreal, Sin, Half-Life etc
30 Axis-Aligned BSP Trees B D E 0 1a 1b plane 1a plane 1b A C 30 plane 2 plane 0 A B C 2 k-d trees: cycle through axes Applications: Rough front-to-back sorting Occlusion culling D E 30
31 Polygon-Aligned BSP Trees A polygon is chosen as the divider V F C A A B D E B C D E F G 31 splitting plane G Creation time consuming Applications: Special type in painter s algorithm (no Z-buffer needed) Intersection testing Collision detection 31
32 Octrees Box is split simultaneously along all three axes Split point must be center of box Creates eight new boxes, hence the name In 2D: Quadtrees Regular structure, thus efficient Applications: View frustum culling Occlusion culling Efficient ray intersections 32 32
33 Scene Graphs Higher level data structure Geometry, augmented with textures, transforms, levels-of-detail, light sources Tree Representation Depth-first traversal for rendering Root node often has a BV Leaf stores geometry Several nodes may point to same child node, thus the tree structure is a Directed Acyclic Graph (DAG) 33 33
34 Overview Shading Acceleration Optimization of Graphics Pipeline Geometry Reduction Spatial Data Structures Culling Techniques Levels of Detail 34 34
35 Culling Techniques Don t render what can t be seen Off-screen: view-frustum culling Occluded by other objects: occlusion culling Why in software? Off-screen geometry: solved by clipping Occluded geometry: solved by Z-buffer 35 35
36 Culling Techniques Save rendering time Clipping and Z-buffering take time linear to the number of primitives Culling in software: Pre-culling of large number of primitives Approximative Conservative! Keep hidden primitive OK, remove visible primitive not OK Remainder is potentially visible set or PVS Do clipping and Z-buffering only with PVS 36 36
37 Visibility From a Point Terminology viewpoint occluder shadow volume = umbra occludee 37 37
38 Occluder Fusion Occluder Fusion combines effects of multiple occluders viewpoint larger shadow volume 2 occluders Visible without occluder fusion Invisible with occluder fusion 38 38
39 viewing region Visibility From a Region 1 occluder shadow volume XXX 2 occluders 39 39
40 viewing region Visibility From a Region (2) shadow volume 2 occluders shadow volume XXX 40 40
41 Visibility From a Region (3) viewing region 2 occluders shadow volume XXX Area XXX is always occluded -> complete shadow volume is more than the union of individual shadow volumes 41 41
42 Bounding Planes and Separating Planes bounding planes viewing region occluder separating planes Separating planes of two convex polyhedra are planes formed by an edge of one polyhedron and a vertex of the other such that the polyhedra lie on opposite sides of the plane Bounding planes are similar, except that both polyhedra lie on the same side of the plane 42 42
43 Umbra and Penumbra penumbra umbra viewing region occluder penumbra The area (volume) in full shadow is the umbra Simple in/out classification The area not in full shadow (grey) is the penumbra Additionally encodes which part of the viewing region is visible 43 43
44 Occlusion Culling From a Region penumbra umbra viewing region occluder penumbra We want to calculate the complete umbra = all regions that are fully occluded Umbra = umbra for each individual occluder + all regions where penumbra merges to umbra 44 44
45 Example Culling Methods Backface culling View frustum culling Portal culling Occlusion culling 45 45
46 Backface Culling On the surface of a closed manifold, polygons whose normals point away from the camera are always occluded Viewer Note: backface culling alone doesn t solve the hidden-surface problem! 46 46
47 Clustered Backface Culling Group objects with similar normal Classification of objects: All faces front-facing -> render all All faces back-facing -> render none Some front-facing, some back-facing -> render all Done with normal cones Collected normals from a set of polygons n α Minimal normal cone defined by one normal n and a half-angle α 47 47
48 Hierarchical View Frustum Culling intersect intersect inside inside inside outside inside inside inside Bounding Volume Hierarchy 48 48
49 Portal Culling Goal: walk through architectural models (buildings, cities, catacombs) These divide naturally into cells Rooms, alcoves, corridors Transparent portals connect cells Doorways, entrances, windows 49 49
50 Example viewer Portal Culling (2) 50 50
51 Portal Culling (3) Idea: Cells form the basic unit of PVS Create an adjacency graph of cells Starting with cell containing eyepoint, traverse graph, rendering visible cells A cell is only visible if it can be seen through a sequence of portals So cell visibility reduces to testing portal sequences for a line of sight 51 51
52 Occlusion Culling Three main algorithms: Loose front-to-back sorting Using an octree or BSP tree Sorting centroids or near points of bounding volumes Hierarchical Z-buffer Ned Greene, SIGGRAPH 93 Hierarchical occlusion maps Hansong Zhang, SIGGRAPH 97, not discussed 52 52
53 Hierarchical Z-buffering Replace Z-buffer with a Z-pyramid Lowest level: full-resolution Z-buffer Higher levels: each pixel represents the maximum depth of the four pixels underneath it Basic idea: hierarchical rasterization of the polygon, with early termination where polygon is occluded 53 53
54 Hierarchical Z-buffering (2) Idea: test polygon against highest level first If polygon is further than distance recorded in pixel, stop it s occluded If polygon is closer, recursively check against next lower level If polygon is visible at lowest level, set new distance value and propagate up Unfortunately: no hardware support 54 54
55 Overview Shading Acceleration Optimization of Graphics Pipeline Geometry Reduction Spatial Data Structures Culling Techniques Levels of Detail 55 55
56 Level of Detail What for? Even after visibility, model may contain too many polygons Idea: reduce complexity further by managing level of detail (LOD) Multi-resolution modeling Polygonal simplification 56 56
57 Level of Detail Traditional LOD Create levels of detail (LODs) of objects 69,451 polys 2,502 polys 251 polys 76 polys Courtesy Stanford 3D Scanning Repository 57 57
58 Level of Detail Traditional LOD Distant objects use coarser LODs Changes number of vertices Not number of fragments 58 58
59 Level of Detail Issues LOD generation Lots of methods LOD selection Static (range/projected area-based) Reactive (react to last frames rendering time) Predictive (cost/benefit model) LOD switching Hard switching (popping artifacts!) Blending (ill-defined because of Z-buffer!) Geomorph (for continuous level of detail) 59 59
60 Level of Detail LOD Generation Lots of methods Decimation Vertex Merging (edge-collapsing) Adaptive subdivision Interesting: Different error metrics! 60 60
61 Level of Detail LOD Selection Range-based Associate different LODs with different ranges LOD 0 LOD 1 LOD 2 LOD 3 r 1 r 2 r
62 Level of Detail LOD Selection Projected area-based Projected area of the bounding volume Estimation of screen space coverage E.g. spheres: Area of projection is thus p = nr d ( c v) 2 πp Higher value selects a more detailed LOD v d n c r 62 62
63 Level of Detail LOD Switching Discrete Geometry LODs Create LODs for each object separately in a preprocess At run-time, pick each object s LOD according to the object s distance (or similar criterion) Since LODs are created offline at fixed resolutions, we call this discrete LOD Decouples simplification and rendering 63 63
64 Level of Detail LOD Switching (2) Continuous LODs Create data structure from which a desired level of detail can be extracted at run time. Better granularity better fidelity LOD is specified exactly, not chosen from a few pre-created options Thus objects use no more polygons than necessary, which frees up polygons for other objects Net result: better resource utilization, leading to better overall fidelity/polygon 64 64
65 Level of Detail LOD Switching (3) Continuous LODs Better granularity -> smoother transitions Switching between traditional LODs can introduce visual popping effect Continuous LOD can adjust detail gradually and incrementally, reducing visual pops Can even geomorph the fine-grained simplification operations over several frames to eliminate pops [Hoppe 96, 98] 65 65
66 Level of Detail LOD Switching (4) Continuous LODs (2) Supports progressive transmission Progressive Meshes [Hoppe 97] Progressive Forest Split Compression [Taubin 98] Leads to view-dependent LOD Use current view parameters to select best representation for the current view Single objects may thus span several levels of detail 66 66
67 Level of Detail Conclusions Good book and webpage: lodbook.com 10k 20k 60k 200k 2000k Michelangelo s David at different levels of detail [Pauly 02] In points of the original model, rendered with a point splatter
68 Acceleration Algorithms Conclusion Most visibility algorithms work on the data before it gets down the graphics pipeline Ideal optimizations Problematic if CPU is bottleneck Most of the work in LODs can be done in a preprocessing phase 68 68
Graphics Performance Optimisation. John Spitzer Director of European Developer Technology
Graphics Performance Optimisation John Spitzer Director of European Developer Technology Overview Understand the stages of the graphics pipeline Cherchez la bottleneck Once found, either eliminate or balance
More informationReal-Time Rendering (Echtzeitgraphik) Dr. Michael Wimmer
Real-Time Rendering (Echtzeitgraphik) Dr. Michael Wimmer wimmer@cg.tuwien.ac.at Visibility Overview Basics about visibility Basics about occlusion culling View-frustum culling / backface culling Occlusion
More informationSpeeding up your game
Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers (adapted by Marc Levoy from a lecture by Tomas Möller, using material
More informationSpatial Data Structures
CSCI 420 Computer Graphics Lecture 17 Spatial Data Structures Jernej Barbic University of Southern California Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees [Angel Ch. 8] 1 Ray Tracing Acceleration
More informationSpatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology
Spatial Data Structures and Speed-Up Techniques Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial data structures What is it? Data structure that organizes
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 informationCS 563 Advanced Topics in Computer Graphics Culling and Acceleration Techniques Part 1 by Mark Vessella
CS 563 Advanced Topics in Computer Graphics Culling and Acceleration Techniques Part 1 by Mark Vessella Introduction Acceleration Techniques Spatial Data Structures Culling Outline for the Night Bounding
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://www-bcf.usc.edu/~jbarbic/cs480-s/
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 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 informationComputer Graphics. Bing-Yu Chen National Taiwan University
Computer Graphics Bing-Yu Chen National Taiwan University Visible-Surface Determination Back-Face Culling The Depth-Sort Algorithm Binary Space-Partitioning Trees The z-buffer Algorithm Scan-Line Algorithm
More informationSpatial Data Structures and Acceleration Algorithms
Spatial Data Structures and Acceleration Algorithms Real-time Rendering Performance Goals Spatial Structures Bounding Volume Hierarchies (BVH) Binary Space Partioning(BSP) Trees, Octrees Scene Graphs Culling
More informationAnnouncements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday
Announcements Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday 1 Spatial Data Structures Hierarchical Bounding Volumes Grids Octrees BSP Trees 11/7/02 Speeding Up Computations
More informationMotivation. Culling Don t draw what you can t see! What can t we see? Low-level Culling
Motivation Culling Don t draw what you can t see! Thomas Larsson Mälardalen University April 7, 2016 Image correctness Rendering speed One day we will have enough processing power!? Goals of real-time
More informationSpatial Data Structures
15-462 Computer Graphics I Lecture 17 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) March 28, 2002 [Angel 8.9] Frank Pfenning Carnegie
More informationLOD and Occlusion Christian Miller CS Fall 2011
LOD and Occlusion Christian Miller CS 354 - Fall 2011 Problem You want to render an enormous island covered in dense vegetation in realtime [Crysis] Scene complexity Many billions of triangles Many gigabytes
More informationSpatial Data Structures
15-462 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 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 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 information3/1/2010. Acceleration Techniques V1.2. Goals. Overview. Based on slides from Celine Loscos (v1.0)
Acceleration Techniques V1.2 Anthony Steed Based on slides from Celine Loscos (v1.0) Goals Although processor can now deal with many polygons (millions), the size of the models for application keeps on
More informationVisible Surface Detection. (Chapt. 15 in FVD, Chapt. 13 in Hearn & Baker)
Visible Surface Detection (Chapt. 15 in FVD, Chapt. 13 in Hearn & Baker) 1 Given a set of 3D objects and a viewing specifications, determine which lines or surfaces of the objects should be visible. A
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 informationEECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing
EECE 478 Rasterization & Scenes Rasterization Learning Objectives Be able to describe the complete graphics pipeline. Describe the process of rasterization for triangles and lines. Compositing Manipulate
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 informationComputer Graphics. Lecture 9 Hidden Surface Removal. Taku Komura
Computer Graphics Lecture 9 Hidden Surface Removal Taku Komura 1 Why Hidden Surface Removal? A correct rendering requires correct visibility calculations When multiple opaque polygons cover the same screen
More information9. Visible-Surface Detection Methods
9. Visible-Surface Detection Methods More information about Modelling and Perspective Viewing: Before going to visible surface detection, we first review and discuss the followings: 1. Modelling Transformation:
More informationDetermination (Penentuan Permukaan Tampak)
Visible Surface Determination (Penentuan Permukaan Tampak) Visible Surface Determination 1/26 Outline Definisi VSD Tiga Kelas Algoritma VSD Kelas : Conservative Spatial Subdivison Bounding Volume Back
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 informationTDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students)
TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students) Saturday, January 13 th, 2018, 08:30-12:30 Examiner Ulf Assarsson, tel. 031-772 1775 Permitted Technical Aids None, except
More informationCSE 167: Introduction to Computer Graphics Lecture #9: Visibility. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018
CSE 167: Introduction to Computer Graphics Lecture #9: Visibility Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018 Announcements Midterm Scores are on TritonEd Exams to be
More informationCPSC / Sonny Chan - University of Calgary. Collision Detection II
CPSC 599.86 / 601.86 Sonny Chan - University of Calgary Collision Detection II Outline Broad phase collision detection: - Problem definition and motivation - Bounding volume hierarchies - Spatial partitioning
More informationCS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz
CS 563 Advanced Topics in Computer Graphics QSplat by Matt Maziarz Outline Previous work in area Background Overview In-depth look File structure Performance Future Point Rendering To save on setup and
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 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 informationGeometric Modeling. Bing-Yu Chen National Taiwan University The University of Tokyo
Geometric Modeling Bing-Yu Chen National Taiwan University The University of Tokyo Surface Simplification Motivation Basic Idea of LOD Discrete LOD Continuous LOD Simplification Problem Characteristics
More informationSpatial Data Structures and Acceleration Algorithms
Spatial Data Structures and Acceleration Algorithms Real-time Renderg Performance Goals Spatial Structures Boundg Volume Hierarchies (BVH) Bary Space Partiong(BSP) Trees, Octrees Scene Graphs Cullg Techniques
More informationCulling. Computer Graphics CSE 167 Lecture 12
Culling Computer Graphics CSE 167 Lecture 12 CSE 167: Computer graphics Culling Definition: selecting from a large quantity In computer graphics: selecting primitives (or batches of primitives) that are
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 informationCOMP 175: Computer Graphics April 11, 2018
Lecture n+1: Recursive Ray Tracer2: Advanced Techniques and Data Structures COMP 175: Computer Graphics April 11, 2018 1/49 Review } Ray Intersect (Assignment 4): questions / comments? } Review of Recursive
More informationINFOGR Computer Graphics. J. Bikker - April-July Lecture 11: Visibility. Welcome!
INFOGR Computer Graphics J. Bikker - April-July 2016 - Lecture 11: Visibility Welcome! Smallest Ray Tracers: Executable 5692598 & 5683777: RTMini_minimal.exe 2803 bytes 5741858: ASM_CPU_Min_Exe 994 bytes
More informationFrédo Durand, George Drettakis, Joëlle Thollot and Claude Puech
Frédo Durand, George Drettakis, Joëlle Thollot and Claude Puech imagis-gravir/imag-inria (Grenoble, France) Laboratory for Computer Science MIT (USA) Special thanks Leo Guibas Mark de Berg Introduction
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 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 informationSpatial Data Structures and Speed-Up Techniques. Ulf Assarsson Department of Computer Science and Engineering Chalmers University of Technology
Spatial Data Structures and Speed-Up Techniques Ulf Assarsson Department of Computer Science and Engineering Chalmers University of Technology Exercises l Create a function (by writing code on paper) that
More informationCS4620/5620: Lecture 14 Pipeline
CS4620/5620: Lecture 14 Pipeline 1 Rasterizing triangles Summary 1! evaluation of linear functions on pixel grid 2! functions defined by parameter values at vertices 3! using extra parameters to determine
More informationComputing Visibility. Backface Culling for General Visibility. One More Trick with Planes. BSP Trees Ray Casting Depth Buffering Quiz
Computing Visibility BSP Trees Ray Casting Depth Buffering Quiz Power of Plane Equations We ve gotten a lot of mileage out of one simple equation. Basis for D outcode-clipping Basis for plane-at-a-time
More informationPage 1. Area-Subdivision Algorithms z-buffer Algorithm List Priority Algorithms BSP (Binary Space Partitioning Tree) Scan-line Algorithms
Visible Surface Determination Visibility Culling Area-Subdivision Algorithms z-buffer Algorithm List Priority Algorithms BSP (Binary Space Partitioning Tree) Scan-line Algorithms Divide-and-conquer strategy:
More informationShadows in the graphics pipeline
Shadows in the graphics pipeline Steve Marschner Cornell University CS 569 Spring 2008, 19 February There are a number of visual cues that help let the viewer know about the 3D relationships between objects
More informationComparison of hierarchies for occlusion culling based on occlusion queries
Comparison of hierarchies for occlusion culling based on occlusion queries V.I. Gonakhchyan pusheax@ispras.ru Ivannikov Institute for System Programming of the RAS, Moscow, Russia Efficient interactive
More informationCSE328 Fundamentals of Computer Graphics: Concepts, Theory, Algorithms, and Applications
CSE328 Fundamentals of Computer Graphics: Concepts, Theory, Algorithms, and Applications Hong Qin Stony Brook University (SUNY at Stony Brook) Stony Brook, New York 11794-4400 Tel: (631)632-8450; Fax:
More informationView-dependent Polygonal Simplification
View-dependent Polygonal Simplification Pekka Kuismanen HUT pkuisman@cc.hut.fi Abstract This paper describes methods for view-dependent simplification of polygonal environments. A description of a refinement
More informationCSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling
CSE 167: Introduction to Computer Graphics Lecture #11: Visibility Culling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 Announcements Project 3 due Monday Nov 13 th at
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 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 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 informationSubdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts
Subdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts MSc Computer Games and Entertainment Maths & Graphics II 2013 Lecturer(s): FFL (with Gareth Edwards) Fractal Terrain Based on
More informationPerformance OpenGL Programming (for whatever reason)
Performance OpenGL Programming (for whatever reason) Mike Bailey Oregon State University Performance Bottlenecks In general there are four places a graphics system can become bottlenecked: 1. The computer
More informationCS535 Fall Department of Computer Science Purdue University
Culling CS535 Fall 2010 Daniel G Aliaga Daniel G. Aliaga Department of Computer Science Purdue University Types of culling View frustum culling Visibility culling e.g., backface culling, portal tlculling,
More informationCEng 477 Introduction to Computer Graphics Fall 2007
Visible Surface Detection CEng 477 Introduction to Computer Graphics Fall 2007 Visible Surface Detection Visible surface detection or hidden surface removal. Realistic scenes: closer objects occludes the
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 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 informationAdaptive Point Cloud Rendering
1 Adaptive Point Cloud Rendering Project Plan Final Group: May13-11 Christopher Jeffers Eric Jensen Joel Rausch Client: Siemens PLM Software Client Contact: Michael Carter Adviser: Simanta Mitra 4/29/13
More informationIntersection Acceleration
Advanced Computer Graphics Intersection Acceleration Matthias Teschner Computer Science Department University of Freiburg Outline introduction bounding volume hierarchies uniform grids kd-trees octrees
More informationGraphics and Interaction Rendering pipeline & object modelling
433-324 Graphics and Interaction Rendering pipeline & object modelling Department of Computer Science and Software Engineering The Lecture outline Introduction to Modelling Polygonal geometry The rendering
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 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 informationIntroduction to Visualization and Computer Graphics
Introduction to Visualization and Computer Graphics DH2320, Fall 2015 Prof. Dr. Tino Weinkauf Introduction to Visualization and Computer Graphics Visibility Shading 3D Rendering Geometric Model Color Perspective
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 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 informationPipeline Operations. CS 4620 Lecture 10
Pipeline Operations CS 4620 Lecture 10 2008 Steve Marschner 1 Hidden surface elimination Goal is to figure out which color to make the pixels based on what s in front of what. Hidden surface elimination
More informationUniversiteit Leiden Computer Science
Universiteit Leiden Computer Science Optimizing octree updates for visibility determination on dynamic scenes Name: Hans Wortel Student-no: 0607940 Date: 28/07/2011 1st supervisor: Dr. Michael Lew 2nd
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 informationCS 498 VR. Lecture 18-4/4/18. go.illinois.edu/vrlect18
CS 498 VR Lecture 18-4/4/18 go.illinois.edu/vrlect18 Review and Supplement for last lecture 1. What is aliasing? What is Screen Door Effect? 2. How image-order rendering works? 3. If there are several
More informationGeForce4. John Montrym Henry Moreton
GeForce4 John Montrym Henry Moreton 1 Architectural Drivers Programmability Parallelism Memory bandwidth 2 Recent History: GeForce 1&2 First integrated geometry engine & 4 pixels/clk Fixed-function transform,
More informationInteractive Ray Tracing: Higher Memory Coherence
Interactive Ray Tracing: Higher Memory Coherence http://gamma.cs.unc.edu/rt Dinesh Manocha (UNC Chapel Hill) Sung-Eui Yoon (Lawrence Livermore Labs) Interactive Ray Tracing Ray tracing is naturally sub-linear
More informationDeferred Splatting. Gaël GUENNEBAUD Loïc BARTHE Mathias PAULIN IRIT UPS CNRS TOULOUSE FRANCE.
Deferred Splatting Gaël GUENNEBAUD Loïc BARTHE Mathias PAULIN IRIT UPS CNRS TOULOUSE FRANCE http://www.irit.fr/~gael.guennebaud Plan Complex Scenes: Triangles or Points? High Quality Splatting: Really
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 Back-face culling Occlusion culling
More informationHardware-driven visibility culling
Hardware-driven visibility culling I. Introduction 20073114 김정현 The goal of the 3D graphics is to generate a realistic and accurate 3D image. To achieve this, it needs to process not only large amount
More informationGoal. Interactive Walkthroughs using Multiple GPUs. Boeing 777. DoubleEagle Tanker Model
Goal Interactive Walkthroughs using Multiple GPUs Dinesh Manocha University of North Carolina- Chapel Hill http://www.cs.unc.edu/~walk SIGGRAPH COURSE #11, 2003 Interactive Walkthrough of complex 3D environments
More informationRay Tracing III. Wen-Chieh (Steve) Lin National Chiao-Tung University
Ray Tracing III Wen-Chieh (Steve) Lin National Chiao-Tung University Shirley, Fundamentals of Computer Graphics, Chap 10 Doug James CG slides, I-Chen Lin s CG slides Ray-tracing Review For each pixel,
More informationIdentifying those parts of a scene that are visible from a chosen viewing position, and only process (scan convert) those parts
Visible Surface Detection Identifying those parts of a scene that are visible from a chosen viewing position, and only process (scan convert) those parts Two approaches: 1. Object space methods 2. Image
More informationComputer Graphics. - Ray-Tracing II - Hendrik Lensch. Computer Graphics WS07/08 Ray Tracing II
Computer Graphics - Ray-Tracing II - Hendrik Lensch Overview Last lecture Ray tracing I Basic ray tracing What is possible? Recursive ray tracing algorithm Intersection computations Today Advanced acceleration
More informationAcceleration Data Structures
CT4510: Computer Graphics Acceleration Data Structures BOCHANG MOON Ray Tracing Procedure for Ray Tracing: For each pixel Generate a primary ray (with depth 0) While (depth < d) { Find the closest intersection
More informationGraphics 2009/2010, period 1. Lecture 8: ray tracing
Graphics 2009/2010, period 1 Lecture 8 Ray tracing Original plan Finish the basic stuff (book ch 1-9) today: We will not look into signal processing (chapter 4) We will look at triangle rasterization (cf.
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 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 informationComputer Graphics. - Spatial Index Structures - Philipp Slusallek
Computer Graphics - Spatial Index Structures - Philipp Slusallek Overview Last lecture Overview of ray tracing Ray-primitive intersections Today Acceleration structures Bounding Volume Hierarchies (BVH)
More informationHidden Surface Removal
Outline Introduction Hidden Surface Removal Hidden Surface Removal Simone Gasparini gasparini@elet.polimi.it Back face culling Depth sort Z-buffer Introduction Graphics pipeline Introduction Modeling Geom
More informationSoftware Occlusion Culling
Software Occlusion Culling Abstract This article details an algorithm and associated sample code for software occlusion culling which is available for download. The technique divides scene objects into
More informationAccelerating Ray Tracing
Accelerating Ray Tracing Ray Tracing Acceleration Techniques Faster Intersections Fewer Rays Generalized Rays Faster Ray-Object Intersections Object bounding volumes Efficient intersection routines Fewer
More informationVISIBILITY & CULLING. Don t draw what you can t see. Thomas Larsson, Afshin Ameri DVA338, Spring 2018, MDH
VISIBILITY & CULLING Don t draw what you can t see. Thomas Larsson, Afshin Ameri DVA338, Spring 2018, MDH Visibility Visibility Given a set of 3D objects, which surfaces are visible from a specific point
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 informationimproving raytracing speed
ray tracing II computer graphics ray tracing II 2006 fabio pellacini 1 improving raytracing speed computer graphics ray tracing II 2006 fabio pellacini 2 raytracing computational complexity ray-scene intersection
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 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 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 informationOptimisation. CS7GV3 Real-time Rendering
Optimisation CS7GV3 Real-time Rendering Introduction Talk about lower-level optimization Higher-level optimization is better algorithms Example: not using a spatial data structure vs. using one After that
More informationDiFi: Distance Fields - Fast Computation Using Graphics Hardware
DiFi: Distance Fields - Fast Computation Using Graphics Hardware Avneesh Sud Dinesh Manocha UNC-Chapel Hill http://gamma.cs.unc.edu/difi Distance Fields Distance Function For a site a scalar function f:r
More informationDrawing the Visible Objects
Drawing the Visible Objects We want to generate the image that the eye would see, given the objects in our space How do we draw the correct object at each pixel, given that some objects may obscure others
More informationComputer Graphics (CS 543) Lecture 13b Ray Tracing (Part 1) Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)
Computer Graphics (CS 543) Lecture 13b Ray Tracing (Part 1) Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) Raytracing Global illumination-based rendering method Simulates
More information