Iray's dirty little secret...

2

Comments

  • thd777thd777 Posts: 945
    edited November 2015
    Cake One said:

    Well as i didn't close my scene in Daz Studio, i'm doing a fourth render with those settings set at 4096 to see what it changes in terms of quality and render time. I'll post it as soon as it's done :)

    Cool! I am curioius to see if it makes a difference.

    Thanks for checking

    TD

    Post edited by thd777 on
  • Cake OneCake One Posts: 382

    Here is the new before/after image.
    I  changed the medium Threshold to 4096 instead of 512 and the High Treshold to 4096 instead of 1024.The new image is the second from the left.
    I don't see much difference in quality and the time has slightly increased from 6,51 to 7,18.

    The double size renders are still much sharper (to me)

     

    Iray-Trick3.jpg
    2400 x 780 - 748K
  • lx_2807502lx_2807502 Posts: 2,996
    edited November 2015

    You're probably not going to see much difference in a render that tiny (if I'm understanding how it works correctly) - there's simply nothing on screen in the render that's big enough to require the full sized texture. Remember that face is likely a 4096 image so you're not going to see any real texture detail loss unless the render itself is going beyond that in size (or you're super zoomed in, for example.)

     

    How do you get stats for your renders? (other than sitting and watching and quickly writing them down right as it finishes, since the history box closes for me.)

    Post edited by lx_2807502 on
  • Cake OneCake One Posts: 382

    That's also what i think but since it has been mentioned, i added the render to show the blurry effect on "normal render size" is not here because of texture compression.

    Whatever the texture size is, the double size render is sharper.

  • lx_2807502lx_2807502 Posts: 2,996
    edited November 2015

    Did a quick test. I didn't get any speed increase. Time to start refers to the time before the actual iterations start. 

    all: 512-4096 textures
    quality 1.0
    render to 90%

    1. 800x900
    5-5000 samples
    406 iterations
    1:11 (46 sec to start)

    2. 1600x1800
    5-2000 samples
    368 iterations
    1:57 (~1min to start)

    3. 3200x3600
    5-1000 samples
    351 iterations
    4:34 (~50 sec to start)

    test-hto-compare.png
    944 x 660 - 480K
    Post edited by lx_2807502 on
  • First, double the render size its a known trick for many renderr engines..

    Second you double the size for the Quality, not for speed.

    Look at the third figure with render time 4:34. How much londer need to render the first figure to achive the same quality and detail?

  • JimmyC_2009JimmyC_2009 Posts: 8,891

    A very interestng thread folks, keep it up, we're all watching!

  • Oso3DOso3D Posts: 15,085

    The advantage in Iray is, when you aren't running to completion, fireflies and a lot of other one-pixel stuff zaps away.

    Actually, I think there's an even bigger advantage in 3DL. I really noticed, with fabric effects, that rendering at final size often misses a lot of details. You need to render at larger size to get them.

  • lx_2807502lx_2807502 Posts: 2,996

    Doing your final render at a massive size even if you plan to scale it down seems like a no brainer to me. The point of the thread was that apparently you can get faster results by rendering larger at lower sample settings. Not sure if I did it wrong but didn't work for me: quality improved but it took longer to do so, as you'd normally expect.

  • Cake OneCake One Posts: 382

    Thank you for your feedback

    I don't know what powerfull machine you have to render that fast but at such ridiculously low render times (1 minutes...???) i'm not sure it's relevant for you anyway ;)

    Still, i'm surprise of the low number of iterations you have for the 1st one, knowing that my "basic" first one, at defaut 5000 passes had 1463 iterations...

    For the next posts, it could be a good idea to post render images at their real size to be able to see the details.

    As for the point of the thread, let me try to explain it again (sorry, english is not my mother language)

    Let's say you want a clean and sharp render.

    You render your normal size but you have to let it render for a LONG time to make it have a lot of passes and iterations, for it to be really detailed and sharp.

    If you decide to render it twice its size, you won't have to wait for a such a high number of passes for it to be clean and sharp.

     

     

    lx said:

    Did a quick test. I didn't get any speed increase. Time to start refers to the time before the actual iterations start. 

    all: 512-4096 textures
    quality 1.0
    render to 90%

    1. 800x900
    5-5000 samples
    406 iterations
    1:11 (46 sec to start)

    2. 1600x1800
    5-2000 samples
    368 iterations
    1:57 (~1min to start)

    3. 3200x3600
    5-1000 samples
    351 iterations
    4:34 (~50 sec to start)

     

  • lx_2807502lx_2807502 Posts: 2,996

    I have an i5 2500K with 24gb ram and a GTX 580 Classified. I don't think that's that fancy? The PC is 5 years old and I bought the card 2nd hand for $100 a month or two ago.

    I'll set up something more complicated and do some more tests. It'd be helpful if there was some way to get the render statistics other than sitting watching and trying to write them down the moment it finishes though.

  • Cake OneCake One Posts: 382

    Yep

    Not to be disrespectful but that is not the war machine i expected based on your render times...
    The low number of iterations can itself explain the very low render times but what explains the low number of iterations?

    I noticed you render at 90% instead of the "default" 95% but still, that doesn't explain why you have so few iterations

  • lx_2807502lx_2807502 Posts: 2,996

    Yeah I have no idea. Relatively simple scenes and adequate lighting maybe? Adding hair or very reflective shaders can slow things down a lot for me. I'm using one of DimensionTheory's Desert HDRIs; everything else not listed is set to default.

  • Cake OneCake One Posts: 382
    edited November 2015

    Yes

    i tried to recreate your scene but i don't have this outfit and i don't recognize that character. lol

    SO i put a basic Genesis 1 with a princess dress and flat hair with background off.

    Took 35 seconds to render at 90%

    STILL the iterations number were still way higher than yours (around 1500). I have no idea why.

     

    Anyway, if you really want to test this little trick,try a close up of a G2 or G3 character with some hair on.

    The point is not to get the fastest render, it's to get the fastest render at the highest quality.

     

     

    iray test 4.png
    600 x 780 - 364K
    Post edited by Cake One on
  • RuphussRuphuss Posts: 2,631

    Cake one

    whats your GPU you arer rendering with ?

  • RuphussRuphuss Posts: 2,631

    hey Ix

    what armour is that ?

  • fastbike1fastbike1 Posts: 4,078

     Studio writes a Log file that has that info. It's overwritten each time your render (I think).

    lx said:

    . . . 

    How do you get stats for your renders? (other than sitting and watching and quickly writing them down right as it finishes, since the history box closes for me.)

     

  • fasttam said:

    First, double the render size its a known trick for many renderr engines..

    Second you double the size for the Quality, not for speed.

     

    Exactly. It improves quality only in terms of Anti-Aliasing which is why there appears to be such differences in sharpness. All you've really done by rendering at double size and then scaling down to half is you are cramming twice as many rays per pixel than the original render would have contained. But there are many downsides. For example the methods used for the downsizing. Does one use Bicubic Resample, Pixel Resize, Smart Scaling? So many options for downscaling and each of them has benefits and drawbacks. Shrinking an image is a form of compression and most every form of compression related to pixel number is going to be destructive and lossy.

    The double size then scale down method is not new, and for all of its history it is relatively low in adoption. The masses simply do not do it this way because it's practicality is limited. Still, for those working with less advanced harware, any speed or quality increase should be seen as a welcome addition. Fun fun.

  • lx_2807502lx_2807502 Posts: 2,996

    Character is G2F Haiku for Keiko

    Clothing is G2F Tau Ceti Overseer by Aeon Soul

    (both from Daz store)

    I'm doing some tests now with a full HD character and hair (rip computer.)

    First results so you can see how much slower the render is:

    V7HD (SubD 3) Tulip Hair

    800x900
    777 iterations
    9:30 (48 sec to start)

  • Cake OneCake One Posts: 382
    edited November 2015

    GTX 780 (helped by 24 little CPU cores)
    Once more this is not really about "how powerful you are", but more about "how can you increase your quality without increasing you render time".

     

    Ruphuss said:

    Cake one

    whats your GPU you arer rendering with ?

     

    Post edited by Cake One on
  • Oso3DOso3D Posts: 15,085
    edited November 2015

    Tips for speeding up renders:

    Hide most of your stuff for testing, keep one of your most important/detailed figures. Lower texture compression until you actually notice, then step it back up.

    Repeat, lower subd of figures/hair until, again, you actually notice (it's easy to go hogwild and max everything)

    If you have lightsources from emitting objects, think hard about whether you can do the same with light primitives. (If the light source isn't visible, the answer is almost always LIGHT PRIMITIVES)

    If you have some big environment, get your camera set up and then go into geometry editor. Increase the brush size enough to sweep a lot of stuff, then 'paint' over everything that's out of frame, Hide it. (This made me nervous to contemplate, but it turned out to be really really easy)

     

    You can then hit higher quality levels faster.

    As for actually higher quality? Sharpen tool in post. Seriously, even a little bit can really make details pop.

    Post edited by Oso3D on
  • lx_2807502lx_2807502 Posts: 2,996
    edited November 2015

    Okay, test version with a much more demanding render.
    For me at least, lowering the samples isn't enough to give a worthwhile quality:time increase. I want to test lowering the render quality setting to see if that pulls off the trick, but I'm tired so I'll do it later unless someone else tests more.

    V7HD (SubD 3)
    Tulip Hair (OOT Iray hair shader)
    Alphakini for G3F

    DimensionTheory Iray DesertB HDRI (draw dome/ground off)
    90% completion
    512-4096 textures
    All other settings at default.

    800x900
    5000 samples
    785 iterations
    9:30 (39 sec to start)

    1600x1800
    2000 samples
    853 iterations
    34:32 (43 sec to start)

    test-v7hd-compare1.png
    1200 x 675 - 1M
    test-v7hd-compare2.png
    1200 x 992 - 2M
    Post edited by Chohole on
  • Cake OneCake One Posts: 382

    i agree on some of your advices here but certainely not all of them.

    My goal is not to have fast render, it's to cut down the time on highly detailled renders that won't last for hours.

    Lower the tex? depends. I often do close ups renders so in this case, not really a good choice.

    Sharpen tools in Postwork?

    Well, i have been using photoshop professionally for almost 2 decades and it doesn't sound like a great idea to me (at least for my needs).

    If you miss details in the final render, sharpening some blurry portion of a render will not give you the missing detail back. It may give you a erzats of it

     

    Tips for speeding up renders:

    Hide most of your stuff for testing, keep one of your most important/detailed figures. Lower texture compression until you actually notice, then step it back up.

    Repeat, lower subd of figures/hair until, again, you actually notice (it's easy to go hogwild and max everything)

    If you have lightsources from emitting objects, think hard about whether you can do the same with light primitives. (If the light source isn't visible, the answer is almost always LIGHT PRIMITIVES)

    If you have some big environment, get your camera set up and then go into geometry editor. Increase the brush size enough to sweep a lot of stuff, then 'paint' over everything that's out of frame, Hide it. (This made me nervous to contemplate, but it turned out to be really really easy)

     

    You can then hit higher quality levels faster.

    As for actually higher quality? Sharpen tool in post. Seriously, even a little bit can really make details pop.

     

  • Cake OneCake One Posts: 382
    edited November 2015

    You're missing the point here
    YOur second render have more iterations than the first. It should have way less.

    Your first render was made in 9,30 minutes.

    Double its size and make it run for that exact amount of time then stop it at 9,30 minutes.
    Reduce it twice it size and THEN compare the 2

    Now for Speed :
    While render size is double, launch the render and stop it at HALF the time of the first render (4,45 minutes) Check the result.

    lx said:

    Okay, test version with a much more demanding render.
    For me at least, lowering the samples isn't enough to give a worthwhile quality:time increase. I want to test lowering the render quality setting to see if that pulls off the trick, but I'm tired so I'll do it later unless someone else tests more.

    V7HD (SubD 3)
    Tulip Hair (OOT Iray hair shader)
    Alphakini for G3F

    DimensionTheory Iray DesertB HDRI (draw dome/ground off)
    90% completion
    512-4096 textures
    All other settings at default.

    800x900
    5000 samples
    785 iterations
    9:30 (39 sec to start)

    1600x1800
    2000 samples
    853 iterations
    34:32 (43 sec to start)

     

    Post edited by Chohole on
  • lx_2807502lx_2807502 Posts: 2,996

    Ohh I see what you mean now. I didn't save that so I'll make another test later; it's 6am and I'm falling asleep.

  • Zev0Zev0 Posts: 7,121
    edited November 2015

    Ye basically the doubled size gives more detail when reduced to the source size for roughly the same render time.

    Post edited by Zev0 on
  • CypherFOXCypherFOX Posts: 3,401
    edited November 2015

    Greetings,

    Just to be clear, setting your 'samples' is completely irrelevant for this.  You're not hitting your max samples in any of these cases.  You don't need to tweak that value at all.  'iterations' == 'samples'.

    The ultimate idea here is to say, 'This image can't take more than an hour to render, how can I get the best quality out of it?'  This is probably most useful in animation; if I need to get 360 renders done, I'm going to want to limit them to 4 minutes each, so it only takes a day.  If I have to limit it to 4 minutes, how can I get the best quality?

    Promo renders are another place where you're probably gated by time, and need to get the best renders you can in a fixed amount of time.

    For testing comparisons, though, you don't need to tweak the samples settings at all.  Just render the image to a point that you like it, then double the resolution (x4'ing the number of pixels) and set the time that the first image took as the 'Max Time' for the second.  Downscale afterwards using your favorite image editor, and that's your comparison. (<-- this needs to use a good algorithm, as per Rashad above.)

    ...

    There are other reasons to render at a high resolution, like postwork being a bit easier on a large image that gets downscaled.  And yes, the method used by whatever image tool you use to downsize the image will matter.  There are some formulas that will have real problems with high-repeat-count tiled backgrounds, or floors, for example.

    Also obviously this breaks down at extremes.  If you render for 8 hours (without hitting your iterations cap) you're really not going to see a lot of pixels difference between 1x and 2x images.  If you render for 30 seconds, your time is going to be dominated by the scene setup time, instead of the render time, so it will also not be very helpful.  Also, if you're using a GPU, it's possible the higher resolution will use more on-card memory, limiting the complexity of the scene.  I'm not certain of that, though.

    --  Morgan

     

    Post edited by CypherFOX on
  • Testing6790Testing6790 Posts: 1,091
    I do this, myself! I render at the dimensions for 4k (can't remember the exact dimensions iobs) and then scale it to 1920x1080. It works like a charm.
  • Cake OneCake One Posts: 382
    edited November 2015

    Yes

    You're totally right

    Sample is useless in this case as the max is never reached.

    I eventually use this method everyday for promo renders and it works for me. To downsize the final render, i use the bicubic (best for reduction)(sorry mine is in french so i don't know wich option of bicubic it is) option in photoshop.

     

    CypherFOX said:

    Greetings,

    Just to be clear, setting your 'samples' is completely irrelevant for this.  You're not hitting your max samples in any of these cases.  You don't need to tweak that value at all.  'iterations' == 'samples'.

    The ultimate idea here is to say, 'This image can't take more than an hour to render, how can I get the best quality out of it?'  This is probably most useful in animation; if I need to get 360 renders done, I'm going to want to limit them to 4 minutes each, so it only takes a day.  If I have to limit it to 4 minutes, how can I get the best quality?

    Promo renders are another place where you're probably gated by time, and need to get the best renders you can in a fixed amount of time.

    For testing comparisons, though, you don't need to tweak the samples settings at all.  Just render the image to a point that you like it, then double the resolution (x4'ing the number of pixels) and set the time that the first image took as the 'Max Time' for the second.  Downscale afterwards using your favorite image editor, and that's your comparison. (<-- this needs to use a good algorithm, as per Rashad above.)

    ...

    There are other reasons to render at a high resolution, like postwork being a bit easier on a large image that gets downscaled.  And yes, the method used by whatever image tool you use to downsize the image will matter.  There are some formulas that will have real problems with high-repeat-count tiled backgrounds, or floors, for example.

    Also obviously this breaks down at extremes.  If you render for 8 hours (without hitting your iterations cap) you're really not going to see a lot of pixels difference between 1x and 2x images.  If you render for 30 seconds, your time is going to be dominated by the scene setup time, instead of the render time, so it will also not be very helpful.  Also, if you're using a GPU, it's possible the higher resolution will use more on-card memory, limiting the complexity of the scene.  I'm not certain of that, though.

    --  Morgan

     

     

    Post edited by Cake One on
  • ToborTobor Posts: 2,300
    edited November 2015

    I tried the method outlined in the blog a couple of months ago when it was first mentioned here, and I while I agree it can be a useful technique for certain kinds of scenes, it's best when combined with other techniques. 

    Overall, I found the best benefit by doing it manually in Photoshop using spot despeckling. It adds about a minute of work, but it's controllable and I can often get by with fairly low-convergence renders. It's just the standard retouching technique of duplicating the layer, and adding a layer mask to the new layer. Apply despeckling to the image in that layer. In the mask brush over the trouble areas of the image, such as shadows. You can alter the blend and opacity of the top layer to control the retouching. You can use this method whether or not you oversample. And I always oversample.

    Despeckling removes the kind of shot noise that appears as grainy areas in an Iray image. But there are other filters to try, including third-party filters that offer more control over the noise reduction algorithm.

    Post edited by Tobor on
Sign In or Register to comment.