Iray renders have long delay before actually starting

Ain3DAin3D Posts: 30

I must be doing something wrong.

Here's what happens when I try to render an Iray scene. The timing scales proportionally with the size/complexity of the scene.

  1. I press Control + R.
  2. The render window and progress box appear, and then the application freezes for approx 40 seconds. This is counted in "elapsed render time."
  3. The application unfreezes and the render history shows:
    • Rendering in NVIDIA Iray
    • Compiling Shaders - 0/52
    • Rendering image
    • Rendering...
  4. No changes for about 3 minutes. The render window sits transparent for this time.
  5. The render begins, and converges approximately 5 minutes later.

This is a decent render time, but the initial delay is killing me when I just need to check how the lighting looks. The preview function does the same thing.

Can anybody explain what exactly is happening during this initial waiting period, and if it can be sped up?

Thanks!

EDIT: If it matters, my system specs are as follows:

  • OS: Windows 8.1 Pro
  • GPU: GeForce GTX 970
  • CPU: AMD FX(tm)-8350 Eight-Core Processor, 4000 Mhz, 4 Core(s), 8 Logical Processor(s)
  • RAM: 16 GB

 

Post edited by Ain3D on

Comments

  • mjc1016mjc1016 Posts: 15,001

    Not sure how much of a gain you can get, but making sure that everything is already set up as Iray materials will lower that wait some.  Part of that time is the auto-conversion of generic/3Delight materials to Iray ones.

  • Ain3DAin3D Posts: 30
    mjc1016 said:

    Not sure how much of a gain you can get, but making sure that everything is already set up as Iray materials will lower that wait some.  Part of that time is the auto-conversion of generic/3Delight materials to Iray ones.

    Does that mean just applying the Iray base shader to all materials? Or is there something further I should do?

  • mjc1016mjc1016 Posts: 15,001

    At least the Iray base...optimizied Iray materials are better, so if the item has them, use those, instead of the Iray base.  The less conversion that Studio has to do the easier/quicker the render will be.

  • ToborTobor Posts: 2,300

    The initial wait is Iray building the scene database. Some of it is from the JIT conversion of materials (if they aren't already converted by you, which should really be the case), but a lot of it is just writing out things like geometries and (especially) texture files. Once the scene database is established, the render proper can begin.

    You can quicken the time to start between successive test renders by not closing the render window. This keeps the scene database in memory. Start a new render (not Resume). This will work as long as you have not changed characters, textures, or other things that will affect the scene database.

    Additional time between the start of actual render, and the first moment something appears, really depends on the scene. As mjc noted, you probably would get better performance by making sure all surfaces are Iray shaders. Allowing D|S to auto-convert shaders is a convenience, and should be not best practice.

  • SzarkSzark Posts: 10,634
    Tobor said:

    The initial wait is Iray building the scene database. Some of it is from the JIT conversion of materials (if they aren't already converted by you, which should really be the case), but a lot of it is just writing out things like geometries and (especially) texture files. Once the scene database is established, the render proper can begin.

    You can quicken the time to start between successive test renders by not closing the render window. This keeps the scene database in memory. Start a new render (not Resume). This will work as long as you have not changed characters, textures, or other things that will affect the scene database.

    Additional time between the start of actual render, and the first moment something appears, really depends on the scene. As mjc noted, you probably would get better performance by making sure all surfaces are Iray shaders. Allowing D|S to auto-convert shaders is a convenience, and should be not best practice.

    I agree with all that 100% Tobor.

  • Ain3DAin3D Posts: 30
    Tobor said:

    The initial wait is Iray building the scene database. Some of it is from the JIT conversion of materials (if they aren't already converted by you, which should really be the case), but a lot of it is just writing out things like geometries and (especially) texture files. Once the scene database is established, the render proper can begin.

    You can quicken the time to start between successive test renders by not closing the render window. This keeps the scene database in memory. Start a new render (not Resume). This will work as long as you have not changed characters, textures, or other things that will affect the scene database.

    Additional time between the start of actual render, and the first moment something appears, really depends on the scene. As mjc noted, you probably would get better performance by making sure all surfaces are Iray shaders. Allowing D|S to auto-convert shaders is a convenience, and should be not best practice.

    That helps significantly! 90 seconds is a much more manageable wait than 4 minutes. Many thanks.

  • Oso3DOso3D Posts: 14,889

    If you have an Nvidia card, you may also want to keep an eye on CPU and render speed. There is a noticeable difference between scenes that are too large to fit on the GPU and then dump to the CPU and those that aren't (namely -- iterations come very very slowly and CPU is pegged vs. faster and not)

    There are a number of things to do to speed up Iray renders -- use as low texture compression as you can and still have things look decent (which may take a few tests), use as little subd on the base figures as you can get away with.

    If you STILL have problems (and I've noticed problems on big detailed maps), you can go into the geometry editor and hide anything in a big rambling object that's off-screen. (This scared me at first, but it turns out not to be terribly hard -- geometry editor, go into the tool window to increase the brush 'size,' then start sweeping over everything in top view, and then right-click 'hide polygons.' You can easily reset it if you didn't do it right)

     

  • Ain3DAin3D Posts: 30

    All the advice has helped a lot, thank you. But if I apply the Iray Uber Base to a surface that is already optimized for Iray, could it INCREASE the time it takes to render?

  • ToborTobor Posts: 2,300

    You don't need, or want, to apply the Ubver Base to a surface that's already shaded for Iray. You can determine if it's an Iray shader by clicking on it with the Surface Selection tool. If you see a Material ID node near the top, it's Iray; in that case, leave it alone. But if you don't see this node, it's a 3Delight shader, and should be at least updated using the Iray Uber Base. 

     

Sign In or Register to comment.