Why is Principled Hair BSDF not showing the underlying texture paint?

I’m using Blender 2.91. When I have an object that has been texture painted and I set up the material so that it uses a Principled BSDF…

…I can see the colors from the texture painting coming through the fur:

However, if I swap out the Principled BSDF node with a Principled Hair BSDF…

…I no longer see the colors:

Likewise, if I set up the material like this (which I swear worked in a previous version of Blender)…

…I still get the same result with no colors.

As a side note, it doesn’t seem to make a difference if I select an object under the Texture Coordinate’s “Object” parameter or not. (When I had this working before, I don’t think I had to select something there.)

Any idea of what I’m doing wrong?

UPDATE: I found a video tutorial which set up a Principled Hair BSDF like this:

This gives what appears at first glance to be a more acceptable fur texture…

but on closer inspection it still seems wrong. When you change the Mix Shader factor to 1.0 so that it totally favors the Principled Hair BSDF, it still has that metallic robot look:

Hey, @simplecarnival. I don’t want to assume anything beyond what you’ve shared, but I was able to pull up a tutorial that uses a UV map and the Principled Hair shader that looks like it’s working as intended. At 3:03 in the video, she makes sure she is selecting the correct material (the one with the Principled Hair shader) in the Render settings of the Particle Properties. Is that what you are doing, as well? If you are directly assigning the hair shader to the surface of your mesh object, I believe you will likely have issues.

Here’s the video I mentioned:

And here’s the manual page where it mentions choosing the material slot you want to use to render your hair strands:
https://docs.blender.org/manual/en/latest/physics/particles/emitter/render.html#common-settings

Let me know how it goes and if you need further help!

At 3:03 in the video, she makes sure she is selecting the correct material (the one with the Principled Hair shader) in the Render settings of the Particle Properties. Is that what you are doing, as well? If you are directly assigning the hair shader to the surface of your mesh object, I believe you will likely have issues.

Thanks for the response, @Hunkadoodle. I’m not entirely sure how to set this up so that the material does not get assigned to the surface of my mesh object, though.

If I put a fake user on the material and then delete the material from the material list for the object, when I create the particle system, I can see only “Default Material” as the material for the particle system:

image

In other words, I can’t just pick a random material that’s part of the project – the options in this dropdown appears to be related directly to the materials that are associated to the object.

So it seems that my “real” material with the texture painting needs to be listed as a material for the object. However, I am having difficulty assigning the material to the object but NOT assigning it to any faces in my object.

If I remove all of the materials from the object and then I bring back in the material that has the texture painting, it automatically gets assigned to the object no matter what I do. When I go into Edit Mode, I have these three options:

I don’t have an option to remove faces from the material. I’ve tried to deselect all of the faces and then assign that, but still all of the faces remain assigned to the material.

Got it. I’ll try to walk you through it. So, I’m guessing you want Lexie to have 1) a material that shows the UV texture as the color of her skin where there isn’t fur (i.e., the inside of her ears), and 2) a fur material that drives the color of her fur based on the colors you’ve assigned using the UV mapped image texture.

You’ll need 2 materials added to your Lexie object. One will be her skin - call it “Lexie Skin”. That can be as simple as the color of your image texture going into the Base Color input of the Principled BSDF shader. The next will be your fur shader - call it “Lexie Fur”. You can still use your image texture to influence the color of the fur by connecting it to the Color input of the Principled Hair BSDF. I’ll provide a sample file for you to look through.

To add another material to your object, click the small “+” sign to the right of the list of material names:

Then you’ll want to make sure you have Lexie’s vertices assigned to the Lexie Skin material instead of the Lexie Fur material. Do that by Tabbing into Edit Mode, select all the vertices you want assigned to the skin shader, and click that little “Assign” button beneath the material list. That will make sure that anything not covered in fur will render as skin.

Now, in your particle system settings, you’ll go to the Render settings and ensure you select your Lexie Fur shader in the Material block:

You’ll set up your Principled Hair BSDF to get its color from your UV mapped image texture like so:

Then, it should just work - you’ll need to tweak your shaders to get the look you want, but you should be good as far as using an image texture to drive the strand colors of particle hair. I’ve attached a file for you to look though. It is a simple head model with two colors of hair based on a UV mapped image texture (that should be packed in the file):

Sample .blend:
Generic Head_02.blend (2.2 MB)

I hope this helps, and please let me know if you have any further questions.

Thank you for the detailed response, @Hunkadoodle. I was able to set up the materials as you suggested, and while – theoretically – I have the Principled Hair BSDF working with the texture map supplying the colors for the fur, the particular texture map that I’m using (with a lot of tan/brown colors) doesn’t want to cooperate with the shader in any meaningful way.

What I mean is, I can take a texture with bright/vivid/saturated colors and put it behind the Principled Hair BSDF and can see the results just fine. For example, here’s a pure red texture:

But for more muted colors, the colors don’t really appear to come through very well. Depending on the Roughness/Radial Roughness settings on the Principled Hair BSDF shader, the range of colors appear to be anywhere from silvery black to white…maybe with a little bit of tan thrown in.

Here are some examples that also show the Principled Hair BSDF Roughness and Radial Roughness parameters:

As a point of reference, here are what the colors are supposed to look like:

Still, though, just sending in the intended texture but with a straight Principled BSDF shader appears to give the best results visually:

Part of me wonders if what I’m seeing is the result of using a HDRI for the background – it appears that the blue from the HDRI sky is affecting the Principled Hair BSDF colors pretty strongly. Maybe it’s physically accurate, but it just doesn’t look good…at least, not with the settings I’m using.

According to this post, I guess at least one Blender user doesn’t think Principled Hair BSDF is very good for fur…I’m leaning in that direction too, unless I can find a combination of parameters that makes the fur colors look the way they should.

Well, that silver to black range has me concerned that there might be something off with your setup. You definitely should be getting more than grayscale colors. Can you share a screenshot of your full shader tree? It is hard to tell what might need to be tweaked without the full picture.

Edit:
With the same hair shader setup in the file I uploaded, I was able to get this by changing the UV mapped image texture from black and white to red and green:

Can you share a screenshot of your full shader tree? It is hard to tell what might need to be tweaked without the full picture.

This is all it is – pretty much the same as the shader setup you had:

I fed in a solid light tan texture to your hair example and I get this:

image

The problem appears to be with the Diameter Root parameter. I compared the particle system settings in the hair example you posted with my particle settings and, if I set up everything like your file and feed in the same solid light tan texture, I get this:

That’s with a Diameter Root value of 0.04 m.

The value I was using for Diameter Root was much thicker than that. I was using 2 m. Using the same tan texture as in the previous picture but with a Diameter Root value of 2 m, I get black:

Interestingly, setting Diameter Root to 2 m on your original file doesn’t cause black hair. Even when I import the same HDRI, there’s still no issue. I’ve compared the Cycles render settings between my file and your file and I’m not seeing anything that should make a difference.

Hello sir,
I have similar problem.

Here, I added 3 materials. the hair is supposed to be of different color. The material types can be found in the names of the materials. the Principled BSDF is updating correctly in render.
Example green shows, shows green in the render( also we can notice it being green in properties panel). But the hair BSDF is supposed to be red but its is black. (also in the properties panel)
Kindly help. I understand that i have to choose the right mat in the particle editor render mat drop down for the material is to be shown on hair. I did that too but the hair is still black instead of read.
If i choose diffuse or principled bsdf it is working fine. but not with the principled Hair bsdf.
Kindly Help,
Thankyou sir

I’m Sorry,
Just figured it works in cycles but not in evee