[SOLVED] Transparent shader on Hair Particles children - black artifacts

During battling with the concept of using Cycles nodes for particle distribution I’ve found one thing that might need some attention.

When transparency/alpha is used for shading, Cycles renders hair particles with interpolated children with black artifacts.

Steps to reproduce:

  1. Change rendering engine to Cycles
  2. Create particle hair system on default box.
  3. Set particle number to 3000.
  4. Create new material:
    VoronoiTexture —> ColorRamp (white=0,545, black=0.573) —> alpha input PrincipledBSDF
  5. First render.
  6. Add children (interpolated) to particle system, set render amount 50 (arbitrary number that clearly shows the artifacts).
  7. Second render.

3000 hair particles, no children

3000 hair particles, interpolated amount 50

3000 hair particles, interpolated amount 100

By increasing amount of particles, you are increasing amount of transparency bounces needed to obtain transparent hair.
For amount of children equal 50, set transparency bounces to 24 under Light Paths panel, and there is no more problem.
For amount equal 100, you have to increase this setting again.

Problem is that more bounces you have, longer time takes render.
Particle system was done before Cycles. Particles display can be handled by textures managed the Blender Internal way.
You can bake Cycles procedural texture as an image. Then, you can re-use this image as a particle texture using UVmap and influencing Density setting.
At that moment, particles hidden by texture are also invisible in solid view and you don’t have to increase Transparency bounces for a Cycles render.

2 Likes

I was hoping for thak kind of answer, thanks a lot! Didn’t know about feature developing order, still learning this software. As for the process, yes I know about baking, but controling particle distribution with Cycles nodes is such a neat concept I just refuse to let it go. I don’t care for rendering times for the time being.

That is the wish of most of users.
The problem is that blender was not updated, yet, to handle correctly Cycles textures.
Texture nodes, Modifiers textures, Brush textures, Freestyle Textures : they are all related to Blender Internal management of textures.
BI was removed for 2.8, before any adjustment was done to bring Cycles textures to those features.

There is a project to support nodal edition for everything. And for this project, Cycles Texture nodes are expected to be re-used everywhere.
Particle Nodes and Hair Object Primitive are a target, for this year.

So, maybe, this year that will be pertinent for any case, in a future release.
But for the moment, there are downsides of trying to solve everything through Cycles material.

1 Like

You saved me man! Thanks a lot!