Vray GPU and houdini hairgen doesn't play nice

Hair both look different from cpu but also acts strange with transparency I think.

I also had problems when trying to do a simple planar uv on some hair, to run a gradient colour across it, after trying a few things I switched to cpu and everything worked as you would expect.
Just seems to be some problems generally with hairgen and GPU currently.

cpu works fine of course (attached), but I think that is to be expected :slight_smile:

Hey @thomaskc ,

one thing that comes to mind that may cause confusion is the difference between the generated geometry to represent the strands. When rendering with the CPU, the individual hairs are rendered as tubes. With the GPU, ribbons are used. You can disable Options → Use Embree for Hair to check if that equalizes things although I doubt that would make any difference with a large number of hair strands.

Could you upload a picture showing the difference between the two, or even better - a hip file with the hair only?

Thank you!

Hi Gosho,

Thanks for the feedback, yes I will have a look, and should be able to upload the hipfile for the image shown above too. Stay tuned!

Edit: “individual hairs are rendered as tubes. With the GPU, ribbons are used” Doesn’t this mean they will basically never look the same? don’t get a lot more shader/highlight level detail from the tubes? Also it sounds like the only option is to turn off embree for cpu, making it slower? to maybe match the gpu? where in reality it would be nice if the gpu matched the cpu with embree?

Anyway I will try to do some testing tonight and upload a file if I can make it super obvious :slight_smile:

scene file

So I have attached two screernshots, only difference is I switch to GPU mode and hit render.

The scene file attached has a filecache geo with it, feed that to the file cache in the “hair render and generate” node and it should all update and work.


Thank you! Managed to reproduce here - looks like a problem with light linking, splines and some of the V-Ray lights on the GPU. I’ll keep you posted - this will hopefully go in the high priority list of issues. Replacing the Rect light with an Omni should at least give you something to work with in the mean time.

Hey there,
please set the UV → Type to Channel and the Channel Index to 1.

Another option is to set the UV → Type to explicit and plug the ‘distance_along_strand’ output of a Hair Sampler VOP into the U input of the Image File VOP.

This is something which we will definitely look to improve - pulling the UVs by name directly for hair on CUDA should be possible and works with regular geometry already.

Hope that helps!