We present RenderAnts, the first system that enables interactive
REYES rendering on GPUs. Taking RenderMan scenes and
shaders as input, our system first compiles RenderMan shaders to
GPU shaders. Then all stages of the basic REYES pipeline, including
bounding/splitting, dicing, shading, sampling, compositing
and filtering, are executed on GPUs using carefully designed dataparallel
algorithms. Advanced effects such as shadows, motion blur
and depth-of-field can be also rendered with our system. In order
to avoid exhausting GPU memory, we introduce a novel dynamic
scheduling algorithm to bound the memory consumption during
rendering. The algorithm automatically adjusts the amount of data
being processed in parallel at each stage so that all data can be
maintained in the available GPU memory. This allows our system
to maximize the parallelism in all individual stages of the pipeline
and achieve superior performance. We also propose a multi-GPU
scheduling technique based on work stealing so that the system can
support scalable rendering on multiple GPUs. The scheduler is designed
to minimize inter-GPU communication and balance workloads
among GPUs.
We demonstrate the potential of RenderAnts using several complex
RenderMan scenes and an open source movie entitled Elephants
Dream. Compared to Pixar’s PRMan, our system can generate images
of comparably high quality, but is over one order of magnitude
faster. For moderately complex scenes, the system allows the user
to change the viewpoint, lights and materials while producing photorealistic
results at interactive speed.