James Cameron’s 3D movie Avatar available worldwide since December 18, 2009 had a record breaking opening weekend of over $77 million for any 3D movie, and has grossed over $1 billion worldwide since then. Besides being really big hit Stereoscopic 3D movie, one of the distinguishing parts was that it features huge and very detailed scenes and an extensive cast of virtual characters set in computer generated (CG) environments mixed with live people.
The primary visual effects vendor on the film is the New Zealand company Weta Digital (they have a quite big portfolio working on the effects of a lot of hit movies) utilizing NVIDIA’s Quadro professional graphics solutions and Tesla high performance computing solutions in its visual effects (VFX) production pipeline. The company had to build sequences with as many as 800 fully CG characters in highly stylized digital settings, something that is not an easy job to do. The computational power required to process the Avatar shots was higher than that required by any project Weta Digital had faced to date, so they turned to NVIDIA for help, because for the first time in the history of CG visual effects, the number of polygons required was going to be measured in billions rather than in millions. And don’t forget that you also have to render each frame two times with a little different perspective in order to achieve the stereoscopic 3D effect, meaning that the processing of the movie literally gets doubled.
Weta R&D and NVIDIA Research began their collaboration by starting the development of a ray-tracing software solution that could handle the billions of polygons required in Avatar’s complex sequences. Together, NVIDIA and Weta co-developed a new pre-computation engine, dubbed PantaRay, to bring high-performance computing power into Weta’s VFX pipeline. The name PantaRay is a clever twist on a Greek aphorism “panta rhei” which means “everything flows”. This powerful ray-tracing system was designed specifically to accelerate pre-computation of scene occlusion information used throughout Weta’s rendering pipeline, to allow quick and dynamic re-computation of image-based lighting.
The innovative approach enabled Weta to render more complex scenes in less time, while using less memory and fewer processors thus also reducing various costs. The result gave artists the critical ability to iterate faster and make more changes, ultimately achieving higher quality photorealistic results. With NVIDIA’s co-development efforts, Weta was able to generate scenes that previously would have been time and cost prohibitive. With Weta’s PantaRay engine ported to a CUDA-based GPU driven version being able to run 25 times faster, utilizing an NVIDIA Tesla S1070 GPU-based server instead of a CPU based server.
A shot that demonstrates the advantages Weta achieved with PantaRay can be seen in the movie’s promotional trailer. The shot from a helicopter looking over a huge flock of hundreds of purple creatures flying over water, with a massive tree-covered mountain in the background was pre-computed in just a day and a half using PantaRay. That shot would have taken a week with previous methods and being so much faster with the help of PantaRay it was possible to create a much more beautiful shot – you can see fine detail on every bush, every leaf and the color separation between distances is clean and clear.
Weta Digital plans to incorporate its GPU-accelerated PantaRay solution into its pipeline for the upcoming Steven Spielberg/Peter Jackson film, Tintin, as well as exploring new ways in which PantaRay and GPUs can further accelerate its overall visual effects pipeline.