Comparison: 3Delight vs NVIDIA Iray for Animations

For this animation I’ve rendered the same scene twice in DAZ Studio 4.8: once with 3Delight and once with the new NVIDIA Iray engine. It’s interesting to compare the results in an animation rather than a still image due to the different challenges involved.

One thing is that the subject is illuminated differently depending on how far away it is from the camera. Another is that it’s difficult to get matching end results when mixing faster and slower hardware: Iray can take a long time to finish a render if no GPU acceleration is around.

 

Scene Setup

For this test I’m using the Clair character, which is based on Genesis 2. She came as part of the Belle and Brodie bundle. I’ve fitted the default red dress from Marvelous Designer 4 and animated it with an aniblock from SKAmotion’s V6 collection. I also added Bubblegum hair because it doesn’t move – I haven’t tried out dynamic hair in an animation  yet.

It’s impossible to match two different light settings of course: Iray relies on global illumination and (I think) ignores traditional DAZ Studio lights. At the same time, 3Delight requires a light set and doesn’t look all that palatable when rendered without any lights.

I decided to use a set from 3D Universe which come as part of the Kimberley, Jason and Amy figures. They render very fast and give adequate results in 3Delight. I added a ground plane so that the figure’s shadows would be rendered.

For the Iray sequence I’ve removed the lights completely and rendered with full transparency: no dome and no ground. The figure’s shadows were still rendered. I added the same plane as in the 3Delight sequence in Premiere.

 

Look and Feel

With 3Delight the image appears to be consistently lit, no matter how far away the character is from the camera: the dress and skin tone are the same if the figure is in the distance, or if she’s close to the camera.

With Iray this is not the case: while the shadows are crisp, the illumination is much brighter as the figure moves towards the camera, and gets darker as she moves away. Take the red dress for example: it almost clips the luminance in the closeup, while being nearly black in the distance.

Here’s a higher resolution Iray render of the above scene. Our model is very close to the camera and almost too bright:

Iray-Close

With the same lighting settings, I’ve moved the camera further away and rendered the image at a larger size, then cropped it to approximate the above framing. Notice how the lighting has changed:

Iray-Far

I’m not sure what to make of it. Does the Iray light source always come from where the camera is? Is it just the default lighting/render settings? Can this be changed somehow?

Time will tell.

 

Rendering Challenges with Iray Animations

One thing that’s very different between the two engines is how results are calculated. These implications are important for animations:

With 3Delight each frame will look the same, no matter which operating system or hardware it was rendered on. Slower hardware will take a little longer, but each pixel of every image will look exactly the same. That’s important for animations where you may have to re-render a few frames and drop them into a longer sequence.

Iray is completely different: because it’s ray based, the engine will wait either for a certain amount of rays to be cast, or a defined time limit. When either is reached, the render is deemed finished. In essence, ray based renders never finish – unless we stop them. It’s the same in other ray-based renderers, such as Luxrender and Cycles.

When an Iray render starts with only a few rays (about 20) it’s very grainy and a bit dark. The longer we leave it, the more detail and brightness it will receive over time. Keyshot and other progressive rendering engines work the same way. The idea is that you get an overall impression of what your lighting looks like, without having to wait for every detail to have finished rendering.

Iray-Split

In the picture above, the left hand side has rendered about 10 minutes with roughly 500 rays. On the right hand side is the same render after only one minute, having cast 20 rays.

How long it takes for all grain to be gone and every detail to be rendered depends on the image content: while frame 1 of an animation may yield great results after 5 minutes and/or 400 rays, image 50 may be a different story: it could contain more objects, more crevices and more detail, and after the same amount of time (or rays) could still look grainy.

This poses a problem for animations: if you mix slower and faster hardware in your render setup, you can’t rely on a time limit to deliver consistent results. Likewise, you can’t rely on a ray limit either: we need the grain and brightness to be consistent across the whole animation, and the same amount of rays may yield different results depending on the content of each image in the sequence.

While I must admit that I don’t see any grain artefacts in the above animation, the scene isn’t complicated and does not contain huge amounts of detail. More complex scenes would need to be evaluated, especially at larger sizes. The “render and forget about it” approach isn’t going to work reliably with Iray – at least not for animations.

Before I forget, you can set the ray bounce and time limits under Render Settings – Progressive – Completion.

Screen Shot 2015-04-07 at 09.04.31

Max Time is the amount in seconds after which a render is deemed finished (the default is 7200 – or two hours in human terms). Max Samples is the amount of rays that are bounced before a render is deemed finished.

To make sure the render isn’t terminated prematurely, add a high enough time limit.

 

Distributed rendering with Iray Server

Since rendering is always a bottleneck, no matter if it’s a large complex image or an animation, NVIDIA appear to have plans to make such software available: they call it Iray Server and it’s in beta at the time of writing.

It is unclear if this will be integrated into DAZ Studio, nor do I know how to transfer a scene to such a render farm. Ideally we’d have a single file/folder which includes the geometry, textures and render settings so that Iray Server can go to work.

Perhaps one day we’ll see Iray Render Farms which are just a click away from DAZ Studio?





9 thoughts on “Comparison: 3Delight vs NVIDIA Iray for Animations

  1. There is – of course – much more to Iray rendering than simply switching the engine under Render Settings. Remember the “light emitting from the camera” issue I’ve described? Turns out that cameras now have the option to have “head lamps” enabled, which is a light that’s emanating from the camera – including the Perspective View. I guess this is to enable some kind of light in the scene which may otherwise be completely dark.

    To switch this effect off or change its intensity, create a camera, select it and head over to its Properties. Switch it off under Headlamp.

    Screen Shot 2015-04-28 at 17.45.39

  2. Thanks for that review. I never get warm with the iray engine. poor control of shadowparameters. Still prefer the 3delight engine. So after reading you post, some facts seems to more confirm my doubts. Let’s see what’s happen in the future. Networkrendering would be a cool thing, but only with consistent imagequality.

    1. Hi Tolero, that’s precisely how I feel. While I appreciate a second render engine in DAZ Studio, I’m on a Mac and hence will never be able to use an NVIDIA graphics card with CUDA cores. Hence I’d have to live with increasing render times anywhere between 10x and 200x – and honestly, life’s too short for that.

      I did see a note in the changelog that some internal testing is happening in regards to Iray Cloud. It would be awesome if this was a cloud subscription service to which we could send our renders, and get them back moments later. Only time will tell. For now, I’m sticking with 3Delight too 🙂

  3. Hi
    Thanks for doing test. What were the render times between the two engines. And what size graphics card, i.e.;, cuds cores. thanks

    1. Hi Jack, sadly I have no cuda cores with my integrated MacMini’s graphics card (Intel HD 4000), so the render times with Iray are pretty much unusable for me. What takes 2-3 minutes in 3Delight takes 10-30mins with Iray (depending on how long you let it render).

  4. Hi,

    Thanks for writing this, it was very helpful! But how did you make that red dress from MD4 dynamic in Daz? Did you modify the .duf and make into a dynamic cloth?

    Thanks

    1. Hi DaveEd, you’re very welcome. No actually, I didn’t use the dynamic cloth function in DAZ Studio to make the dress, this was all done in Marvelous Designer. First I exported the character animation from DS into MD, let MD drape the dress frame by frame, and then export the dress as OBJ sequence back into DS.

      I’ve explained how to do this in the following two articles:

      http://www.versluis.com/2015/03/how-to-export-animations-from-daz-studio-for-use-in-marvelous-designer/

      http://www.versluis.com/2015/03/how-to-export-garment-animations-from-marvelous-designer-for-use-in-daz-studio/

Add your voice