Cycles Strand Rendering

GPU is probably very low on the totem pole for hair functionality. Hair is very memory intensive, and if there’s one thing GPU rendering isn’t good at it’s memory intensive scenes. From basic tests you’d only be able to fit 50-75k long hairs (4 or 5 steps) into 1GB of vRAM with the viewport, OS, etc. running. Not even enough for one character.

I don’t think is much realistic hoping for GPU rendering for strand,what’s the point of supporting strand if you can render only a small amount of them?
As m9105826 said you need a lot of hair for character and creature work,for example I’m testing BroadStu’s work for fur rendering and I need more than 1 million hair to render fur.

If it’s possible to use instanced objects then the memory should be a problem anymore, it would only affect the rendertime but even that it should be far faster than the cpu method if it’s properly integrated.

Hair can’t be instanced efficiently with any kind of shape effects applied to the children as far as I know. If you were just using dumb, flat tubes it might work, but any variation might throw a wrench into the machine.

I understand that these subsegments are calculated in the intersection code on the fly each time?. I suppose these subsegments are created using bezier curves?

So if the user is using hair strands with 3 segments and 4 subsegments it would be the same as using 12 segments and 0 subsegments. In this case when subsegments is 0 the code that creates the subsegments would not run and probably the speed would be greater? So the user would choose between big rendertimes using less memory versus using more memory with faster rendertimes. I didn’t took a look yet to the code but I guess these subsegments has a minimum of 1 instead 0 that would enable this!!!

Well, there’s no “spec” in Cycles. I don’t think one eyebrow is lighter than the other, one just appears to be in the shadow from the hair and the other one isn’t.

I’m experimenting with a rug and on a flat plane I was able to get a nice render. But I want to render a roll of rug so I created a circle and extruded it out into a cylinder but when I apply my rug particles to the cylindrical shape, I can’t get the hairs to rotate around the outside surface of the cylinder. I have played with the Rotation settings but none of the initial orientation settings seem to do the trick.

Here is my simple plane render and it turn out not to bad:

But as you can see when I attempt to apply that same particle to a cylinder the particles all just point upward and not around the cylinder’s surface.

Change the velocity to normal instead of Emitter Object to get it to point outward.

Sorry, I have to admit I’m not 100% sure what your talking about. I forgot to mention that I modeled four separate rug fibers, added them to a group and under the particle>render I choose Group and selected my rug fiber group.

Check Advanced (just below the combobox that shows “Hair” Type, and then you get your Velocity subpanel

I have Advanced checked but don’t any options to change from emitter to normal under the Velocity subpanel. The options that are available to me under the velocity subpanel I have changed every which way and it doesn’t seem to help.

Yikes!!

The problem with Blender is so many kool new features I don’t have time to play with them all :wink:
Here’s a test, the curved strand works great

you can see some flaws where the strands meet the plane but the code has been in trunk for what, 2 days?
Fantastic work broadstu

Dave

This doesn’t realy belong here though as it has nothing to do with cycles strand rendering, what your doing is using instanced geometry. But here’s how to fix your Problem: make sure the Object used for the hair is is going in the positive y direction (and apply rotation just to be sure), then set the initial Orientation in the Particle Settings under Rotation to Normal.

https://dl.dropbox.com/u/11614593/instanced-hair.png

Dave, that is a very cool test!

Very cool test dave!

doing a render now with children, many more strands, will take overnight
stay tuned

Dave

Under Rotation panel, “Initial rotation” needs to be set to “Velocity/hair”. This way you can use velocity to set the orientation.

@Kryptonian8077 - also try recalculating normals (Ctrl+N) - when adding a circle and extruding it, blender doesn’t know immediately which way the normals should point since the extrude operator is modal and a circle has no faces.

Don’t render with children overnight. Children need sleep or they will not do well in school at day !

ahh, the current version works with my OS now, that makes me happy :slight_smile:

Originally I was going for a less abstract grass look, but I’m too used to actually modeling strands of grass that I hated to circular curvy look, so I went for this instead.

This was also my first use of dynamictopo, though I’m still not entirely comfortable with the way it works, for fine details in the future I’ll probably keep it off…