Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Material idea: Pearl #43

Open
pablode opened this issue Oct 31, 2023 · 3 comments
Open

Material idea: Pearl #43

pablode opened this issue Oct 31, 2023 · 3 comments

Comments

@pablode
Copy link

pablode commented Oct 31, 2023

Hello - thank you for this great resource!

I recently had the need for a (cultured) pearl material - and the first thing I did was checking out this DB.

I think the material would make a great addition due to its need of SSS, clearcoat and possibly iridescence. There are a number of resources on the optical properties:

@AntonPalmqvist
Copy link
Owner

Hi, I'm glad you like it!

That's a great suggestion, and thank you for the excellent resources. I'll have a look!

@AntonPalmqvist
Copy link
Owner

Here's my results so far. I tried to reproduce the most commonly depicted pearl type, with an off-white overall color and a green-pink tint.
Thanks again for the resources, they've been very helpful, especially the first one where they're actually doing renders themselves. However, as they mention in that paper, to accurately reproduce a pearl-like material, one would need a new shading model, as current models can't simulate the multilayer characteristics of the nacre.

With that said, I think you can get pretty close with the parameters available in Autodesk Standard Surface and OpenPBR:

  • Base Color and Subsurface Color are set to a yellowish color
  • Subsurface Radius is set to let red wavelengths a bit further, to give it a pinkish tint (I exaggerated the scale in the screenshot below to give an idea of how a small pearl would look like, as the shader ball is quite big).
  • IOR is set to 1.5, which is that of conchiolin, and Coat IOR is set to 1.68, which is that of aragonite. In reality there are many (hundreds?) of these layers interweaved.
  • Thin Film Thickness is set to 380 nm and Thin Film IOR to 2. This is where I had to use a bit more creative freedom to get it to look more pearl-like. 380 nm is somewhat close to the values mentioned in the paper, but IOR of 2 is not really motivated, but I can imagine the multilayer structure, when approximated into one thin film layer, cold be resulting in a higher IOR.
  • I was very temped to give it a non-PBR Metalness value of 0.4 because it made it look pretty good, but I decided to not do it in the end since it wouldn't really be physically correct and could mess things up for the rest of the layers. However, I think there could be some metal-like properties in the nacre, that are similar to a metallic coating on a transparent glass surface that could be explored further.

Here's the full stack of parameters used:

<input name="base_color" type="color3" value="0.95, 0.9, 0.8" />
<input name="specular_roughness" type="float" value="0.4" />
<input name="specular_ior" type="float" value="1.5" />
<input name="subsurface_weight" type="float" value="1.0" />
<input name="subsurface_color" type="color3" value="0.95, 0.9, 0.8" />
<input name="subsurface_radius_scale" type="color3" value="0.5, 0.3, 0.3" />
<input name="coat_weight" type="float" value="1" />
<input name="coat_roughness" type="float" value="0.15" />
<input name="coat_ior" type="float" value="1.68" />
<input name="thin_film_thickness" type="float" value="380" />
<input name="thin_film_ior" type="float" value="2" />
Screenshot 2023-11-05 at 11 01 07

@pablode
Copy link
Author

pablode commented Nov 5, 2023

That looks absolutely great! I guess it will take quite a while until there’s a pearlescence BSDF in MaterialX, but considering the shading model limitations, it’s pretty close!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants