Search form

Gelato 2.0 Review: Harnessing the GPU

Tara DiLullo talks with Academy Award nominated ILM visual effects supervisor Pablo Helman about winning the invisible visual effects war with their work on Jarhead.

Written to take advantage of the Quadro FXs powerful GPU, Gelato 2.0s highlights include the Sorbetto relighting system, volume shadows for hair and smoke and a brand new plug-in for 3ds Max.

Veterans of the 3D industry especially regulars on mailing lists and specialty forums may recall the days when neophytes were regularly laughed at for asking how quickly their scenes would render if they invested in a new video card. Invariably, some patient sage would explain that the video card didnt assist in the rendering of scenes that was dependent upon their CPU speed and system memory. The embarrassed newbie would sheepishly slink away, and the process would be repeated again the next week. Fast-forward to the present. Leveraging the power of the Graphics Processing Units (GPU) on NVIDIA, Quadro FX cards take much of the burden of rendering off your computers CPU. But what good is hardware without the software to go with it? Consisting of Gelato, Amaretto, Sorbetto and Mango, NVIDIAs film software products may sound like a smorgasbord of sweet Italian desserts, but its actually a powerful suite of rendering tools. Written from the ground up to take advantage of the Quadro FXs powerful GPU, Gelato 2.0s highlights include the Sorbetto relighting system, volume shadows for hair and smoke and a brand new plug-in for 3ds Max. The software runs under Windows and Linux and employs Python, Pyg (Gelatos Python-based scene format) and C++. Gelato can open any file format it has a plug-in for, and you can write your own plug-ins for the file format of your choice. Theres already a RIB importer, for example. In addition to GUI rendering through a host program such as Maya or 3ds Max, Gelato supports command line rendering. Of course, studios that want to create their own tools to use with Gelato will appreciate its clean and flexible API and the openness of its Python and C++ interfaces.

Gelato shaders in the 3ds Max Material Editor. All Gelato screenshots courtesy of Bryan Hoff.

I tested the latest Gelato 2.0 Beta using Autodesk 3ds Max 8 professional 3D software and Alias Maya 7 Unlimited. Admittedly, my testing system is seriously underpowered for this software, with the most powerful component in the pipeline being my Quadro FX 1100 video card, but Ill endeavor to bring you the best information on Gelato 2.0 from a production and improved workflow perspective.

A Cup of Gelato

Building on Gelato 1.2s toolset, which includes sub-surface scattering (SSS), global illumination (GI), motion blur, efficient NURBS rendering and ambient occlusion, Gelato 2.0 brings even more cards to the table, as it introduces the following new or improved features:

  • Sorbetto Gelatos powerful new relighting system. Sorbettos benefits are best witnessed with larger scenes, with a reduction in re-rendering times of up to six times in the example I saw. Sorbetto is also accessible via the API.

  • Mango The Gelato plug-in for Alias Maya. Mango can directly translate many Maya Hypershade shaders, and allows you to visually edit existing shaders in Maya, although if you want to create your own from scratch youll need some programming ability, since theres no GUI access for that. As David Wilton, Gelato product manager suggests, Anyone who can do C++ programming, can write a Gelato shader. Once written, however, non-programmers can change the shader parameters from the GUI.

  • Amaretto A 3ds Max Gelato plug-in created by Frantic Films and re-sold by NVIDIA, Amaretto gives you GUI access to all of Gelatos features and allows editing of Gelato shaders in the Material Editor (shown in Figure 2), plus conversion of 3ds Max materials to Gelatos shader networks (GSO).

  • Volume Shadows Gelato 2.0 now supports volume shadows for hair and smoke, adding realism to your renderings.

  • Stereo Rendering Allows you to create stereo images faster than rendering the two stereo images separately, either full-color ones or red-blue images that appear three-dimensional when viewed with red-blue glasses. An example of stereo rendering is shown in Figure 3.

hoff02_stereoscopic.jpghoff03_GelatoSorbetto-lab.gif

[Figures 2 & 3] A stereo rendering of some teapots get out your 3D glasses! Sorbetto in action.

Price and Performance

Gelato is positioned to compete with Pixars RenderMan and mental images mental ray renderer. Gelato 1.2 was priced at $2,750, with an additional $525 annual maintenance and support fee. Gelato 2.0 is priced much more aggressively at $1,500, including your choice of Mango or Amaretto and one year of maintenance, support and upgrades. Sorbetto costs an additional $2,200 and supports Maya, with 3ds Max support in development. Volume discounts, site licenses and leasing options are also available. Obviously, to take full advantage of Gelato, youll need a system with a Quadro FX video card in it, including your render nodes. A server will cost you between $3,800 and $4,300, which include a Quadro FX 1400 or 3450 and a Gelato license. Gelato is certified and tested with the complete lineup of NVIDIA Quadro FX professional graphics solutions as these cards are all manufactured by NVIDIA. The professional cards also offer a number of features, such as overlay plane support and anti-aliased points and lines, that improve overall performance when working in applications like Gelato. For users with limited budgets, it may be possible to run the software on other graphics cards, like NVIDIA GeForce consumer cards, but these are not certified or guaranteed to work by NVIDIA.

Of course, Gelato 2.0 also offers speed and image improvements, and installing Gelato and its accompanying plug-ins was a smooth process. Gelato arguably renders scenes up to twice the speed of RenderMan, with comparable image quality. Sorbetto sweetens the deal by allowing you to quickly relight your scenes without having to recalculate the entire scene. Lets explore Sorbetto in more depth.

(Re)light My Fire

Sorbetto is the star of the Gelato 2.0 show. As previously mentioned, Sorbetto is Gelato 2s new relighting system, and although it costs an additional $2,200, the gain in productivity will quickly justify its cost. Gelatos Mango plug-in for Maya supports Sorbetto, and soon the Amaretto plug-in for 3ds Max will support it as well. And since Sorbetto is accessible through the Gelato API, any tool that can use Gelato as a renderer can make use of Sorbetto as well. Since youre working with final image and not a proxy, Sorbetto allows you to view your changes in a true WYSIWYG environment. And Sorbetto requires no special scene preparation or custom shaders; any scene that can be rendered in Gelato can be re-rendered with Sorbetto. For example, lets say your studio is creating a vfx for a movie, and the director wants you to match the existing scenes lighting exactly. Sorbetto speeds the visualization process of matching the existing scenes lighting by allowing your lighting technicians to add extra fill lights and tweak ambient lighting, then rapidly test those changes. An example of Sorbetto in action is shown in Figure 4, where the original scene was rendered in 3 minutes, 30 seconds, and then light characteristics were changed, a light was added and the scene was updated in 30 seconds. Making a simple lighting change, such as the one to the glow around the display at the right of the bottom image, allowed the scene to be updated in a mere five seconds.

[Figure 6] A depth of field render pass invoked from the command line.

Gelato is fully integrated with Maya, even to the point of including a Gelato/Sorbetto Shelf, as shown in Figure 5. Youre able to adjust lighting, shaders and render settings, and use the buttons in the shelf to control relighting, toggle progressive refinement and so on. Progressive refinement, or rapid preview rendering in Mango, can show you a quick preview of your scene, and allowing the render to continue provides a full quality render.

The way Sorbetto works is instead of discarding data calculated during a render, it caches that data and uses it to rapidly recalculate changes to scene lighting. The resulting time-savings can be up to six times that of the initial render. You really need to experience Sorbetto to appreciate it, as words and still images cant do it justice.

Shadows Weve Got Shadows

Gelato 2.0 also introduces volumetric shadows for smoke and hair/fur in Maya. The hairy monster (shown in Figure 6) is an updated image that some may recognize from Gelato 1.2, takes full advantage of this new feature. By adding multiple depth values per pixel, volume shadow maps eliminate the shortcomings of regular shadow maps as used with hair and smoke. As with all of Gelatos features, volume shadows are completely accessible via the API.

GPU + Gelato = Speed

Gelato is available for Linux (both 32- and 64-bit) and Windows XP 32-bit, with a Windows 64-bit port on the way. With the recent introduction of NVIDIA Quadro FX for the Apple Power Mac computers, there is the potential for an OS X port of Gelato in the future. NVIDIA has no plans for an OS X port at the moment, but wont rule it out if theres enough industry demand. Better GUI integration with Maya and now 3ds Max promises to make working with Gelato even more transparent, although its command line features should not be underestimated. By running a simple batch file under Windows or a shell script under Linux, you can call iv, Gelatos image viewer, and perform a complex render pass from the command line. While its not necessary to invoke iv, its nice to be able to see the progress of your render. Command line rendering is fast, and a good way to invoke Gelatos network capabilities. For studios with the need to tweak settings and create custom shaders and plug-ins, Gelato is ideal. Its also a boon to studios that want GUI integration with Max and Maya. And with advances in GPU capability occurring at a rate of Moores Law squared, Gelatos speed and performance will continue to increase much more quickly than software-only renderers, providing studios with a future-resistant rendering solution.

Bryan Hoff is a multifaceted artist and writer. A freelance web designer, digital artist and animator, his credits include movie and television effects, online games, 3D corporate animation, Flash and traditional website design. His writing credits include articles for LinuxWorld, Element K Journals and InformIT, covering such topics as Photoshop effects, Linux 3D graphics applications, Web and HTML design, RSS feeds and painting with a graphics tablet. Bryan has written ebooks on blogging and website creation for beginners and regularly teaches classes for Element K online.

randomness