Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Distributed Systems Seminar:

Distributed Rendering in Computer


Graphics

Rohan Athawade, Rashi Dhir, Shilpi Srivastava


Contents

About Distributed Rendering

“Distribution” in Distributed Rendering

Distributed Rendering Pipeline

Distributed Algorithms for Rendering

Advantages and Disadvantages


About Distributed Rendering

Distributed Systems + Computer Graphics


and Rendering = Distributed Rendering

Performance Scaling Data Scaling


Performance Scaling Data Scaling

• It is often advised to focus system design • Data Scaling pertains to scaling and
on hardware scalability rather than on improving data handling rather than
capacity. workload handling.
• It is typically cheaper to add a new node • This means that data scaling allows for
to a system in order to achieve improved increased sizes of datasets to be viewed.
performance than to partake in • However, data scaling often falls prey to
performance tuning to improve the load balancing issues and latency.
capacity that each node can handle. • Despite this, different methods of
• Performance scaling therefore allows distributing the workload tend to favor
frames to be rendered more quickly this type of scaling over the other.
“Distribution” in Distributed Rendering

Frame Distribution Pixel Distribution Object Distribution Hybrid Distribution


Frame Distribution

• Each processing unit can render an entire frame


from a different point of view or moment in time.
• The frames rendered from different points of view
can improve image quality with anti-aliasing or
add effects like depth-of-field and three-
dimensional display output.
• This approach allows for good performance
scaling but no data scaling.
• When rendering sequential frames in parallel
there will be a lag for interactive sessions.
• The lag between user input and the action being
displayed is proportional to the number of
sequential frames being rendered in parallel.
Pixel Distribution

• Sets of pixels in the screen space can be distributed


among processing units in what is often referred to
as sort first rendering.
• Distributing interlaced lines of pixels gives good
load balancing but makes data scaling impossible.
• Distributing contiguous 2D tiles of pixels allows for
data scaling by culling data with the view frustum.
• However, there is a data overhead from objects on
frustum boundaries being replicated and data has to
be loaded dynamically as the view point changes.
• Dynamic load balancing is also needed to maintain
performance scaling.
Object Distribution

• Distributing objects among processing units is often


referred to as sort last rendering.
• It provides good data scaling and can provide good
performance scaling, but it requires the intermediate
images from processing nodes to be composited to
create the final image.
• As the image resolution grows, the alpha compositing
overhead also grows.
• This can be achieved by over partitioning the object space
and assigning multiple pieces to each processing unit in
a random fashion.
• Another option is to assign a contiguous block to each
processing unit and update it dynamically, but this
requires dynamic data loading.
Hybrid Distribution

• The different types of distributions can be combined in a number of fashions.


• A couple of sequential frames can be rendered in parallel while also rendering each of those
individual frames in parallel using a pixel or object distribution.
• Object distributions can try to minimize their overlap in screen space in order to reduce alpha
compositing costs, or even use a pixel distribution to render portions of the object space.
Distributed Rendering Pipeline

Transformation Stage Rasterization Stage

Pre-vertex operations Pre-Fragment operations

Primitive Assembly Texture Mapping

3D World Space 2D Image Space


Distribution Algorithms for Rendering

Sort Last Sort Middle Sort First


Distribution Algorithms for Rendering Sort Last

1. Distribute Polygons – Round Robin


distribution resulting in equal load on each
node or processor

2. Pass through entire rendering pipeline –


Transformation and Rasterization

3. Each CPU now has entire scene

• Individual scenes are still incomplete


• Hidden Polygons may still be visible
• Solution: Image Composition
Distribution Algorithms for Rendering Sort Middle

1. Distribute Polygons – Round Robin


distribution resulting in equal load on each
node or processor

2. Trap polygons between geometry and


rasterization phases

3. Each CPU in the cluster is responsible for a


specific region in screen coordinates

4. Calculate the bounding boxes (screen space)


for the trapped polygons and redistribute them
to the appropriate CPU responsible for the
region.

5. Collate Images
Distribution Algorithms for Rendering Sort First

1. Distribute Polygons – Round Robin


distribution resulting in equal load on each
node or processor

2. Calculate bounding volumes of for each


polygon

3. Each CPU is responsible for one polygon

4. Redistribute polygons based on bounding


volumes

5. Pass through entire rendering pipeline –


Transformation and Rasterization

6. Sub-Images at each
processor in the end
Advantages Disadvantages

Cannot break rendering pipeline as it is


Increasing rendering capability
implemented in hardware

Deal with larger datasets in smaller Usually suitable graphics driver and
amounts of time source code is unavailable

Combine multiple techniques in single Additional Cost Overhead due to need of


visualization buffer

Increase Interactivity

You might also like