Parallel rendering: Difference between revisions

Content deleted Content added
m cap
adding links to references using Google Scholar
Line 10:
 
=== 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.<ref>Molnar, S., M. Cox, D. Ellsworth, and H. Fuchs. “A“[http://www.cs.unc.edu/~fuchs/publications/SortClassify_ParalRend94.pdf A Sorting Classification of Parallel Rendering].” IEEE Computer Graphics and Algorithms, pages 23-32, July 1994.</ref>
 
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.<ref>Molnar, S., M. Cox, D. Ellsworth, and H. Fuchs. “A“[http://www.cs.unc.edu/~fuchs/publications/SortClassify_ParalRend94.pdf A Sorting Classification of Parallel Rendering].” IEEE Computer Graphics and Algorithms, pages 23-32, July 1994.</ref> It provides good data scaling and can provide good performance scaling, but it requires the intermediate images from processing nodes to be alpha composited to create the final image. As the image resolution grows, the alpha compositing overhead also grows.
 
A load balancing scheme is also needed to maintain performance regardless of the viewing conditions. This can be achieved by over partitioning the object space and assigning multiple pieces to each processing unit in a random fashion, however this increases the number of alpha compositing stages required to create the final image. Another option is to assign a contiguous block to each processing unit and update it dynamically, but this requires dynamic data loading.