Chikai J. Ohazama, Ph.D.
|
|
- Suzanna Copeland
- 5 years ago
- Views:
Transcription
1
2 OpenGL Volumizer & Large Data Visualization Chikai J. Ohazama, Ph.D. AGD Applied Engineering
3 Overview Topics OpenGL Volumizer Parallel Volume Rendering Volume Roaming Performance Determination
4 OpenGL Volumizer Topics Volume Rendering OpenGL Volumizer Code Example Applications
5 Volume Rendering Volume Image
6 Volume Rendering Advantages Not necessary to explicitly extract surfaces from volume when rendering Can change the Look Up Table (LUT) to bring out different objects within the volume
7 Volume Rendering Disadvantages Do not have explicit surfaces, therefore not straightforward to do computational operations on objects within the volume Much more computationally intensive to render volume since not dealing with a set of discrete objects
8 OpenGL Volumizer Features Tetrahedral Volume Tesselation Automatic Brick Management Portability across Platforms
9 OpenGL Volumizer + = Triangle 2D Texture Texture Mapped Triangle + = Tetrahedron 3D Texture Volume Rendered Tetrahedron
10 Code Example Basic Components Initialize Appearance Initialize Geometry Render Volume
11 Initialize Appearance voappearanceactions::getbestparameters( interpolationtype, renderingmode, datatype, diskdataformat, internalformat, externalformat, xbricksize, ybricksize, zbricksize); Automatically calculates brick size and formats necessary for optimal volume rendering.
12 Initialize Appearance vobricksetcollection *avolume = new vobricksetcollection( xvolumesize, yvolumesize, zvolumesize, xbricksize, ybricksize, zbricksize, partialformat, 1, internalformat, externalformat, datatype, interpolationtype); Creates the bricks, but does not read data or allocate memory.
13 Initialize Appearance vobricksetcollectioniterator collectioniter(avolume); for (vobrickset * brickset; brickset = collectioniter();) { // iterate over all bricks within the brickcollection vobricksetiterator bricksetiter(brickset); for (vobrick * brick; brick = bricksetiter();) voappearanceactions::dataalloc(brick); } Allocate memory for all copies of the volume.
14 Initialize Appearance vobricksetiterator bricksetiter(avolume->getcurrentbrickset()); for (vobrick * brick; brick = bricksetiter();) { int xbrickorigin, ybrickorigin, zbrickorigin; int xbricksize, ybricksize, zbricksize; void *vdata = brick->getdataptr(); brick->getbricksizes(xbrickorigin, ybrickorigin, zbrickorigin, xbricksize, ybricksize, zbricksize); getbrick(voldata, vdata, xbrickorigin, ybrickorigin, zbrickorigin, xbricksize, ybricksize, zbricksize, xvolumesize, yvolumesize, zvolumesize); } Load bricks into memory.
15 Initialize Geometry static float vtxdata[8][3] = { 0, 0, 0, xvolumesize, 0, 0, xvolumesize, yvolumesize, 0, 0, yvolumesize, 0, 0, 0, zvolumesize, xvolumesize, 0, zvolumesize, xvolumesize, yvolumesize, zvolumesize, 0, yvolumesize, zvolumesize, }; Define verticies.
16 Initialize Geometry static int cubeindices[20] = { 0, 2, 5, 7, 3, 2, 0, 7, 1, 2, 5, 0, 2, 7, 6, 5, 5, 4, 0, 7, }; Define Geometry.
17 Initialize Geometry voindexedtetraset *atetraset = new voindexedtetraset((float *) vtxdata, 8, valuespervtx, cubeindices, 20); Construct the tetrahedral set.
18 Initialize Geometry allvertexdata = new vovertexdata(100000, valuespervtx); apolygonsetarray = new voindexedfaceset**[maxbrickcount]; for (int j1 = 0; j1 < maxbrickcount; j1++) { apolygonsetarray[j1] = new voindexedfaceset*[maxsamplesnumber]; for (int j2 = 0; j2 < maxsamplesnumber; j2++) apolygonsetarray[j1][j2] = new voindexedfaceset(allvertexdata, boundfacecount(tetracount)); } Create storage for transient polygons.
19 Render Volume vogeometryactions::polygonize( atetraset, avolume->getcurrentbrickset(), interleavedarrayformat, modelmatrix[pset], projmatrix[pset], avolume->getinterpolationtype() == vointerpolationtypescope::_3d? vosamplingmodescope::vieport_aligned : vosamplingmodescope::axis_aligned, vosamplingspacescope::object, samplingperiod, maxsamplesnumber, sampletemp, apolygonsetarray[pset]); Polygonize tetraset.
20 Render Volume vosortaction asortaction( avolume->getcurrentbrickset(), modelmatrix, projmatrix); Sort Bricks.
21 Render Volume - Draw for (brickno = 0; brickno < BrickCount; brickno++) { int bricksortedno = asortaction[brickno]; vobrick *abrick = avolume->getcurrentbrickset()->getbrick(bricksortedno); if (!hastexturecomponent(interleavedarrayformat)) voappearanceactions::texgensetequation(abrick); voappearanceactions::texturebind(abrick); for (int binno = 0; binno < samplesnumber ; binno++) { vogeometryactions::draw( apolygonsetarray[bricksortedno][binno], interleavedarrayformat); } } Render bricks.
22 Applications Volume Roaming
23 Applications Heterogenous Rendering (Surface and Volume Objects)
24 Applications Region of Interest Volume Rendering
25 Applications Multiple Volumes
26 Applications Medical Oil&Gas Scientific Visualization
27 Parallel Volume Rendering Topics Basic Architecture Scalability Code Example
28 Basic Architecture Types Screen Decomposition Data Decomposition
29 Screen Decomposition Load Volume Assign Portion of Framebuffer to Pipes PIPE 0 PIPE 1 PIPE 2 PIPE 3 Render Portions in Parallel Composite Portions
30 Performance Scalability Benefits Linear Increase in Texture Fill Rate Framebuffer portion transfer sizes decreases with increased number of pipes, therefore necessary read/write bandwidth is constant
31 Performance Scalability Limitations Larger the window size, slower the frame rate
32 Data Decomposition Load Volume Assign Bricks to Pipes PIPE 0 PIPE 1 PIPE 2 PIPE 3 Render Bricks in Parallel Composite Bricks
33 No Latency Frame Composition Rendering Setup: Pre-Multiplication of Luminance by Alpha (achieved through TLUT) Blending Function changed to: glblendfunc(gl_one, GL_ONE_MINUS_SRC_ALPHA);
34 Performance Scalability Benefits Linear Increase in Texture Fill Rate Linear Increase in Texture Memory Linear Increase in Texture Load Rate
35 Performance Scalability Limitations Read/rite Pixel Rate has significant effect on frame rate Larger the window size, slower the frame rate
36 Composition - Linear R R R R R R R R R R R R R R R R 16 steps
37 Composition - Subdivision R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R 8 steps
38 Sample Code Available on OpenGL Volumizer 1.1 release /usr/share/volumizer/src/apps/multipipe
39 Sample Code Example mvinitmonster(numpipes, pipelist, winx, winy); mvloadvolume(volume, x, y, z, MV_TRUNCATE); mvstartmonster(); mvrendervolume(); mvclippingplaneoff(); mvclippingplaneon(); mvsetlut(table);
40 Volume Roaming Topics Page based Volume Roaming SubLoad based Volume Roaming Note: All explanations will be done in 2D, but the implementation is done in 3D.
41 Volume Roaming - Page Based Page based Volume Roaming Page Blocks that need to be paged in (in hash blue) Page Blocks that are no longer necessary (in hash red) Move Region of Interest Region of Interest (dotted outline) Active Page Blocks (in green)
42 Volume Roaming - Page Based Pros Smooth traversal through volume. No directional bias when traversing through the volume.
43 Volume Roaming - Page Based Cons Visible volume is only a fraction of volume loaded in texture memory. Diagonal movements faults a significant portion of the cached volume. Data must be reformatted into ÒbricksÓ. Small bricks must be used to keep bandwidth requirements low.
44 Volume Roaming - Page Based Cons (cont.) Small bricks requires more tetrahedra, therefore increases polygonization time when using OpenGL Volumizer. Small bricks decrease download bandwidth on Onyx2 Infinite Reality.
45 Volume Roaming - SubLoad Based SubLoad based Volume Roaming t 2.0 repeated texture Move Region of Interest t 2.0 repeated texture Loaded Texture Rendered Portion of Texture s Loaded Texture SubLoaded Portion of Texture (in hashed blue) Rendered Portion of Texture s
46 Volume Roaming - SubLoad Based Pros Smooth traversal through volume. Entire volume in texture memory is visible. Only new part of the volume is uploaded into texture memory. No reformatting of volume necessary (but maybe beneficial for disk-based volume roaming). Minimal number of tetrahedras needed when using OpenGL Volumizer.
47 Volume Roaming - SubLoad Based Pros (cont.) Minimal number of tetrahedras needed when using OpenGL Volumizer.
48 Volume Roaming - SubLoad Based Cons Directional bias when traversing through volume. Small subloads decrease download bandwidth on Onyx2 Infinite Reality (but on the otherhand, less bandwidth is needed for smooth traversal).
49 Performance Determination Topics Performance Criteria Example: Volume fitting in Texture Memory Example: Volume larger than Texture Memory Example: Monster Mode Volume Rendering Key Features
50 Performance Determination Performance Criteria Texture Fill-Rate Texture Download Rate Texture Memory Size
51 Performance Determination - Example Volume fitting in Texture Memory Limiting factor is Texture Fill-Rate Frame Rate = Fill-Rate Volume Size x Scale 2
52 Performance Determination - Example Volume fitting in Texture Memory Onyx2 Infinite Reality - 1 pipe (4 RMs) 64 MV volume (512x512x256) Scale = 1.0 Frame Rate = 450 Mpixels/s 64 Mvoxels x = 7 fps
53 Performance Determination - Example Volume larger than Texture Memory Limiting factor is Texture Download Rate Frame Rate = Texture Download Rate Volume Size x Scale 2
54 Performance Determination - Example Volume larger than Texture Memory Onyx2 Infinite Reality - 1 pipe (4 RMs) 128 MV volume (512x512x512) Scale = 1.0 Frame Rate = 240 MB/s = 2 fps 128 MV x 1.0 2
55 Performance Determination - Example Monster Mode Volume Rendering Screen Decomposition Scales Fill-Rate Texture Memory does not scale. Frame Rate = Fill-Rates x No. of Pipes Volume Size x Scale 2
56 Performance Determination - Example Monster Mode Volume Rendering Data Decomposition Scales Fill-Rate Scales Texture Memory. Frame Rate = Fill-Rates x No. of Pipes Volume Size x Scale 2 Texture Memory = No. of Pipes x Texture Memory Size
57 Performance Determination - Example Monster Mode Volume Rendering Onyx2 Infinite Reality - 16 Pipes (4 RMs) 1 GV volume Data Decomposition Frame Rate = 450 x 16 1 GV x = 7 fps Texture Memory = 16 x 64 MB = 1024 MB = 1 GB
58 Performance Determination Key Features 3D Texture Mapping Texture Look Up Table (TLUT)
59
Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming
Chapter IV Fragment Processing and Output Merging Fragment Processing The per-fragment attributes may include a normal vector, a set of texture coordinates, a set of color values, a depth, etc. Using these
CS427 Multicore Architecture and Parallel Computing
CS427 Multicore Architecture and Parallel Computing Lecture 6 GPU Architecture Li Jiang 2014/10/9 1 GPU Scaling A quiet revolution and potential build-up Calculation: 936 GFLOPS vs. 102 GFLOPS Memory Bandwidth:
Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural
1 Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural to consider using it in video games too. 2 I hope that
GPU Memory Model Overview
GPU Memory Model Overview John Owens University of California, Davis Department of Electrical and Computer Engineering Institute for Data Analysis and Visualization SciDAC Institute for Ultrascale Visualization
Volume Graphics Introduction
High-Quality Volume Graphics on Consumer PC Hardware Volume Graphics Introduction Joe Kniss Gordon Kindlmann Markus Hadwiger Christof Rezk-Salama Rüdiger Westermann Motivation (1) Motivation (2) Scientific
OpenGL Volumizer 2.3 Reference Pages
OpenGL Volumizer 2.3 Reference Pages Version 2.3 vzappearance vzblock vzcliprenderaction vzerror vzexternaltextureformat vzgeometry vzindexarray vzinternaltextureformat vzmemory vzobject vzparameter vzparametercliptexture
Graphics 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!
Computer 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
CSE 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
CS 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
GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON
Deferred Rendering in Killzone 2 Michal Valient Senior Programmer, Guerrilla Talk Outline Forward & Deferred Rendering Overview G-Buffer Layout Shader Creation Deferred Rendering in Detail Rendering Passes
Visualization and VR for the Grid
Visualization and VR for the Grid Chris Johnson Scientific Computing and Imaging Institute University of Utah Computational Science Pipeline Construct a model of the physical domain (Mesh Generation, CAD)
Cornell University CS 569: Interactive Computer Graphics. Introduction. Lecture 1. [John C. Stone, UIUC] NASA. University of Calgary
Cornell University CS 569: Interactive Computer Graphics Introduction Lecture 1 [John C. Stone, UIUC] 2008 Steve Marschner 1 2008 Steve Marschner 2 NASA University of Calgary 2008 Steve Marschner 3 2008
PowerVR Performance Recommendations The Golden Rules. October 2015
PowerVR Performance Recommendations The Golden Rules October 2015 Paul Ly Developer Technology Engineer, PowerVR Graphics Understanding Your Bottlenecks Based on our experience 3 The Golden Rules 1. The
Fall 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
Computer Graphics Fundamentals. Jon Macey
Computer Graphics Fundamentals Jon Macey jmacey@bournemouth.ac.uk http://nccastaff.bournemouth.ac.uk/jmacey/ 1 1 What is CG Fundamentals Looking at how Images (and Animations) are actually produced in
COMP30019 Graphics and Interaction Scan Converting Polygons and Lines
COMP30019 Graphics and Interaction Scan Converting Polygons and Lines Department of Computer Science and Software Engineering The Lecture outline Introduction Scan conversion Scan-line algorithm Edge coherence
Chapter 3. Texture mapping. Learning Goals: Assignment Lab 3: Implement a single program, which fulfills the requirements:
Chapter 3 Texture mapping Learning Goals: 1. To understand texture mapping mechanisms in VRT 2. To import external textures and to create new textures 3. To manipulate and interact with textures 4. To
CS 432 Interactive Computer Graphics
CS 432 Interactive Computer Graphics Lecture 09 Part 1 Compositing and Anti-Aliasing Matt Burlick - Drexel University - CS432 1 Composite Techniques Compositing is the method of compositing an image from
CS4620/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
CSCI 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:
Introduction 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
Scan line algorithm. Jacobs University Visualization and Computer Graphics Lab : Graphics and Visualization 272
Scan line algorithm The scan line algorithm is an alternative to the seed fill algorithm. It does not require scan conversion of the edges before filling the polygons It can be applied simultaneously to
Silicon Graphics Prism TM : A Platform for Scalable Graphics
Silicon Graphics, Inc. Silicon Graphics Prism TM : A Platform for Scalable Graphics Presented by: Alpana Kaulgud Engineering Director, Visual Systems Bruno Stefanizzi Applications Engineering Silicon Graphics
GeForce3 OpenGL Performance. John Spitzer
GeForce3 OpenGL Performance John Spitzer GeForce3 OpenGL Performance John Spitzer Manager, OpenGL Applications Engineering jspitzer@nvidia.com Possible Performance Bottlenecks They mirror the OpenGL pipeline
Standard Graphics Pipeline
Graphics Architecture Software implementations of rendering are slow. OpenGL on Sparc workstations. Performance can be improved using sophisticated algorithms and faster machines. Real-time large-scale
Rasterization. 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
CS130 : Computer Graphics Lecture 2: Graphics Pipeline. Tamar Shinar Computer Science & Engineering UC Riverside
CS130 : Computer Graphics Lecture 2: Graphics Pipeline Tamar Shinar Computer Science & Engineering UC Riverside Raster Devices and Images Raster Devices - raster displays show images as a rectangular array
EECE 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
Real-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
Libraries for Computer Graphics. Introduction to VRT. Scene-graph libraries. Libraries for computer graphics. Scene-graph libraries (cont.
Libraries for Computer Graphics Introduction to VRT HT2004 Mikael Erlandsson mikael.erlandsson@hci.uu.se Application CG-Library OpenGL Hardware What functionality should be provided? Which data structures
CS452/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:
C 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
CMSC427 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
Rendering Grass with Instancing in DirectX* 10
Rendering Grass with Instancing in DirectX* 10 By Anu Kalra Because of the geometric complexity, rendering realistic grass in real-time is difficult, especially on consumer graphics hardware. This article
Introduction to VRT. Interactive Graphical Systems HT2007. Lars Pettersson. Interactive Graphical Systems
Introduction to VRT Interactive Graphical Systems HT2007 Lars Pettersson lwp@it.uu.se Interactive Graphical Systems Implementation levels Application Scene Graph lib. Computer Graphics lib. Hardware Informationsteknologi
Ciril Bohak. - INTRODUCTION TO WEBGL
2016 Ciril Bohak ciril.bohak@fri.uni-lj.si - INTRODUCTION TO WEBGL What is WebGL? WebGL (Web Graphics Library) is an implementation of OpenGL interface for cmmunication with graphical hardware, intended
Level of Details in Computer Rendering
Level of Details in Computer Rendering Ariel Shamir Overview 1. Photo realism vs. Non photo realism (NPR) 2. Objects representations 3. Level of details Photo Realism Vs. Non Pixar Demonstrations Sketching,
Tópicos de Computação Gráfica Topics in Computer Graphics 10509: Doutoramento em Engenharia Informática. Chap. 2 Rasterization.
Tópicos de Computação Gráfica Topics in Computer Graphics 10509: Doutoramento em Engenharia Informática Chap. 2 Rasterization Rasterization Outline : Raster display technology. Basic concepts: pixel, resolution,
Applications of Explicit Early-Z Z Culling. Jason Mitchell ATI Research
Applications of Explicit Early-Z Z Culling Jason Mitchell ATI Research Outline Architecture Hardware depth culling Applications Volume Ray Casting Skin Shading Fluid Flow Deferred Shading Early-Z In past
PowerVR Performance Recommendations. The Golden Rules
PowerVR Performance Recommendations Public. This publication contains proprietary information which is subject to change without notice and is supplied 'as is' without warranty of any kind. Redistribution
Your Prioritized List. Priority 1 Faulted gridding and contouring. Priority 2 Geoprocessing. Priority 3 Raster format
Your Prioritized List Priority 1 Faulted gridding and contouring Priority 2 Geoprocessing Priority 3 Raster format Priority 4 Raster Catalogs and SDE Priority 5 Expanded 3D Functionality Priority 1 Faulted
Lecture 17: Shading in OpenGL. CITS3003 Graphics & Animation
Lecture 17: Shading in OpenGL CITS3003 Graphics & Animation E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012 Objectives Introduce the OpenGL shading methods - per vertex shading
PROFESSIONAL. WebGL Programming DEVELOPING 3D GRAPHICS FOR THE WEB. Andreas Anyuru WILEY. John Wiley & Sons, Ltd.
PROFESSIONAL WebGL Programming DEVELOPING 3D GRAPHICS FOR THE WEB Andreas Anyuru WILEY John Wiley & Sons, Ltd. INTRODUCTION xxl CHAPTER 1: INTRODUCING WEBGL 1 The Basics of WebGL 1 So Why Is WebGL So Great?
CS 543: Computer Graphics. Rasterization
CS 543: Computer Graphics Rasterization Robert W. Lindeman Associate Professor Interactive Media & Game Development Department of Computer Science Worcester Polytechnic Institute gogo@wpi.edu (with lots
Fast Texture Based Form Factor Calculations for Radiosity using Graphics Hardware
Fast Texture Based Form Factor Calculations for Radiosity using Graphics Hardware Kasper Høy Nielsen Niels Jørgen Christensen Informatics and Mathematical Modelling The Technical University of Denmark
Pipeline 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
COMP371 COMPUTER GRAPHICS
COMP371 COMPUTER GRAPHICS SESSION 12 PROGRAMMABLE SHADERS Announcement Programming Assignment #2 deadline next week: Session #7 Review of project proposals 2 Lecture Overview GPU programming 3 GPU Pipeline
S WHAT THE PROFILER IS TELLING YOU: OPTIMIZING GPU KERNELS. Jakob Progsch, Mathias Wagner GTC 2018
S8630 - WHAT THE PROFILER IS TELLING YOU: OPTIMIZING GPU KERNELS Jakob Progsch, Mathias Wagner GTC 2018 1. Know your hardware BEFORE YOU START What are the target machines, how many nodes? Machine-specific
Pipeline 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
Class 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
LPGPU Workshop on Power-Efficient GPU and Many-core Computing (PEGPUM 2014)
A practitioner s view of challenges faced with power and performance on mobile GPU Prashant Sharma Samsung R&D Institute UK LPGPU Workshop on Power-Efficient GPU and Many-core Computing (PEGPUM 2014) SERI
Spring 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
This lecture. Introduction to VRT. Hardware. Implementation levels. Scene-Graph libraries. Computer Graphic libraries
Introduction to VRT HT2005 This lecture My research (not in your slides) Theory VRT Basic structures Useful functions Simple demo Mikael Erlandsson mikael.erlandsson@it.uu.se Informationsteknologi 2006-09-01
Scene 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
Rasterization Computer Graphics I Lecture 14. Scan Conversion Antialiasing Compositing [Angel, Ch , ]
15-462 Computer Graphics I Lecture 14 Rasterization March 13, 2003 Frank Pfenning Carnegie Mellon University http://www.cs.cmu.edu/~fp/courses/graphics/ Scan Conversion Antialiasing Compositing [Angel,
Indirect Volume Rendering
Indirect Volume Rendering Visualization Torsten Möller Weiskopf/Machiraju/Möller Overview Contour tracing Marching cubes Marching tetrahedra Optimization octree-based range query Weiskopf/Machiraju/Möller
CS 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
Spring 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
Multi Agent Navigation on GPU. Avi Bleiweiss
Multi Agent Navigation on GPU Avi Bleiweiss Reasoning Explicit Implicit Script, storytelling State machine, serial Compute intensive Fits SIMT architecture well Navigation planning Collision avoidance
Graphics 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
Current Trends in Computer Graphics Hardware
Current Trends in Computer Graphics Hardware Dirk Reiners University of Louisiana Lafayette, LA Quick Introduction Assistant Professor in Computer Science at University of Louisiana, Lafayette (since 2006)
- 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,
Computer Graphics Lecture 11
1 / 14 Computer Graphics Lecture 11 Dr. Marc Eduard Frîncu West University of Timisoara May 15th 2012 2 / 14 Outline 1 Introduction 2 Transparency 3 Reflection 4 Recap 3 / 14 Introduction light = local
Pipeline 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
Windowing System on a 3D Pipeline. February 2005
Windowing System on a 3D Pipeline February 2005 Agenda 1.Overview of the 3D pipeline 2.NVIDIA software overview 3.Strengths and challenges with using the 3D pipeline GeForce 6800 220M Transistors April
Today s class. Simple shadows Shading Lighting in OpenGL. Informationsteknologi. Wednesday, November 21, 2007 Computer Graphics - Class 10 1
Today s class Simple shadows Shading Lighting in OpenGL Wednesday, November 21, 27 Computer Graphics - Class 1 1 Simple shadows Simple shadows can be gotten by using projection matrices Consider a light
0. Introduction: What is Computer Graphics? 1. Basics of scan conversion (line drawing) 2. Representing 2D curves
CSC 418/2504: Computer Graphics Course web site (includes course information sheet): http://www.dgp.toronto.edu/~elf Instructor: Eugene Fiume Office: BA 5266 Phone: 416 978 5472 (not a reliable way) Email:
2: 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
Computer Graphics. Chapter 4 Attributes of Graphics Primitives. Somsak Walairacht, Computer Engineering, KMITL 1
Computer Graphics Chapter 4 Attributes of Graphics Primitives Somsak Walairacht, Computer Engineering, KMITL 1 Outline OpenGL State Variables Point Attributes Line Attributes Fill-Area Attributes Scan-Line
Lecture 25: Board Notes: Threads and GPUs
Lecture 25: Board Notes: Threads and GPUs Announcements: - Reminder: HW 7 due today - Reminder: Submit project idea via (plain text) email by 11/24 Recap: - Slide 4: Lecture 23: Introduction to Parallel
Image Processing. CSCI 420 Computer Graphics Lecture 22
CSCI 42 Computer Graphics Lecture 22 Image Processing Blending Display Color Models Filters Dithering [Ch 7.13, 8.11-8.12] Jernej Barbic University of Southern California 1 Alpha Channel Frame buffer Simple
Distributed Virtual Reality Computation
Jeff Russell 4/15/05 Distributed Virtual Reality Computation Introduction Virtual Reality is generally understood today to mean the combination of digitally generated graphics, sound, and input. The goal
INF3320 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
Image Processing. Alpha Channel. Blending. Image Compositing. Blending Errors. Blending in OpenGL
CSCI 42 Computer Graphics Lecture 22 Image Processing Blending Display Color Models Filters Dithering [Ch 6, 7] Jernej Barbic University of Southern California Alpha Channel Frame buffer Simple color model:
Rasterization 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
CS770/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
Vulkan: Architecture positive How Vulkan maps to PowerVR GPUs Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics.
Vulkan: Architecture positive How Vulkan maps to PowerVR GPUs Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics www.imgtec.com Introduction Who am I? Kevin Sun Working at Imagination Technologies
Computing on GPUs. Prof. Dr. Uli Göhner. DYNAmore GmbH. Stuttgart, Germany
Computing on GPUs Prof. Dr. Uli Göhner DYNAmore GmbH Stuttgart, Germany Summary: The increasing power of GPUs has led to the intent to transfer computing load from CPUs to GPUs. A first example has been
EF432. Introduction to spagetti and meatballs
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/fall2015 Instructor: Karan
the gamedesigninitiative at cornell university Lecture 17 Color and Textures
Lecture 7 Color and Textures Take Away For Today Image color and composition What is RGB model for images? What does alpha represent? How does alpha composition work? Graphics primitives How do primitives
Hidden Surfaces II. Week 9, Mon Mar 15
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2010 Tamara Munzner Hidden Surfaces II Week 9, Mon Mar 15 http://www.ugrad.cs.ubc.ca/~cs314/vjan2010 ews yes, I'm granting the request
11/1/13. Visualization. Scientific Visualization. Types of Data. Height Field. Contour Curves. Meshes
CSCI 420 Computer Graphics Lecture 26 Visualization Height Fields and Contours Scalar Fields Volume Rendering Vector Fields [Angel Ch. 2.11] Jernej Barbic University of Southern California Scientific Visualization
Visualization. CSCI 420 Computer Graphics Lecture 26
CSCI 420 Computer Graphics Lecture 26 Visualization Height Fields and Contours Scalar Fields Volume Rendering Vector Fields [Angel Ch. 11] Jernej Barbic University of Southern California 1 Scientific Visualization
Direct Rendering of Trimmed NURBS Surfaces
Direct Rendering of Trimmed NURBS Surfaces Hardware Graphics Pipeline 2/ 81 Hardware Graphics Pipeline GPU Video Memory CPU Vertex Processor Raster Unit Fragment Processor Render Target Screen Extended
Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03
1 Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03 Table of Contents 1 I. Overview 2 II. Creation of the landscape using fractals 3 A.
Display Technologies: CRTs Raster Displays
Rasterization Display Technologies: CRTs Raster Displays Raster: A rectangular array of points or dots Pixel: One dot or picture element of the raster Scanline: A row of pixels Rasterize: find the set
Textures. Texture Mapping. Bitmap Textures. Basic Texture Techniques
Texture Mapping Textures The realism of an image is greatly enhanced by adding surface textures to the various faces of a mesh object. In part a) images have been pasted onto each face of a box. Part b)
Visibility: 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
Realtime 3D Computer Graphics Virtual Reality
Realtime 3D Computer Graphics Virtual Reality From Vertices to Fragments Overview Overall goal recapitulation: Input: World description, e.g., set of vertices and states for objects, attributes, camera,
The Rasterization Pipeline
Lecture 5: The Rasterization Pipeline (and its implementation on GPUs) Computer Graphics CMU 15-462/15-662, Fall 2015 What you know how to do (at this point in the course) y y z x (w, h) z x Position objects
Photorealistic 3D Rendering for VW in Mobile Devices
Abstract University of Arkansas CSCE Department Advanced Virtual Worlds Spring 2013 Photorealistic 3D Rendering for VW in Mobile Devices Rafael Aroxa In the past few years, the demand for high performance
Building Models. Objectives. Introduce simple data structures for building polygonal models. OpenGL vertex arrays. Vertex lists Edge lists
Building Models Objectives Introduce simple data structures for building polygonal models Vertex lists Edge lists OpenGL vertex arrays 2 Representing a Mesh Consider a mesh v 5 v e e e 3 v 9 8 8 v e 4
Mali-400 MP: A Scalable GPU for Mobile Devices Tom Olson
Mali-400 MP: A Scalable GPU for Mobile Devices Tom Olson Director, Graphics Research, ARM Outline ARM and Mobile Graphics Design Constraints for Mobile GPUs Mali Architecture Overview Multicore Scaling
Discrete Techniques. 11 th Week, Define a buffer by its spatial resolution (n m) and its depth (or precision) k, the number of
Discrete Techniques 11 th Week, 2010 Buffer Define a buffer by its spatial resolution (n m) and its depth (or precision) k, the number of bits/pixel Pixel OpenGL Frame Buffer OpenGL Buffers Color buffers
Scheduling the Graphics Pipeline on a GPU
Lecture 20: Scheduling the Graphics Pipeline on a GPU Visual Computing Systems Today Real-time 3D graphics workload metrics Scheduling the graphics pipeline on a modern GPU Quick aside: tessellation Triangle
Finite Element Integration and Assembly on Modern Multi and Many-core Processors
Finite Element Integration and Assembly on Modern Multi and Many-core Processors Krzysztof Banaś, Jan Bielański, Kazimierz Chłoń AGH University of Science and Technology, Mickiewicza 30, 30-059 Kraków,
Computergrafik. 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
The Pixel-Planes Family of Graphics Architectures
The Pixel-Planes Family of Graphics Architectures Pixel-Planes Technology Processor Enhanced Memory processor and associated memory on same chip SIMD operation Each pixel has an associated processor Perform
Objectives Shading in OpenGL. Front and Back Faces. OpenGL shading. Introduce the OpenGL shading methods. Discuss polygonal shading
Objectives Shading in OpenGL Introduce the OpenGL shading methods - per vertex shading vs per fragment shading - Where to carry out Discuss polygonal shading - Flat - Smooth - Gouraud CITS3003 Graphics