AcademySoftwareFoundation / OpenPBR

Specification and reference implementation for the OpenPBR Surface shading model
Apache License 2.0
407 stars 18 forks source link

Adding example materials #147

Closed AntonPalmqvist closed 7 months ago

AntonPalmqvist commented 7 months ago

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

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

linux-foundation-easycla[bot] commented 7 months ago

CLA Signed

The committers listed above are authorized under a signed CLA.

meshula commented 7 months ago

these demonstrate the material's versatility nicely!

jstone-lucasfilm commented 7 months ago

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 commented 7 months ago

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

jstone-lucasfilm commented 7 months ago

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.

virtualzavie commented 7 months ago

This is a fantastic idea. Thank you @AntonPalmqvist.