Introduction to Parallel Rendering Jian Huang, CS 594, Spring 2002.

Slides:



Advertisements
Similar presentations
Visible-Surface Detection(identification)
Advertisements

COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
CS 352: Computer Graphics Chapter 7: The Rendering Pipeline.
Graphics Pipeline.
RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.
Computer Graphic Creator: Mohsen Asghari Session 2 Fall 2014.
Ray Tracing CMSC 635. Basic idea How many intersections?  Pixels  ~10 3 to ~10 7  Rays per Pixel  1 to ~10  Primitives  ~10 to ~10 7  Every ray.
3D Graphics Rendering and Terrain Modeling
Chapter 6: Vertices to Fragments Part 2 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley Mohan Sridharan Based on Slides.
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
Part I: Basics of Computer Graphics Viewing Transformation and Coordinate Systems Chapter
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
Page 1 CS Department Parallel Design of JPEG2000 Image Compression Xiuzhen Huang CS Department UC Santa Barbara April 30th, 2003.
Introduction to Parallel Rendering: Sorting, Chromium, and MPI Mengxia Zhu Spring 2006.
Parallel Rendering Ed Angel
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Models and Architectures Ed Angel Professor of Computer Science, Electrical and Computer.
FLANN Fast Library for Approximate Nearest Neighbors
Parallel Graphics Rendering Matthew Campbell Senior, Computer Science
Hidden Surface Removal
Sort-Last Parallel Rendering for Viewing Extremely Large Data Sets on Tile Displays Paper by Kenneth Moreland, Brian Wylie, and Constantine Pavlakos Presented.
Electronic Visualization Laboratory University of Illinois at Chicago “Sort-First, Distributed Memory Parallel Visualization and Rendering” by E. Wes Bethel,
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Computer graphics & visualization REYES Render Everything Your Eyes Ever Saw.
Chep06 1 High End Visualization with Scalable Display System By Dinesh M. Sarode, S.K.Bose, P.S.Dhekne, Venkata P.P.K Computer Division, BARC, Mumbai.
Parallel Rendering 1. 2 Introduction In many situations, standard rendering pipeline not sufficient ­Need higher resolution display ­More primitives than.
Large-Scale Polygon Rendering. Solutions Decimation Visibility Culling Parallel Rendering Others.
A Sorting Classification of Parallel Rendering Molnar et al., 1994.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
Matrices from HELL Paul Taylor Basic Required Matrices PROJECTION WORLD VIEW.
Seminar II: Rendering Architectures Yan Cui Love Joy Mendoza Oscar Kozlowski John Tang.
CSC 461: Lecture 3 1 CSC461 Lecture 3: Models and Architectures  Objectives –Learn the basic design of a graphics system –Introduce pipeline architecture.
1 Multiprocessor and Real-Time Scheduling Chapter 10 Real-Time scheduling will be covered in SYSC3303.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
Parallel Rendering. 2 Introduction In many situations, a standard rendering pipeline might not be sufficient ­Need higher resolution display ­More primitives.
1Computer Graphics Lecture 4 - Models and Architectures John Shearer Culture Lab – space 2
Real-time Graphics for VR Chapter 23. What is it about? In this part of the course we will look at how to render images given the constrains of VR: –we.
Pipelined and Parallel Computing Data Dependency Analysis for 1 Hongtao Du AICIP Research Mar 9, 2006.
Partitioning Screen Space 1 (An exciting presentation) © 2002 Brenden Schubert A New Algorithm for Interactive Graphics on Multicomputers * The Sort-First.
Interactive Rendering With Coherent Ray Tracing Eurogaphics 2001 Wald, Slusallek, Benthin, Wagner Comp 238, UNC-CH, September 10, 2001 Joshua Stough.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
David Luebke11/26/2015 CS 551 / 645: Introductory Computer Graphics David Luebke
Parallel Rendering Ed Angel Professor Emeritus of Computer Science University of New Mexico 1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
Partitioning Screen Space 2 Rui Wang. Architectural Implications of Hardware- Accelerated Bucket Rendering on the PC (97’) Dynamic Load Balancing for.
Where We Stand At this point we know how to: –Convert points from local to window coordinates –Clip polygons and lines to the view volume –Determine which.
1 Angel: Interactive Computer Graphics5E © Addison- Wesley 2009 Image Formation Fundamental imaging notions Fundamental imaging notions Physical basis.
Fateme Hajikarami Spring  What is GPGPU ? ◦ General-Purpose computing on a Graphics Processing Unit ◦ Using graphic hardware for non-graphic computations.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
What are shaders? In the field of computer graphics, a shader is a computer program that runs on the graphics processing unit(GPU) and is used to do shading.
The Graphics Pipeline Revisited Real Time Rendering Instructor: David Luebke.
An interleaved Parallel Volume Renderer with PC-clusters Antonio Garcia and Han-Wei Shen Dept of Computer Science Ohio State University Eurographics Workshop.
A Sorting Classification of Parallel Rendering Molnar et al., 1994.
Chapter 1 Graphics Systems and Models Models and Architectures.
1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 Models and Architectures 靜宜大學 資訊工程系 蔡奇偉 副教授 2012.
GLSL Review Monday, Nov OpenGL pipeline Command Stream Vertex Processing Geometry processing Rasterization Fragment processing Fragment Ops/Blending.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
Week 2 - Monday CS361.
Introduction to OpenGL
The Graphics Rendering Pipeline
Models and Architectures
Models and Architectures
Introduction to Computer Graphics with WebGL
Introduction to Computer Graphics with WebGL
Models and Architectures
Models and Architectures
Database System Architectures
Chapter 01: Introduction
Presentation transcript:

Introduction to Parallel Rendering Jian Huang, CS 594, Spring 2002

Parallel Rendering Graphics rendering process is computationally intensive Parallel computation is a natural measure to leverage for higher performance Two levels of parallelism: –Functional parallelism – pipelining –Data parallelism – multiple results computed at the same time

Data Parallel Algorithms A lot of taxonomies of categorizing parallel algorithms –Image space vs. object space –Shared memory architecture, distributed memory architecture –MPI, OpenMP, … Need a uniform framework to study and understand parallel rendering

A Core Problem To partition work and distribute them –Rendering requires the involved data to go with each work partition –How to collect the rendered results to form the final image –Intensive data communication A landmark paper: “A sorting classification of parallel rendering”, Molner, et. al., IEEE CG&A’94.

The Rendering Process The rendering pipeline: –Geometry processing: transformation, lighting, clipping –Rasterization: scan-conversion, shading, visibility Parallel processing:

A New Perspective Rendering as a sorting process: –Sort from object coordinates to screen coordinates –Use this concept to study computational and communication costs

Sorting Parallel geometry processing: assign a subset of primitives or objects to each processor Parallel rasterization processing: assign a sub- region of the screen to each processor The key procedure: calculating the effect of each primitive on each pixel Rendering is a ‘sorting’ process from each primitive into each screen pixel –This sort involves redistributing data among processors

Where does the ‘sort’ take place? The location of this ‘sort’ determines the structure of the parallel algorithm This ‘sort’ can take place during: –Geometry processing (sort-first) –Between geometry processing and rasterization (sort-middle) –Rasterization (sort-last) Each different sort has distinct properties

Sort-First Redistributing raw primitives

Sort-Middle Redistributing screen primitives

Sort-Last Redistributing fragments, samples, or pixels

Processing and Communication Model A refined model Assume a dataset containing n r raw primitives with average size a r. We will call primitives that result from tessellation display primitives. If T is the tessellation ratio, there are n d = Tn r of these, with average size a d = a r /T. If there is no tessellation, T = 1, n d = n r, and a d = a r. Assume an image containing A pixels and need to compute S samples per pixel. Assume that all primitives within the viewing frustum).

The Terms

Analysis of Sort-First c, proportion of primitives to be redistributed Advantages –Low communication requirements when the tessellation ratio and the degree of oversampling are high, or when frame-to- frame coherence can be exploited. –Processors implement entire rendering pipeline for a portion of the screen. Disadvantages –Susceptible to load imbalance. Primitives may clump into regions, concentrating the work on a few renderers. –To take advantage of frame-to-frame coherence, retained mode and complex data handling code are necessary. Cost over uni-processor rendering

Analysis of Sort-Middle Advantages: General and straightforward; redistribution occurs at a natural place in the pipeline. Disadvantages: –High communication costs if tessellation ratio is high. –Susceptible to load imbalance between rasterizers when primitives are distributed unevenly over the screen. Cost over uni-processor rendering

Analysis of Sort-Last Sparse merging – only merge the small region each processor renders Full-frame merging – always merge the whole frame-buffer Advantages: –Renderers implement the full rendering pipeline and are independent until pixel merging. –Less prone to load imbalance. –SL-full merging can be embedded in a linear network, making it linearly scalable. Disadvantage: Pixel traffic may be extremely high, particularly when oversampling. Cost over uni-processor rendering

A Comparison Sort-first, sort-middle and sort-last. There is no strictly the best category Different categories can be combined in an implementation as well

Parallel Volume Rendering A lot of algorithms choose to distribute data to processing nodes. Each node renders its portion of data, and generate a partial image. The partial images then get accumulated together. Screen space partitioning (tiles or continuous scan-lines) are also used.

Load Balancing For better load balancing, –Task queuing: the task queue can be ordered in decreasing task size, such that the concurrency gets finer until the queue is exhausted. –Load stealing: having nodes steal smaller tasks from other nodes, once they have completed their own tasks –Time stamp: timeout stamps used for each task, such that if the node can not finish its task before the timeout, it takes the remnant of the task, re-partitions it and re-distributes it. Hierarchical data structures, such as octree, k-d tree, etc., are commonly used.

Sum It Up Parallelism is just a tool It depends on which algorithm you parallelize What about an OpenGL application utilizing occlusion culling?