Estratégias de Paralelização do Algoritmo de Ray Tracing
Apr 1997
Image rendering using ray tracing enjoys the benefits of a simple
algorithm, capable of increased realism but, unfortunately, very
expensive. This high computation cost, seconded by an inherent
parallelism, turns this algorithm into a natural candidate for
parallel and/or distributed solutions.
This dissertation addresses the various aspects of
development of parallel ray tracing algorithms targeted at
local networks with standard \unix\ environments.
First we discuss ray tracing in general and methods currently available to improve execution times. Next we
present one of such optimization techniques, used in our prototype, corresponding to
a variation of \textsl{Spatial Enumeration}. This optimization method
discretizes space by means of a hierarchy of uniformly subdivided
grids that, with proper parametrization, enjoys compactness and
adaptability associated with octrees, maintaining fast processing
of uniform spatial subdivision.
Parallel rendering is addressed next, beginning with a discussion of
parallel ray tracing in respect to the available parallelization strategies: \emph{Control-oriented parallelization}
and \emph{Data-oriented parallelization}. This work studied both and
produced two architectures which are described in great detail.
In this study we find that control-oriented parallelization is globally
superior to its counterpart. The architecture designed according to
that strategy is the most versatile and the one that obtained the
best overall results. Its main characteristic relies on the emulation of a shared virtual memory among different processors, achieved by mapping a NFS file to memory. In spite of its simplicity, this mechanism showed to be
sufficient to attend good results. Additionally, with the illusion of a shared
memory simplier algorithms are possible requiring considerable less development time.