[Bf-cycles] Hair Rendering and Steps?

Zauber Paracelsus zauber at gridmail.org
Thu Feb 19 16:46:22 CET 2015


In my case, I'm actually using short hairs for simulating fur and fuzz, 
and by nature those will be very dense.  In my case, the obvious 
solution that I could do now is increase the step count.  However, build 
time and memory usage are two things I'm very concerned about.

Right now, the character I'm working on already probably has about one 
or two million fur strands on it, including child strands and it's 
already dialed down with Child Simplification.  It takes 351mb of memory 
while rendering that character, though blender seems to not be reporting 
GPU memory usage accurately, because the nVidia control panel reports 
roughly one gigabyte of memory being used during the render, roughly 
half the GPU's memory.  Any idea where that extra memory usage is coming 
from?  Is it from the CUDA kernel?

When you say BVH Split, are you referring to the Use Spatial Splits 
option?  I did test renders with and without that, and each test using 
the Curve Segments and Line Segments primitive for hair.  In both cases, 
use of Curve Segments seemed to take longer to render, and showed more 
noise.

And that OBB option sounds like it may be worthwhile.  Hopefully more so 
with my case, where all the strands are relatively straight.

As for the regression, that was actually just confusion on my part due 
to a mixup with a test I did while writing the email.



On 02/19/2015 01:48 AM, Sergey Sharybin wrote:
> Hi,
>
> I assume you're using curve/line segments for the hair. In this case 
> you're most likely experiencing the way how BVH currently works for hair.
>
> We're currently using the same AABB (axis0anigled bounding box) BVH 
> for hair, which means if you've got long strand in the dense particle 
> system you're in the big trouble. This is because each strand's AABB 
> will intersect loads of other strands AABB making intersection check 
> really inefficient.
>
> Increasing Steps in this case makes it so more memory is consumed, but 
> because AABB for each segment becomes smaller, there's less 
> intersections with other AABB which makes intersection check much faster.
>
> Now, i'm not sure from hand if our BVH Split supports curves, but it 
> totally worth trying to enable it and see what happens. If it's not 
> implemented we should consider implementing splits for curve strands 
> as well (i'm not totally sure why wouldn't they be supported thought). 
> Or maybe we'll need to look into some improvements in BVH Split.
>
> But the biggest thing we need t do is to use OBB (oriented bounding 
> box) for hair. That's a bit tricky but pretty much doable.
>
> I'm not sure it's a regression. If previous releases renders the same 
> scene faster it'll be a regression and in this case i'd like to have 
> file which demonstrates it.


More information about the Bf-cycles mailing list