The Huang model of the Principled Hair BSDF is too dark #123451

Open
opened 2024-06-19 23:02:50 +02:00 by MickeyMouse · 15 comments

System Information
Operating system: Windows 10
Graphics card: RTX 2070

Blender Version
Broken: Blender 4.1

Short description of error
The hair in the Huang model of the Principled Hair BSDF is too dark even at low Melanin levels. The hair in the screenshots are both at a Melanin level of 0.1. You can see the difference between the Chiang and the Huang models, and the hair in the Huang model is way darker. Even if energy loss is expected, that is still too dark. If you set the Melanin level to even lower, the hair just becomes grey and white, without ever becoming light blonde. It is technically possible to turn the hair in the Huang model blonde, by setting the lights extremely bright like at 10000W, but you can't use that to light a scene because all the other objects will just be overblown with light.

Exact steps for others to reproduce the error

  1. Add a plane
  2. Add hair to it
  3. Add the Principled Hair BSDF to the hair
  4. Set the Melanin level to something low like 0.1
  5. Compare the render results using the Chiang and Huang models
**System Information** Operating system: Windows 10 Graphics card: RTX 2070 **Blender Version** Broken: Blender 4.1 **Short description of error** The hair in the Huang model of the Principled Hair BSDF is too dark even at low Melanin levels. The hair in the screenshots are both at a Melanin level of 0.1. You can see the difference between the Chiang and the Huang models, and the hair in the Huang model is way darker. Even if energy loss is expected, that is still too dark. If you set the Melanin level to even lower, the hair just becomes grey and white, without ever becoming light blonde. It is technically possible to turn the hair in the Huang model blonde, by setting the lights extremely bright like at 10000W, but you can't use that to light a scene because all the other objects will just be overblown with light. **Exact steps for others to reproduce the error** 1. Add a plane 2. Add hair to it 3. Add the Principled Hair BSDF to the hair 4. Set the Melanin level to something low like 0.1 5. Compare the render results using the Chiang and Huang models
MickeyMouse added the
Type
Report
Status
Needs Triage
Severity
Normal
labels 2024-06-19 23:02:51 +02:00
Iliya Katushenock added the
Interest
Render & Cycles
label 2024-06-19 23:04:42 +02:00
Member

I can replicate this behaviour, but based on the comments in !105600, this might be expected?

CC @weizhen to give a proper comment on this.

I can replicate this behaviour, but based on the comments in !105600, this might be expected? CC @weizhen to give a proper comment on this.
Member

There is some known issue with the energy conservation, basically the Huang model is overestimating the total internal reflection and thus darker than it should be.

I can put aside some time to improve the estimation of the Huang model. In the meanwhile, if you can achieve similar effect by adjusting the light, maybe you can use light linking so that the bright light only affects the hair?

There is some known issue with the energy conservation, basically the Huang model is overestimating the total internal reflection and thus darker than it should be. I can put aside some time to improve the estimation of the Huang model. In the meanwhile, if you can achieve similar effect by adjusting the light, maybe you can use light linking so that the bright light only affects the hair?
Author

I can replicate this behaviour, but based on the comments in !105600, this might be expected?

CC @weizhen to give a proper comment on this.

From the screenshots shown in !105600, the Huang model is slightly darker than the Chiang model. But from my testing, it is a lot darker than shown in the screenshots.

There is some known issue with the energy conservation, basically the Huang model is overestimating the total internal reflection and thus darker than it should be.

I can put aside some time to improve the estimation of the Huang model. In the meanwhile, if you can achieve similar effect by adjusting the light, maybe you can use light linking so that the bright light only affects the hair?

That's an interesting idea. I just tried it, but it's not quite the same.
Testing 5.jpg
The one on the left is using the Chiang model, with a light of 100W lighting it. The one on the right is using the Huang model, with a light of 500W lighting it. Both are at a Melanin level of 0.1. Using light linking this way also gives off some reflection on the nearby surfaces, making it almost like the hair itself is glowing.

I can't make light blonde hair like this with the Huang model.
images

> I can replicate this behaviour, but based on the comments in !105600, this might be expected? > > CC @weizhen to give a proper comment on this. From the screenshots shown in !105600, the Huang model is slightly darker than the Chiang model. But from my testing, it is a lot darker than shown in the screenshots. > There is some known issue with the energy conservation, basically the Huang model is overestimating the total internal reflection and thus darker than it should be. > > I can put aside some time to improve the estimation of the Huang model. In the meanwhile, if you can achieve similar effect by adjusting the light, maybe you can use light linking so that the bright light only affects the hair? That's an interesting idea. I just tried it, but it's not quite the same. ![Testing 5.jpg](/attachments/7bc6e77e-bbf4-4b7b-a7ec-f033e92b736b) The one on the left is using the Chiang model, with a light of 100W lighting it. The one on the right is using the Huang model, with a light of 500W lighting it. Both are at a Melanin level of 0.1. Using light linking this way also gives off some reflection on the nearby surfaces, making it almost like the hair itself is glowing. I can't make light blonde hair like this with the Huang model. ![images](/attachments/f1c1b55f-f079-4750-b24f-f27f3d360384)
Member

Your model has an unrealistically high IOR of 2.0, the default is 1.55. I adjusted some parameters to make it closer to your desired look. Notably, I changed the Transmission, which is a parameter that should at best not be touched because it might cause energy issues.

The melanin concentration only gives the absorption, but the color is also determined by the reflection and the combination of multiple lobes, and since Chiang and Huang are different models, they are not expected to deliver the same color. But not being able to reproduce the desired color using physically correct values is concerning, this would be a bigger project than the energy conservation issue.

Besides, melanin absorption is wavelength-dependent, but Cycles is a RGB renderer, which is especially bad at approximating absorption colors. There were experiments done on the Chiang model to give more satisfying matching under a RGB renderer, maybe those parameters don't work well with the Huang model.

Your model has an unrealistically high IOR of 2.0, the default is 1.55. I adjusted some parameters to make it closer to your desired look. Notably, I changed the Transmission, which is a parameter that should at best not be touched because it might cause energy issues. The melanin concentration only gives the absorption, but the color is also determined by the reflection and the combination of multiple lobes, and since Chiang and Huang are different models, they are not expected to deliver the same color. But not being able to reproduce the desired color using physically correct values is concerning, this would be a bigger project than the energy conservation issue. Besides, melanin absorption is wavelength-dependent, but Cycles is a RGB renderer, which is especially bad at approximating absorption colors. There were experiments done on the Chiang model to give more satisfying matching under a RGB renderer, maybe those parameters don't work well with the Huang model.
Author

Your model has an unrealistically high IOR of 2.0, the default is 1.55. I adjusted some parameters to make it closer to your desired look. Notably, I changed the Transmission, which is a parameter that should at best not be touched because it might cause energy issues.

The melanin concentration only gives the absorption, but the color is also determined by the reflection and the combination of multiple lobes, and since Chiang and Huang are different models, they are not expected to deliver the same color. But not being able to reproduce the desired color using physically correct values is concerning, this would be a bigger project than the energy conservation issue.

Besides, melanin absorption is wavelength-dependent, but Cycles is a RGB renderer, which is especially bad at approximating absorption colors. There were experiments done on the Chiang model to give more satisfying matching under a RGB renderer, maybe those parameters don't work well with the Huang model.

Sorry about that. I must have forgotten to change the rest of the parameters back to their default values when I was changing things around to see if I could achieve better results. But I assure you, I was using the default value of 1.55 for the IOR when I noticed the problem.

It's not a problem if the Huang model produces different colours from the Chiang model. I actually didn't use the Chiang model for comparison at first. It's just that I was struggling to produce the blonde colour I had in mind with the Huang model.

I didn't know Cycles is a RGB renderer, although I don't know what that means. Interesting. I have only heard that it is an unbiased renderer. Well, if it is a limitation of Cycles, then it's fine. Thank you for helping me.

> Your model has an unrealistically high IOR of 2.0, the default is 1.55. I adjusted some parameters to make it closer to your desired look. Notably, I changed the Transmission, which is a parameter that should at best not be touched because it might cause energy issues. > > The melanin concentration only gives the absorption, but the color is also determined by the reflection and the combination of multiple lobes, and since Chiang and Huang are different models, they are not expected to deliver the same color. But not being able to reproduce the desired color using physically correct values is concerning, this would be a bigger project than the energy conservation issue. > > Besides, melanin absorption is wavelength-dependent, but Cycles is a RGB renderer, which is especially bad at approximating absorption colors. There were experiments done on the Chiang model to give more satisfying matching under a RGB renderer, maybe those parameters don't work well with the Huang model. > > Sorry about that. I must have forgotten to change the rest of the parameters back to their default values when I was changing things around to see if I could achieve better results. But I assure you, I was using the default value of 1.55 for the IOR when I noticed the problem. It's not a problem if the Huang model produces different colours from the Chiang model. I actually didn't use the Chiang model for comparison at first. It's just that I was struggling to produce the blonde colour I had in mind with the Huang model. I didn't know Cycles is a RGB renderer, although I don't know what that means. Interesting. I have only heard that it is an unbiased renderer. Well, if it is a limitation of Cycles, then it's fine. Thank you for helping me.

I don't think Huang has an energy problem. The specific setup that you shared happens to highlight a difference between the hair models.
(all of the following images use 0.1melanin, ior 1.5, and 0 scale tilt, rendered at 2048samples)

If we look at the "front" and at the bottom of the strands (which is how you set the camera), we see Chiang with much more light there. But let us zoom out. Chiang also has sharper highlights towards the top of the strands.

Chiang Huang
4 chiang 0.3rough .1mel 64bounce 2048sam 1600density.png 4 huang 0.3rough .1mel 64bounce 2048sam 1600density.png

If we simply rotate the camera to be in the "back", we see a vast difference. Huang seems to prefer to forward scatter light.

Chiang Huang
4b chiang 0.3rough .1mel 64bounce 2048sam 1600density.png 4b huang 0.3rough .1mel 64bounce 2048sam 1600density.png

I often find that using anything more than one light, such as an HDRI

Chiang Huang
1 chiang 0.12rough .1mel 64bounce 2048sam 1000density crop.png 1 huang 0.05rough .1mel 64bounce 2048sam 1000density crop.png

or multiple lights

Chiang Huang
1e chiang 0.12rough .1mel 64bounce 2048sam 1000density crop.png 1e huang 0.05rough .1mel 64bounce 2048sam 1000density crop.png

produces fairly consistent results between the models.

Also, using realistically sized hair (30um radius in these images) and viewing it a reasonable distance, any differences are difficult to notice.

Chiang Huang
3b chiang 0.12rough .1mel 64bounce 2048sam 10000density 30umradius.png 3b huang 0.05rough .1mel 64bounce 2048sam 10000density 30umradius.png

However, if you read my file names, you'll notice that Huang's roughness will need to be half of Chiang to get similar light behavior (on average, the "exact" ratio changes between low or high roughness).

Chiang 0.5 Huang 0.2
2f chiang 0.5rough .1mel 64bounce 2048sam 1000density.png 2f huang 0.2rough .1mel 64bounce 8192sam 1000density.png

Other than the amount of perceived roughness, the roughness behaves differently between Chiang and Huang. All 1.0 roughness.

Chiang Huang Beckmann MGGX
2f chiang 1.0rough .1mel 64bounce 2048sam 1000density.png 2f huang 1.0rough .1mel 64bounce 2048sam 1000density.png 2f beck 1.0rough 64bounce 2048sam 1000density.png 2f MGGX 1.0rough 64bounce 2048sam 1000density.png

The one potential issue that I found, which might make Huang seem to lose energy in some cases, is the excessive scattering of reflected and transmitted light. In these images, their roughness is 0, yet Huang still doesn't have sharp caustics.

Chiang Huang
2b chiang 0.0rough .1mel 64bounce 2048sam 1000density.png 2b huang 0.0rough .1mel 64bounce 2048sam 1000density.png
I don't think Huang has an energy problem. The specific setup that you shared happens to highlight a difference between the hair models. (all of the following images use 0.1melanin, ior 1.5, and 0 scale tilt, rendered at 2048samples) If we look at the "front" and at the bottom of the strands (which is how you set the camera), we see Chiang with much more light there. But let us zoom out. Chiang also has sharper highlights towards the top of the strands. | Chiang | Huang | |-- |-- | | ![4 chiang 0.3rough .1mel 64bounce 2048sam 1600density.png](/attachments/6e8a7303-f68c-4169-beea-b74bfc555b9b) | ![4 huang 0.3rough .1mel 64bounce 2048sam 1600density.png](/attachments/9859368e-0673-44b1-a551-d8b54880e456) | If we simply rotate the camera to be in the "back", we see a vast difference. Huang seems to prefer to forward scatter light. | Chiang | Huang | |-- |-- | | ![4b chiang 0.3rough .1mel 64bounce 2048sam 1600density.png](/attachments/b371e3ff-c971-418d-bb44-87e9f8fedd98) | ![4b huang 0.3rough .1mel 64bounce 2048sam 1600density.png](/attachments/c3bd2983-ebb4-488d-b2d5-16f83482d239) | I often find that using anything more than one light, such as an HDRI | Chiang | Huang | |-- |-- | | ![1 chiang 0.12rough .1mel 64bounce 2048sam 1000density crop.png](/attachments/7b5670ff-230f-43ff-aa1f-5ae288e35aa6)| ![1 huang 0.05rough .1mel 64bounce 2048sam 1000density crop.png](/attachments/1a5463c6-0d81-4761-925e-79f986324a6c)| or multiple lights | Chiang | Huang | |-- |-- | | ![1e chiang 0.12rough .1mel 64bounce 2048sam 1000density crop.png](/attachments/611f376d-1fe2-4a57-9e7d-9ea56b8db065)| ![1e huang 0.05rough .1mel 64bounce 2048sam 1000density crop.png](/attachments/1eeea229-29ac-4503-9ef1-6ccd7623f499)| produces fairly consistent results between the models. Also, using realistically sized hair (30um radius in these images) and viewing it a reasonable distance, any differences are difficult to notice. | Chiang | Huang | |-- |-- | | ![3b chiang 0.12rough .1mel 64bounce 2048sam 10000density 30umradius.png](/attachments/a6cb1afa-42ef-4b3e-8b8a-c6ebddd27cdb)| ![3b huang 0.05rough .1mel 64bounce 2048sam 10000density 30umradius.png](/attachments/9f928505-87dc-49be-84f3-6674b7a34636)| However, if you read my file names, you'll notice that Huang's roughness will need to be half of Chiang to get similar light behavior (on average, the "exact" ratio changes between low or high roughness). | Chiang 0.5 | Huang 0.2 | |-- |-- | | ![2f chiang 0.5rough .1mel 64bounce 2048sam 1000density.png](/attachments/096046f4-1a2d-4e08-9944-da05d98c830b)| ![2f huang 0.2rough .1mel 64bounce 8192sam 1000density.png](/attachments/b3f2c03f-4a6d-4b0c-b67c-1e4f57c4077d)| Other than the amount of perceived roughness, the roughness behaves differently between Chiang and Huang. All 1.0 roughness. | Chiang | Huang | Beckmann | MGGX | |-- |-- |-- |-- | | ![2f chiang 1.0rough .1mel 64bounce 2048sam 1000density.png](/attachments/84ab7c22-5c83-4ab7-ac80-dfe84bcbf7ef)| ![2f huang 1.0rough .1mel 64bounce 2048sam 1000density.png](/attachments/951ad23f-a2f2-4339-8350-b92bf6614fb3)| ![2f beck 1.0rough 64bounce 2048sam 1000density.png](/attachments/c0399c4a-79d1-4fa1-b448-df2cad8898d7)| ![2f MGGX 1.0rough 64bounce 2048sam 1000density.png](/attachments/79c08e63-eea2-4241-b24a-a55de16ede28)| The one potential issue that I found, which might make Huang seem to lose energy in some cases, is the excessive scattering of reflected and transmitted light. In these images, their roughness is 0, yet Huang still doesn't have sharp caustics. | Chiang | Huang | |-- |-- | | ![2b chiang 0.0rough .1mel 64bounce 2048sam 1000density.png](/attachments/1e7a262d-91f7-45f4-8335-6782a6f555fc)| ![2b huang 0.0rough .1mel 64bounce 2048sam 1000density.png](/attachments/77629481-56d4-414b-9dcb-975ca676cd75)|
Member

@Fernando-Alcala Thanks for your comparisons, they are very helpful!
Regarding the roughness matching issue you mentioned, Huang and Chiang use different roughness models. Huang's roughness squared should be equivalent to MultiGGX roughness. I'm considering squaring the Huang roughness in the next version.
The missing of sharp caustics is interesting, can you share the file you used to produce caustics in Chiang?

@Fernando-Alcala Thanks for your comparisons, they are very helpful! Regarding the roughness matching issue you mentioned, Huang and Chiang use different roughness models. Huang's roughness squared should be equivalent to MultiGGX roughness. I'm considering squaring the Huang roughness in the next version. The missing of sharp caustics is interesting, can you share the file you used to produce caustics in Chiang?
No description provided.
Author

I don't think Huang has an energy problem. The specific setup that you shared happens to highlight a difference between the hair models.
(all of the following images use 0.1melanin, ior 1.5, and 0 scale tilt, rendered at 2048samples)

If we simply rotate the camera to be in the "back", we see a vast difference. Huang seems to prefer to forward scatter light.
I often find that using anything more than one light, such as an HDRI

Thank you for the extensive testing. Your results are helpful. One thing I wish to emphasise though, I'm not requesting the Huang model to produce similar or the same results as the Chiang model does. I simply provided the comparison to show the Huang hair is too dark even at a very low melanin level.

Your findings of the Huang model performing better with forward light is most likely why I'm having trouble with the hair. It indeed works better with an HDRI in my experience too, but I can't always choose where I can place the lights or use an HDRI. The specific scenario I am in is that the lights happen to be on one side of a corridor only, and they are above the character I'm trying to light. In fact, now that I think about it, there are very few situations where we see lights shining directly through the hair.

I think the main problem for me is that the Huang model, and actually the Chiang model too, have trouble showing light blonde hair under normal lighting conditions. Here is an example:
Demonstration 1.jpg
This is again at 0.1 of Melanin and 1.25 of Transmission, Huang model. To be fair, the Chiang model didn't fare much better. You can see the environment isn't very dark. It can be brighter, but certainly at the current level of brightness, it should be possible to see light blonde hair. For comparison, this is a real photo, and I think the lighting is much darker than my scene, but you can clearly see blonde hair.
photo-1637755188243-996376c7cf5e

> I don't think Huang has an energy problem. The specific setup that you shared happens to highlight a difference between the hair models. > (all of the following images use 0.1melanin, ior 1.5, and 0 scale tilt, rendered at 2048samples) > > If we simply rotate the camera to be in the "back", we see a vast difference. Huang seems to prefer to forward scatter light. > I often find that using anything more than one light, such as an HDRI Thank you for the extensive testing. Your results are helpful. One thing I wish to emphasise though, I'm not requesting the Huang model to produce similar or the same results as the Chiang model does. I simply provided the comparison to show the Huang hair is too dark even at a very low melanin level. Your findings of the Huang model performing better with forward light is most likely why I'm having trouble with the hair. It indeed works better with an HDRI in my experience too, but I can't always choose where I can place the lights or use an HDRI. The specific scenario I am in is that the lights happen to be on one side of a corridor only, and they are above the character I'm trying to light. In fact, now that I think about it, there are very few situations where we see lights shining directly through the hair. I think the main problem for me is that the Huang model, and actually the Chiang model too, have trouble showing light blonde hair under normal lighting conditions. Here is an example: ![Demonstration 1.jpg](/attachments/e6bb9d0b-5b53-4d50-bbb4-ff8c7fe281b0) This is again at 0.1 of Melanin and 1.25 of Transmission, Huang model. To be fair, the Chiang model didn't fare much better. You can see the environment isn't very dark. It can be brighter, but certainly at the current level of brightness, it should be possible to see light blonde hair. For comparison, this is a real photo, and I think the lighting is much darker than my scene, but you can clearly see blonde hair. ![photo-1637755188243-996376c7cf5e](/attachments/c2e80bf0-a22f-4353-bbd4-55507afd1bb5)
Weizhen Huang self-assigned this 2024-06-23 13:34:53 +02:00

Commentary on the last real reference you posted. While the average pixel level is low, this is likely due to a low exposure either in camera or post-process. There are decent highlights and shadows, just taken down a bit. So, the hair is likely receiving a good amount of environmental light.
Another thing, both real references you showed are of people who likely have treated their hair blonde, they are not natural (their dark eyebrows are what their true hair color is, and their dark roots indicate that it has been a few weeks since their last hair treatment). Ideally, bleaching only attacks eumelanin, but other damaging side effects will occur. Could treated hair be accurately represented with Cycles's hair BSDFs? Probably, you would at least have to decrease melanin and increase the pheomelanin ratio.

Here is a scene with two hairs enclosed in a box with small windows. They are lit with a sky texture: 5degree sunset at 0.1 strength. Huang is seen with less light.

Chiang Huang
5a chiang 0.3rough 0.1mel 0.1637red 64bounce 4096sam 0.1sky 5elevation.png 5a huang 0.15rough 0.1mel 0.1637red 64bounce 4096sam 0.1sky 5elevation.png
Chiang Huang
5aa chiang 0.3rough 0.1mel 0.1637red 64bounce 4096sam 0.1sky 5elevation.png 5aa huang 0.15rough 0.1mel 0.1637red 64bounce 4096sam 0.1sky 5elevation.png

Some basic level adjustments to try to make it more even. It seems like the rest of the environment is needed if either of them wants the unlit parts of their hair to have sharp highlights and thorough lighting.

Chiang Huang
5a chiang vlc.png 5a huang vlc.png

I am unable to reasonably achieve too-dark hair. By the time I get hair too dark, the whole scene is too dark.
I have a pure white sphere and a "gold" necklace for light-level reference. This scene has a 1meter x 0.5meter 0.5W area light with 180degree spread placed in front of the hairs. Huang is seen with less light, but it is not too dark.

Chiang Huang
5b chiang 40um 0.3rough 0.1mel 0.1637red 64bounce 4096sam.png 5b huang 40um 0.15rough 0.1mel 0.1637red 64bounce 4096sam.png

Then looking at the forward scattered light, Huang still has less light, but the difference is not too much.

Chiang Huang
5c chiang 40um 0.3rough 0.1mel 0.1637red 64bounce 4096sam.png 5c huang 40um 0.15rough 0.1mel 0.1637red 64bounce 4096sam.png

This setup shows a great difference between Chiang and Huang. It has a 1W 0.2meter x 0.2meter light above and in between the hairs. MGGX with volume absorption and scattering is not going to perfectly represent hair BSDFs, but I think it is a good reference point to use. Chiang really likes backscattering, almost excessively. I want to say Chiang is incorrect because of how different it looks to Huang and MGGX, but they are different models and Chiang is production-proven.

Chiang Huang MGGX
5d chiang 40um 0.3rough 0.1mel 0.1637red 4096sam.png 5d huang 40um 0.15rough 0.1mel 0.1637red 4096sam.png 5d MGGX 40um 0.15rough 0.1mel 0.1637red 4096sam scatter.png

And looking at the forward scatter between Chiang and Huang doesn't show much difference. So transmission at least is fine.

Chiang Huang MGGX
5dd chiang 40um 0.3rough 0.1mel 0.1637red 4096sam.png 5dd huang 40um 0.15rough 0.1mel 0.1637red 4096sam.png 5dd MGGX 40um 0.15rough 0.1mel 0.1637red 2176sam scatter.png
Commentary on the last real reference you posted. While the average pixel level is low, this is likely due to a low exposure either in camera or post-process. There are decent highlights and shadows, just taken down a bit. So, the hair is likely receiving a good amount of environmental light. Another thing, both real references you showed are of people who likely have treated their hair blonde, they are not natural (their dark eyebrows are what their true hair color is, and their dark roots indicate that it has been a few weeks since their last hair treatment). Ideally, bleaching only attacks eumelanin, but other damaging side effects will occur. Could treated hair be accurately represented with Cycles's hair BSDFs? Probably, you would at least have to decrease melanin and increase the pheomelanin ratio. Here is a scene with two hairs enclosed in a box with small windows. They are lit with a sky texture: 5degree sunset at 0.1 strength. Huang is seen with less light. | Chiang | Huang | | -- | -- | | ![5a chiang 0.3rough 0.1mel 0.1637red 64bounce 4096sam 0.1sky 5elevation.png](/attachments/f1bd6716-8f68-4c0b-9e2c-99d9b91a4121)| ![5a huang 0.15rough 0.1mel 0.1637red 64bounce 4096sam 0.1sky 5elevation.png](/attachments/bc72f71d-5020-4622-8b88-654a62da00b8)| | Chiang | Huang | | -- | -- | | ![5aa chiang 0.3rough 0.1mel 0.1637red 64bounce 4096sam 0.1sky 5elevation.png](/attachments/16bbad87-5be2-4b37-9a8b-3cba89e10064)| ![5aa huang 0.15rough 0.1mel 0.1637red 64bounce 4096sam 0.1sky 5elevation.png](/attachments/6ed0c01e-7390-48d8-a5ca-e7361531d59e)| Some basic level adjustments to try to make it more even. It seems like the rest of the environment is needed if either of them wants the unlit parts of their hair to have sharp highlights and thorough lighting. | Chiang | Huang | | -- | -- | | ![5a chiang vlc.png](/attachments/dc1de374-e77a-4724-963d-0e847d4b9309) | ![5a huang vlc.png](/attachments/39429166-22e7-4fb4-9f35-0695ad658e24)| --- I am unable to reasonably achieve too-dark hair. By the time I get hair too dark, the whole scene is too dark. I have a pure white sphere and a "gold" necklace for light-level reference. This scene has a 1meter x 0.5meter 0.5W area light with 180degree spread placed in front of the hairs. Huang is seen with less light, but it is not too dark. | Chiang | Huang | | -- | -- | | ![5b chiang 40um 0.3rough 0.1mel 0.1637red 64bounce 4096sam.png](/attachments/78482eae-bfd6-4064-9013-8223eba91903)| ![5b huang 40um 0.15rough 0.1mel 0.1637red 64bounce 4096sam.png](/attachments/7e569d69-5cbe-4bcc-b40f-af3e88beb608)| Then looking at the forward scattered light, Huang still has less light, but the difference is not too much. | Chiang | Huang | | -- | -- | | ![5c chiang 40um 0.3rough 0.1mel 0.1637red 64bounce 4096sam.png](/attachments/8565faf1-9af1-4d3b-ae31-433a01dd6d2d)| ![5c huang 40um 0.15rough 0.1mel 0.1637red 64bounce 4096sam.png](/attachments/b56d161a-8d4a-461c-a72d-fafc8ff53b75)| This setup shows a great difference between Chiang and Huang. It has a 1W 0.2meter x 0.2meter light above and in between the hairs. MGGX with volume absorption and scattering is not going to perfectly represent hair BSDFs, but I think it is a good reference point to use. Chiang really likes backscattering, almost excessively. I want to say Chiang is incorrect because of how different it looks to Huang and MGGX, but they are different models and Chiang is production-proven. | Chiang | Huang | MGGX | | -- | -- | -- | | ![5d chiang 40um 0.3rough 0.1mel 0.1637red 4096sam.png](/attachments/bcbac748-8a8c-4a4e-8658-0bc596863534)| ![5d huang 40um 0.15rough 0.1mel 0.1637red 4096sam.png](/attachments/4369f5ed-5f09-4fc7-b601-984b00d0a284)| ![5d MGGX 40um 0.15rough 0.1mel 0.1637red 4096sam scatter.png](/attachments/45bb1703-778b-40c3-8d07-83956af5fb7b)| And looking at the forward scatter between Chiang and Huang doesn't show much difference. So transmission at least is fine. | Chiang | Huang | MGGX | | -- | -- | -- | | ![5dd chiang 40um 0.3rough 0.1mel 0.1637red 4096sam.png](/attachments/436c7408-611f-40a3-97dd-92fb8c15d27d)| ![5dd huang 40um 0.15rough 0.1mel 0.1637red 4096sam.png](/attachments/69d55b8c-ff4e-42bc-99ef-4cae886c53c7)| ![5dd MGGX 40um 0.15rough 0.1mel 0.1637red 2176sam scatter.png](/attachments/1c2cd8bc-0bc3-4f76-997f-722eb557f417)|
Author

Commentary on the last real reference you posted. While the average pixel level is low, this is likely due to a low exposure either in camera or post-process. There are decent highlights and shadows, just taken down a bit. So, the hair is likely receiving a good amount of environmental light.
Another thing, both real references you showed are of people who likely have treated their hair blonde, they are not natural (their dark eyebrows are what their true hair color is, and their dark roots indicate that it has been a few weeks since their last hair treatment). Ideally, bleaching only attacks eumelanin, but other damaging side effects will occur. Could treated hair be accurately represented with Cycles's hair BSDFs? Probably, you would at least have to decrease melanin and increase the pheomelanin ratio.

I am unable to reasonably achieve too-dark hair. By the time I get hair too dark, the whole scene is too dark.
I have a pure white sphere and a "gold" necklace for light-level reference. This scene has a 1meter x 0.5meter 0.5W area light with 180degree spread placed in front of the hairs. Huang is seen with less light, but it is not too dark.

Thank you once again for putting in so much efforts to help me. I really appreciate it. This is really strange. Your results are exactly what I expect, but I can't achieve such results myself. Well, I can't share the environments because they are not mine, but I can share the hair I used. Could you please try lighting this hair so it looks blonde?

> Commentary on the last real reference you posted. While the average pixel level is low, this is likely due to a low exposure either in camera or post-process. There are decent highlights and shadows, just taken down a bit. So, the hair is likely receiving a good amount of environmental light. > Another thing, both real references you showed are of people who likely have treated their hair blonde, they are not natural (their dark eyebrows are what their true hair color is, and their dark roots indicate that it has been a few weeks since their last hair treatment). Ideally, bleaching only attacks eumelanin, but other damaging side effects will occur. Could treated hair be accurately represented with Cycles's hair BSDFs? Probably, you would at least have to decrease melanin and increase the pheomelanin ratio. > > I am unable to reasonably achieve too-dark hair. By the time I get hair too dark, the whole scene is too dark. > I have a pure white sphere and a "gold" necklace for light-level reference. This scene has a 1meter x 0.5meter 0.5W area light with 180degree spread placed in front of the hairs. Huang is seen with less light, but it is not too dark. Thank you once again for putting in so much efforts to help me. I really appreciate it. This is really strange. Your results are exactly what I expect, but I can't achieve such results myself. Well, I can't share the environments because they are not mine, but I can share the hair I used. Could you please try lighting this hair so it looks blonde?

The two biggest changes you need to make are making the hair's radius 40um and setting glossy bounces to something like 16. You should also change Factor Min in Set Hair Curve Profile to 1 (only newly grown hair tapers and that taper is short, and you're basically guaranteed to cut that off when grooming). I also set the transmission modulator back to 1.
There are still some dark spots left, but you can see most of it now and it looks much softer. At this angle, you could also benefit from making the top hair curve more smoothly.

your settings, Huang adjusted Huang adjusted Chiang
6a default bounces.png 6a 128 bounces 0.16phe 40um.png 6a chiang 32bounces .16phe 40um.png

Move around and you can see Huang pleasantly interact with the light. Use Huang's elliptical component to its advantage.

Chiang Huang circular Huang 0.7 elliptical
6c chiang 32bounces .16phe 40um.png 6c huang circ 32bounces .16phe 40um.png 6c huang 32bounces .16phe 40um.png
Chiang Huang circular Huang 0.7 elliptical
6b chiang 32bounces .16phe 40um.png 6b huang circ 32bounces .16phe 40um.png 6b huang 32bounces .16phe 40um.png
Chiang Huang circular Huang 0.7 elliptical
6d chiang 32bounces .16phe 40um.png 6d huang circ 32bounces .16phe 40um.png 6d huang 32bounces .16phe 40um.png
The two biggest changes you need to make are making the hair's radius 40um and setting glossy bounces to something like 16. You should also change Factor Min in Set Hair Curve Profile to 1 (only newly grown hair tapers and that taper is short, and you're basically guaranteed to cut that off when grooming). I also set the transmission modulator back to 1. There are still some dark spots left, but you can see most of it now and it looks much softer. At this angle, you could also benefit from making the top hair curve more smoothly. | your settings, Huang | adjusted Huang | adjusted Chiang | -- | -- | -- | | ![6a default bounces.png](/attachments/b3cd13a2-a8bb-4c8a-9bf7-c0f0c0e4b0ab)| ![6a 128 bounces 0.16phe 40um.png](/attachments/3b550a37-3f9c-4de4-8994-1ee26134bcfb)| ![6a chiang 32bounces .16phe 40um.png](/attachments/e7ab4ba6-439d-4ff6-a7d8-c7406a43b991)| Move around and you can see Huang pleasantly interact with the light. Use Huang's elliptical component to its advantage. | Chiang | Huang circular | Huang 0.7 elliptical | | -- | -- | -- | | ![6c chiang 32bounces .16phe 40um.png](/attachments/ef23bc98-75b0-410e-9b04-92b2dde3bfb0)| ![6c huang circ 32bounces .16phe 40um.png](/attachments/84eb718f-dff2-4c42-8a3e-3237789b2bc4) | ![6c huang 32bounces .16phe 40um.png](/attachments/a725e16a-2cd5-421f-af5f-a2a3b8de357f)| | Chiang | Huang circular | Huang 0.7 elliptical | | -- | -- | -- | | ![6b chiang 32bounces .16phe 40um.png](/attachments/22a723c7-2aff-4e04-80b5-048b6374c263)| ![6b huang circ 32bounces .16phe 40um.png](/attachments/e489bc46-846d-4bd9-bf84-d59147a11564)| ![6b huang 32bounces .16phe 40um.png](/attachments/056e8391-2f03-42d8-825c-5ebf95aea505)| | Chiang | Huang circular | Huang 0.7 elliptical | | -- | -- | -- | | ![6d chiang 32bounces .16phe 40um.png](/attachments/b981341c-be71-4ba5-b6b1-fea733a32cb0)| ![6d huang circ 32bounces .16phe 40um.png](/attachments/c2aecacb-5d17-439c-b540-d7c29c92aa07)| ![6d huang 32bounces .16phe 40um.png](/attachments/5ebe52a2-48b9-4614-80ee-323eda26b3da)|
Author

The two biggest changes you need to make are making the hair's radius 40um and setting glossy bounces to something like 16. You should also change Factor Min in Set Hair Curve Profile to 1 (only newly grown hair tapers and that taper is short, and you're basically guaranteed to cut that off when grooming). I also set the transmission modulator back to 1.
There are still some dark spots left, but you can see most of it now and it looks much softer. At this angle, you could also benefit from making the top hair curve more smoothly.

Thank you so much. So the hair radius was the main problem. I used a higher value because a huge number of hair strands consume a lot of memory. May I ask, after you set the radius to 40um, did you change the density in the Interpolate Hair Curves modifier? If so, what did you change it to?

> > The two biggest changes you need to make are making the hair's radius 40um and setting glossy bounces to something like 16. You should also change Factor Min in Set Hair Curve Profile to 1 (only newly grown hair tapers and that taper is short, and you're basically guaranteed to cut that off when grooming). I also set the transmission modulator back to 1. > There are still some dark spots left, but you can see most of it now and it looks much softer. At this angle, you could also benefit from making the top hair curve more smoothly. Thank you so much. So the hair radius was the main problem. I used a higher value because a huge number of hair strands consume a lot of memory. May I ask, after you set the radius to 40um, did you change the density in the Interpolate Hair Curves modifier? If so, what did you change it to?

No change there.

No change there.
Author

No change there.

Okay but, after I set the radius of the hair to 40um, without changing the density of the hair, it looks like he is balding.

Demonstration 2.jpg

Of course, I can increase the density to compensate for that, but from my testing, I have to increase the density to like 4,000,000 with the current settings, which takes up too much memory and slows down rendering by quite a lot. Maybe it is realistic that you need that much hair to cover the head in real life with physically correct hair, but it is quite taxing on the computer.

> No change there. Okay but, after I set the radius of the hair to 40um, without changing the density of the hair, it looks like he is balding. ![Demonstration 2.jpg](/attachments/bd495947-3dbb-4823-826a-f52ac80fe223) Of course, I can increase the density to compensate for that, but from my testing, I have to increase the density to like 4,000,000 with the current settings, which takes up too much memory and slows down rendering by quite a lot. Maybe it is realistic that you need that much hair to cover the head in real life with physically correct hair, but it is quite taxing on the computer.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#123451
No description provided.