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

Adding example materials #147

Merged
merged 2 commits into from
Dec 6, 2023
Merged

Adding example materials #147

merged 2 commits into from
Dec 6, 2023

Conversation

AntonPalmqvist
Copy link
Contributor

Here's a collection of example materials, in .mtlx format, that cover most of the parameters found in the OpenPBR specification, as suggested in this Slack thread: https://academysoftwarefdn.slack.com/archives/C06365EAQMP/p1698709666974279

  • Any parameters that would’ve been the same as the default have been omitted, to keep the files as minimal as possible, with potential loss of clarity in some cases. Let me know if there are any concerns with this.
  • Scene unit for the test renders was set to centimeters. This brings up something I find a bit confusing, why the Subsurface Radius unit isn’t specified in the mtlx file, when the goal is to unify material parameters across applications? Subsurface materials will look different depending on the users scene units. Why is the unit not specified, as it is with Thin Film Thickness, and Emission Luminance?
  • Tests were rendered using aiOpenPBRSurface in Arnold 7.2.5.0 Beta 60, kindly provided by @portsmouth
  • transmission_dispersion_abbe_number and transmission_dispersion_scale from the white paper are not yet in the reference implementation. Do we want to wait with them for the Glass material, or should I keep them, for future compatibility? They are functional in Arnold at least.
  • For the above reason, all materials except Glass are confirmed working in MaterialX Viewer, using the OpenPBR reference implementation.
  • I added the default material as well. Let me know if it doesn't belong here.
  • All materials are thoroughly researched to be as physically accurate as possible

Brushed Aluminum

<input name="base_color" type="color3" value="0.912, 0.914, 0.920" />
<input name="base_metalness" type="float" value="1.0" />
<input name="specular_color" type="color3" value="0.970, 0.979, 0.988" />
<input name="specular_roughness" type="float" value="0.2" />
<input name="specular_anisotropy" type="float" value="0.9" />
<input name="specular_rotation" type="float" value="0.25" />

Aluminum Brushed OpenPBR Caustics

Car Paint

<input name="base_color" type="color3" value="0.1, 0.6, 0.9" />
<input name="specular_ior" type="float" value="1.6" />
<input name="specular_roughness" type="float" value="0.3" />
<input name="coat_weight" type="float" value="1" />
<input name="coat_roughness" type="float" value="0.02" />
<input name="coat_ior" type="float" value="1.6" />

Car Paint OpenPBR Caustics

Glass

<input name="specular_roughness" type="float" value="0.0" />
<input name="specular_ior" type="float" value="1.52" />
<input name="transmission_weight" type="float" value="1.0" />
<input name="transmission_dispersion_abbe_number" type="float" value="64" />
<input name="transmission_dispersion_scale" type="float" value="1.0" />

Glass OpenPBR Caustics

Honey

<input name="specular_roughness" type="float" value="0.0" />
<input name="specular_ior" type="float" value="1.504" />
<input name="transmission_weight" type="float" value="1.0" />
<input name="transmission_color" type="color3" value="0.83, 0.4, 0.04" />
<input name="transmission_depth" type="float" value="2" />
<input name="transmission_scatter" type="color3" value="0.9, 0.9, 0.9" />

Honey OpenPBR

Ketchup

<input name="base_color" type="color3" value="0.164, 0.006, 0.002" />
<input name="specular_roughness" type="float" value="0" />
<input name="specular_ior" type="float" value="1.3" />
<input name="subsurface_weight" type="float" value="1.0" />
<input name="subsurface_color" type="color3" value="0.164, 0.006, 0.002" />
<input name="subsurface_radius_scale" type="color3" value="0.476, 0.058, 0.039" />

Ketchup OpenPBR

Light Bulb

<input name="emission_color" type="color3" value="1.000, 0.415, 0.099" />
<input name="emission_luminance" type="float" value="10000" />

Light Bulb OpenPBR2

Pearl

<input name="base_color" type="color3" value="0.8, 0.75, 0.7" />
<input name="specular_roughness" type="float" value="0.35" />
<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.8, 0.75, 0.7" />
<input name="subsurface_radius_scale" type="color3" value="0.3, 0.5, 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="420" />
<input name="thin_film_ior" type="float" value="2" />

Pearl OpenPBR Caustics

Soap Bubble

<input name="specular_roughness" type="float" value="0" />
<input name="specular_ior" type="float" value="1.0" />
<input name="transmission_weight" type="float" value="1.0" />
<input name="thin_film_thickness" type="float" value="500" />
<input name="thin_film_ior" type="float" value="1.4" />
<input name="geometry_thin_walled" type="boolean" value="true" />

Soap Bubble OpenPBR Thin Walled

Velvet

<input name="base_color" type="color3" value="0.02, 0.02, 0.02" />
<input name="specular_roughness" type="float" value="0.8" />
<input name="fuzz_weight" type="float" value="1" />
<input name="fuzz_color" type="color3" value="0.4, 0.4, 0.4" />
<input name="fuzz_roughness" type="float" value="0.2" />

Velvet OpenPBR

Copy link

linux-foundation-easycla bot commented Dec 3, 2023

CLA Signed

The committers listed above are authorized under a signed CLA.

  • ✅ login: AntonPalmqvist / name: Anton Palmqvist (239f8aa)
  • ✅ login: jstone-lucasfilm / name: Jonathan Stone (d280b95)

@meshula
Copy link

meshula commented Dec 4, 2023

these demonstrate the material's versatility nicely!

@jstone-lucasfilm
Copy link
Member

Thanks for this great initial work, @AntonPalmqvist, and I'll just highlight these renders of the first three examples in the MaterialX render test suite, comparing their visual output in GLSL and OSL:

MaterialXRenderTests_12_04_23_OpenPBR_Examples

@AntonPalmqvist
Copy link
Contributor Author

Feel free to merge whenever you feel ready, as I don't have write access to this repository.

@jstone-lucasfilm
Copy link
Member

Thanks @AntonPalmqvist, and I'd agree that we should move forward and merge this work, which we can continue to build upon as we approach an OpenPBR 1.0 release.

@jstone-lucasfilm jstone-lucasfilm merged commit 4e0ec21 into AcademySoftwareFoundation:main Dec 6, 2023
1 check passed
@virtualzavie
Copy link
Contributor

This is a fantastic idea. Thank you @AntonPalmqvist.

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

Successfully merging this pull request may close these issues.

4 participants