Daz Studio Guide: Render Settings (Iray) - Progressive Rendering

AdvintAdvint Posts: 23
edited April 2021 in The Commons

Daz Studio Tutorial:
Render Settings (Iray)
Progressive Rendering

              This small guide will cover the Progressive Rendering sub menu within the Render Settings of Daz Studio. This guide made using Daz Studio 4.15, some information may be outdated if using a later version of Daz Studio. If you wish to find a brief overview of the render settings within Daz Studio I recommend you read the brief guide from renderguide.com.

This guide will cover:

  • What is progressive rendering?
  • What are update samples?
  • What are the completion settings?
  • What are the completion settings for?

Daz Studio while a good software for rendering enthusiasts and professionals alike, tends to have some shortcomings when it comes to documentation. Fortunately for you (and me) the progressive rendering settings is not one of those things. Apart from the Post SSIM setting which is new to Daz Studio relative to the other settings available. First let us look at the Render Settings window (tab):

Figure 1: Progressive Rendering within the Render Settings window

              The above image is taken from my own settings on a recent project, and I recommend that you don’t just copy the setting but truly understand what they do. That said, let us break down each sub section and setting found here.

              First, we have the Update sub section, within which you will find “Min Update Samples” and “Update Interval (secs).” These settings are specifically relating to how the image is updated from the attempts the software makes at producing the image.

Figure 2: Update Settings

Min Update Samples:
The default setting for this is one, meaning that the software will at minimum converge one of the attempts into the image. If set to zero, the software can forgo converging any of it’s attempts. The maximum setting for this by default is one hundred, but I personally recommend keeping this to at least below fifty for images resulting in a final product.

Update Interval (secs):
“Secs” here stands for seconds as with the other time-oriented settings in this menu. The Update interval is the time period allotted to the software to converge samples. The default setting is five seconds. If for any reason updating the converged image were to take longer than this the software would halt the convergence and move on. Generally speaking, you won’t need to change this setting unless you’ve changed the Min Update Samples setting to a high number.

              Next, we will cover the completion subsection of the Render Settings menu. This section pertains to telling the software when to stop rendering. Otherwise, it could in theory render forever. If the software reaches any of the requirements set out by these settings it will stop the render. Though according to some information, I have dug up, the Render Quality parameter overrides max samples.

Figure 3: Completion settings sub menu

              Min Samples:
             
The minimum samples setting is rarely useful to users of Daz studio, however as it suggests it sets the minimum number of samples the software must reach to stop a render. This means that the software cannot stop until the sample number is higher than what is set here.

              Max Samples:
              The maximum samples setting correlates to the number of converged iterations or “samples” that the software can reach. The default for this is set to five thousand, with a maximum of fifteen thousand. If you are not using the render quality settings this will be the major factor in determining if your image is complete. If you have changed your update samples settings, you may have to increase this number beyond fifteen thousand in order to get a clear image (depending on the scene).
              This setting can be set to zero to turn it off.

              Max Time (secs):
             
This setting is the maximum time in seconds you are allowing the render to run for. If you do some math, you will see that the default setting for this, 7200 seconds, is two hours. If this time limit is reached the render will cease and your image considered complete by the software.
              This setting can be set to zero to turn it off.

              Here is where things start to get interesting, and the level of understanding of the software settings begins to have a stark fall off. Render Quality and SSIM can work hand in hand, much like the max samples and minimum samples settings.

Figure 4: Render Quality settings, set to ON

              Render Quality Enable:
             
This is a simple toggle on or off setting. Turns on or off the render quality parameters. When off the software will rely solely on the max samples and max time settings to complete an image. Otherwise the software will consider Render Quality as the primary parameter for determining a complete image. (At least that is my understanding)

              Render Quality:
             
This one is sort of a mixed bag of information so bear with me.
              As defined by the Daz documentation render quality is simply that. At a lower value, the software will render the equivalent of something you would see in a video game (OpenGL). At higher values, the software emphasizes the image quality over the time it takes to render. OpenGL is a very fast render type, so anything beyond the first setting of 1, does not use this. The render quality setting has a maximum value of 4. However, you can change this number to a crazy value such as one thousand. To my knowledge (and experiences) a value higher than 4 has no bearing on the render quality.

              As defined by some general information I have dug up, render quality overrides the max time and max samples settings (I have not experienced this). The setting increases render time linearly each time the number is increased. Setting it to two doubles what it would take at one and so on and so forth.

              Further defined by information found elsewhere, this setting determines how close any pixel has to be to its prior sampled value before it is considered “converged.” The higher this value, the closer in value any pixel must be to its prior value before it is considered “converged.” In other words, if a pixel in the center was sampled at being “Blood red” (simplifying this by the way), then the next x number of samples must also come up with “Blood red” to consider that pixel converged.

              Personally, I use render quality and set it to 4 for final product images. Results may vary, but I have seen no issues. In my experience the Render Quality setting will render the image until either the rendering converged ratio is met, or the maximum samples or max time are met.

              Rendering Converged Ratio:
             
This is a function of the time and sample counts. It is theoretically impossible for the software to ever reach a 100% convergence. This setting measures the overall image rendering process as a reference, and not a particular attempt from the software to converge the image.
              From what I have dug up this setting is reliant on the quality setting. Assuming the maximum is 4, then this setting says how close to color accurate the convergence must be. In other words, this setting tells the software that it can end a render when it is (x)% color correct if the quality setting is set to its maximum of 4.

              Personally, I set this value to 99% for a final render, at least 98%. As long as you don’t set it to 100% you should be fine, though values higher than 99% may considerably lengthen your render times.

Figure 5: Post SSIM settings

              At this point we will be entering the realm of the somewhat unknown as Post SSIM is new to Daz Studio. Post SSIM uses AI learning to determine if an image is complete, or when it will complete. Further I have read that post SSIM uses the same technologies found within the denoiser. And no, Daz studio isn’t learning from your images per say. Instead it is using profiles which come as part of NVidia drivers to determine what an image may look like.

              Post SSIM Available:
             
Turns Post SSIM parameters ON or OFF. Will cause Daz Studio to generate data for SSIM use when rendering. The data related to this must be loaded on to the GPU when rendering.

              Post SSIM Enable:
             
Enables the Post SSIM Predict Target and Rendering Quality SSIM when set to on. Otherwise will leave Post SSIM parameters off.

              Post SSIM Predict Target:
              The target amount of convergence for the SSIM prediction. This value works similarly to the Render Quality convergence setting. Using AI the SSIM setting will predict when the image should be considered complete. On larger renders the AI will be able to produce estimates for when it thinks the value set will be met.

              Rendering Quality SSIM:
              This setting will override the Render Quality settings if set to on. It functions like the Render Quality settings discussed previously. However as opposed to sampling pixels in an image and comparing their values, this setting uses AI to determine if the image is finished. This setting directly correlates to the Post SSIM Predict Target setting. If Post SSIM Predict Target is set to 99%, then the Rendering Quality SSIM will stop the render when the AI has determined that it is 99% accurate.

docx
docx
Daz Studio Guides - Progressive Rendering.docx
409K
Post edited by Advint on

Comments

  • CHWTCHWT Posts: 1,168
    Thank you!
  • ebergerlyebergerly Posts: 3,255

    Thanks. I've found that many of us struggle with concepts like "convergence" and "samples", and it's been a while since I did some ray tracing programming, but for what it's worth here's my over-simplified recollection of what's going on:

    Basically the Iray rendering software is being told by DAZ Studio "hey, the user set up this scene that has a light bulb at this location and a cube at this other location and a camera at this third location". And Iray's job is to look at the scene from the camera's perspective and try to figure out what the camera should be seeing. And in the end it's final goal is to assign red, green, and blue colors to each of the pixels in the final rendered image. So if the user wants a 1920 x 1080 final render image, Iray has to ultimately assign RGB values to every one of the 1920x1080 = 2+ million pixels.  

    The problem is that Iray has to simulate how light coming from the scene light bulb is bouncing around the scene and finally ending up in the camera. And it can't do that instantly, it has to do it "progressively". And it has to do that for each of the 2+ million pixels. But its ultimate job is to come up with an red, green, & blue value for all 2+ million pixels. 

    So it starts off by progressively simulating one light bounce, then the next, then the next, and so on. But if it only calculates one light bounce from the scene light bulb to the camera, it has totally missed the important bounces off the other scene objects, which cause shadows and cause the light to change colors and so on. So each bounce makes the image look more and more realistic. You need "progressive" rendering. 

    The images below show two snapshots from an Iray render, the first one is very early in the render, and the second is later. And you can see that the image improved. How do we know it improved? Well the first one is "noisy" and the second is "cleaner". But since the computer doesn't understand "noisy" and "cleaner", it has to use tools to measure a bunch of nearby pixel colors to see if they're reasonably uniform. But what about the edge of the picture frame? Well you need to include a larger area of samples to see whether those variations in colors are legit or bogus. 

    And at some point it needs to decide when to stop rendering. Well one way is to sample the colors of some pixels of the first image and compare them with the colors of the identical pixels in the second image and see how much they've changed. And if those pixels are changing a lot (which they are in this case), then we need to keep rendering. But if each set of samples of  each progressive render isn't really changing much anymore, then why bother? That's called "convergence". Are subsequent samples of the progressive render "converging" so that subsequent changes in the same pixels very small? Is the image improving enough with each progressive render step? 

    The problem is somebody has to tell Iray what's an acceptable convergence. If the colors of the sampled pixels change by 90% in subsequent steps of the render, then yeah, we probably need to continue. But if they're only changing by, say .001%, can the human eye even notice that? If not, no need to keep rendering.

    If you watch a render progress, you can see Iray updating your view of where it's at. At it updates that view however many seconds the user has set in the "Update Interval (secs)" setting. 

    BTW, regarding SSIM, I believe it's just another way to compare subsequent images in the progressive renders to see how much they're changing using one of them fancy AI algorithms. 

    Anyway, hope this helps. 

    Iray1.JPG
    458 x 392 - 74K
    Iray2.JPG
    439 x 399 - 42K
  • ebergerlyebergerly Posts: 3,255

    By the way, an interesting exercise if you want to actually see the results of different numbers of bounces of the light rays, go into the Render Settings/Optimization and tweak the Max Path Length. That setting basically defines how many light ray bounces you want from the camera to the light source(s). If you set it way down near 2, it will only show the light rays from the camera to the object and then to the light. No reflections. But as you increase that you're now allowing Iray to do much more light bounces. And since in the real world light bounces infinitely and never ending, in a perfect world you'd set that at infinity. But that would give you some infinite render times. laugh

    As with just about everything in ray tracing, it's all about how many corners you're willing to cut. laugh 

  • Thank you both @Advint and @ebergerly, these are fantastic details! I am new to Daz and it helps a million to understand how it works. 

Sign In or Register to comment.