Does BB's hair shader slow rendering down?



  • @glossaphile When I render I do spot tests to see how many samples I need to get a relatively noise free render. I can't remember how many samples I used for this image but it was probably between 50 and 70 because that is my usual range.
    0_1525148434872_sttings.jpg



  • @glossaphile Also note that this is using GPU. Bucket size for CPU would be 16 or 32.



  • @bagginsbill speed concerns aside, (though not quite off-topic) I'm wondering if parts, if not all of your shader are applicable to dynamic strand hair? I'm looking at the FireFly and SuperFly Hair nodes, and was struggling to adapt the simple colour and diffuse strength inputs of your shader to get similar results with those nodes. I discovered that the diffuse node makes a huge difference to the final colour, but can't simply be plugged into either of the hair nodes when rendering with SuperFly.

    I ended up plugging what goes into your shader's diffuse node into an HSV node's Color input and 6 * Diffuse Strength into the HSV Value input, as a reasonable match for what the Diffuse node does, and then plugging the HSV output into the Cycles HairBSDF node's (using the Transmission component) Color input. I suspect that most of that will be a waste of effort, since the strand hair's UV mapping appears unrelated to the underlying body part's texture.



  • @jura11 said in Does BB's hair shader slow rendering down?:

    @glossaphile

    Almost 24 hours is just too much for any kind renderer,I remember few years back I rendered one scene in FireFly where render took me 13 hours and this scene has been my longest render in Poser

    I would try render with less bucket size,128 is just too much for CPU,8 or 16 would be probably much faster and what CPU do you have ? Can you render with GPU as well?

    I use too BB hair shader and this does increase render times but hair itself increase render times,its same with any other renderer which I have used like in Octane(there you can try load Out of Touch products and you will see how yours renders times will tank) or in IRAY or in Cycles etc but usually at 60 samples my render takes me from 45 mins to 1 hour and 15 mins

    Shame SuperFly doesn't offer denoiser feature which is right now available in new Cycles build which hopefully SuperFly will be updated with that feature soon as well

    Hope this helps

    Thanks,Jura

    Depending on your computer. I have an ancient one, no GPU option (AMD card) and not much RAM. So to me, a render can easily take hours. I usually set one up and go to bed. If I'm lucky it's done when I get up. But I've had renders take far longer. Worst was two days -_-



  • @trekkiegrrrl Yeah, I've developed a habit of starting a render just before bedtime as well, at least for portraits. What still bugs me a bit is that, before I started using BB's hair shader, such overnight renders were usually finished or very nearly so by the time I woke up, and I suspect that sometimes it might've had about an hour or two to spare (I sleep for about 7 hours). Now, I'm lucky if it's halfway done when I get up.

    I don't think my computer's that old. I have a 2.4 GHz i7 processor with 16 GB of RAM.

    I'm not surprised that BB's hair shader increases render times. I just wonder if the increase should really be this drastic.



  • @glossaphile BB's shader is really nice looking but I had the same experience as you with it doubling/tripling render times so I had to stop using it. My shader gives similar results without the render time penalty.



  • @glossaphile Yep, you gets what you pay for, although of course @bagginsbill's shaders are free, so the payment for what was described as an uber shader is render time. If you want great portraits use BB's shader, or @ghostship's if you have decent maps, its a trade off as is everything in CG. for instance I'm quite happy to create clothes that take 3 hours to simulate, others have in the past said anything loner than a minute is a waste.



  • Well, this one took about 14 hours, though I can't be sure how much of the reduction is due to tweaked render settings and how much is due to this character having a different hairstyle. I think I'm going to tinker with BB and Ghostship's shaders to see if I can strike an acceptable sort of balance between realism and render speed.

    0_1525217257410_Superman10.jpg



  • @glossaphile If you are running CPU and your bucket size is too big it won't matter what shaders you use. You'll still have a 14 hour render. At this size an image like this would render in about 4 hours with my CPU. Something is WAY outta whack, dude.



  • @ghostship Here are the revised render settings I used for the above Superman render. As you can see, the bucket size was actually quite tiny this time. I kept the refractive caustics because I suspect they help with eye realism, and in my own comparative experiments, they didn't appear to increase render times much at all. Plus, as I understand it, such caustics only affect materials with actual refraction, which means that they're irrelevant for all but the eyes.

    0_1525221635284_RenderSettings3.jpg

    Also, how exactly does bucket size affect speed? That's never quite made sense to me. I mean, yes, smaller buckets fill in much faster, but there's also many more of them in the same image. Plus, each bucket has to take the same number of samples, and although each sample gets done faster in smaller buckets, more buckets means more samples, because the number of samples per bucket doesn't decrease with bucket size (at least as far as I can tell). It seems to me that all of these effects should partially if not entirely cancel each other out, but at least a couple of people seem to think bucket size somehow makes a big difference. Am I missing something here?



  • @glossaphile I thought "Pixel Samples" referred to the number of samples per pixel, rather than per bucket, so smaller buckets have fewer pixels, but the ratio of samples to pixels remains invariant against bucket size. As, I think, @bagginsbill and others have explained, buckets are a means of maximising performance in a distributed processing environment. If you have 1 processor, a bigger bucket will reduce the per bucket overhead, with many processors, smaller buckets mean that, at the end of a render, you're not waiting for a single processor to finish a large bucket, with the rest idle, because once the render is allocated into buckets, it can't be re-allocated, if processors become idle.



  • @glossaphile 8 is probably too small for bucket size. I'd go with 16 or 32 like I said in my last post. Also: See if you can get away with 8 trans bounces for the hair. That would speed things up a lot.



  • @glossaphile remember to implement changes ONE AT A TIME and test render times with a smaller doc size and sample count so you can test quickly.



  • @anomalaus As far as Superfly is concerned, Pixel samples determine the number of light paths the render engine traces. The number is squared. So for each Pixel sample the number of light paths traces by that number. For a Pixel sample of 4 the number of Light Paths is 16. 5 samples equals 25 light paths, 6 equals 36 light paths and so on. The higher the Pixel sample, the longer the render and the better the quality of the Render.

    Bucket size merely determines the size of the area being rendered at any one time. That size is determined by the Pixel count. So a bucket size of 16 x 16 is one with 16 pixels wide by 16 pixels high.



  • @ghostship That is essentially what I'm doing right now. So far, I can get decent-quality 300x300 render with little or no hair to clock out at around 20 minutes. I'm trying the first one with hair as we speak.



  • @glossaphile When I do test renders they run only 1 or 2 min. Test quickly and change settings. Set your overall samples low, turn off branch path tracing to make the render faster. It does not matter that the end results are noisy, only that you are making incremental changes and making a note of render times (from the log)



  • I tried lowering Max Transparency Bounces, and I got some weirdness in the eyelashes, so that won't work. Still, I got it to a point where I can get a smooth 300x300 image with hair (including BB's shader) in about 45 minutes. Since nine 300x300 images can fit inside a single 900x900 image, that should translate to about seven hours for a 900x900 portrait with hair (assuming it scales up the way I think it does). I'll test it tonight.



  • @glossaphile said in Does BB's hair shader slow rendering down?:

    I tried lowering Max Transparency Bounces, and I got some weirdness in the eyelashes, so that won't work. Still, I got it to a point where I can get a smooth 300x300 image with hair (including BB's shader) in about 45 minutes. Since nine 300x300 images can fit inside a single 900x900 image, that should translate to about seven hours for a 900x900 portrait with hair (assuming it scales up the way I think it does). I'll test it tonight.

    Their is a point of diminishing returns for Transparency bounces. If you lower it too much the transparency will render black, which kinda defeats the purpose. :)



  • Out of curiosity, does anyone know why trans-mapped hair is slower in general? I would've thought mapped transparency would be one of the easiest things for a computer to deal with (certainly easier than the complex math of, say, SSS or Fresnel reflection), but instead, it seems to be one of the hardest. Why is that? Even with multiple layers, how hard can it really be to just blend the object's color with that of what's directly behind it (along the light ray vector) in direct proportion to the lightness of the corresponding point on the map?



  • I think I've whittled it down about as far as I can. This portrait of Elvis finished in just under 9.5 hours with these render settings.

    0_1525283157158_Elvis4.jpg

    0_1525283203208_RenderSettings4.jpg