Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@

# OpenPBR Change Log
This file gives a high level overview of the changes introduced between versions, relative to version 1.0.

How to read this document : ✨ new feature  |  🎨 look-changing  |  🐛 bug fix

## [[1.1.1]](https://github.com/AcademySoftwareFoundation/OpenPBR/tree/v1.1.1) - April 17, 2026
- 🐛 [Implementation flexibility](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/248) **#248**: Adds a new section to the specification formally stating that implementers of the specification are free to use approximations, for example for low-power constraints.
- 🐛 [Thin-walled subsurface](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/258) **#258**: Clarifies the interaction of `geometry_thin_walled` and subsurface and how it affects `subsurface_radius` and `subsurface_scale`.
- 🐛 [HDR emission color](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/260) **#260**: Allows values above 1 for `emission_color`.
- 🐛 [More examples](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/257) **#257**: Adds more material examples.
- 🐛 [MaterialX hints](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/265) **#265**: Adds MaterialX code generation hints.
- 🐛 [Metal edge tint and ignored thin-walled](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/300) **#300**: Fixes two issues in the MaterialX implementation, the edge tint was incorrectly multiplied by the specular weight (backported from **#240**) and `geometry_thin_walled` was not connected to the shader (backported from **AcademySoftwareFoundation/MaterialX#2759**).
- 🐛 [New logo](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/235) **#235**: Uses the new logo in the specification.
- 🐛 [Broken links](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/230) **#230**: Fixes broken links in the specification.
- 🐛 [Improved wording](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/218) **#218**: Adds various clarifications and rewordings to the specification.
- 🐛 [Added Changelog](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/289) **#289**: Adds a changelog to the project.
- 🐛 [New images](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/236) **#236**: Updates images for the model schematic illustration, glossy diffuse wood, fuzz roughness and new images for anisotropy.
- 🐛 [Revised thin-film section](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/262) **#262**: Expands the thin-film specification and revises it to make it clearer.

## [[1.1]](https://github.com/AcademySoftwareFoundation/OpenPBR/tree/v1.1) - Jun 28, 2024
- ✨ [Enable Zeltner sheen](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/217) **#217**: This change enables Zeltner sheen in the reference implementation of OpenPBR, leveraging the new functionality in MaterialX.
- 🎨 [Change thin film IOR default](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/211) **#211**: This won't make much difference to the look in implementations that ignore the adjacent IORs of the film, but for those that take it into account, this will make the film visible rather than invisible by default (since `specular_ior` is 1.5 by default, and `coat_ior` 1.6).
- 🎨 [Update subsurface color types](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/220) **#220**: Changes `subsurface_radius_scale` from `vector3` to `color3`, aligning the type with its per-channel usage.
- 🐛 [Updated OpenPBR default example](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/216) **#216**: Updates the OpenPBR default example, matching its values to the latest default values of the shading model.
- 🐛 [Allow darkening in fuzz](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/207) **#207**: Allows fuzz to darken as well as lighten the reflection.
- 🐛 [Resource section](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/215) **#215**: Adds a resource section to the front page of the project.
- 🐛 [Clearer emission color formula](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/209) **#209**: Clarifies the formula for the emission color.
- 🐛 [Version update](https://github.com/AcademySoftwareFoundation/OpenPBR/pull/221) **#221**: Updates the specification and MaterialX node definition to 1.1.

## [[1.0]](https://github.com/AcademySoftwareFoundation/OpenPBR/tree/v1.0) - Jun 4, 2024

- _First release._


11 changes: 9 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
# OpenPBR Surface


<br>
<p align="center">
<img src="images/logo/openpbr-logo-glyph.svg" alt="homepage" height="80px" style="vertical-align: middle; position: relative; bottom: 3px"/>&nbsp;&nbsp;
<img src="images/logo/openpbr-logo-text.svg" alt="homepage" height="96px" style="vertical-align: middle; position: relative; bottom: 3px"/>
</p>
<br>
<p align="center">
<img src="images/OpenPBR_title.jpg" title="OpenPBR demonstration scene" />
<img src="images/OpenPBR_title.jpg" title="OpenPBR demonstration scene" width="80%"/>
<br>
<sub><i>Shader Playground, rendered in Arnold for Maya, using OpenPBR Surface. Artwork by Nikie Monteleone.</i></sub>
</p>
<br>
Expand Down
26 changes: 13 additions & 13 deletions examples/open_pbr_aluminum_brushed.mtlx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<?xml version="1.0"?>
<materialx version="1.38" colorspace="lin_rec709">
<surfacematerial name="Aluminum_Brushed" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<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_roughness_anisotropy" type="float" value="0.9" />
</open_pbr_surface>
</materialx>
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Aluminum_Brushed" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="base_color" type="color3" value="0.918, 0.922, 0.923" />
<input name="base_metalness" type="float" value="1.0" />
<input name="specular_color" type="color3" value="0.921, 0.934, 0.955" />
<input name="specular_roughness" type="float" value="0.2" />
<input name="specular_roughness_anisotropy" type="float" value="0.9" />
</open_pbr_surface>
</materialx>
12 changes: 12 additions & 0 deletions examples/open_pbr_beryllium.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Beryllium" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="base_color" type="color3" value="0.537, 0.534, 0.534" />
<input name="base_metalness" type="float" value="1.0" />
<input name="specular_color" type="color3" value="0.734, 0.738, 0.752" />
<input name="specular_roughness" type="float" value="0.02" />
</open_pbr_surface>
</materialx>
11 changes: 11 additions & 0 deletions examples/open_pbr_blackboard.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Blackboard" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="base_color" type="color3" value="0.039, 0.039, 0.039" />
<input name="base_diffuse_roughness" type="float" value="1.0" />
<input name="specular_roughness" type="float" value="1.0" />
</open_pbr_surface>
</materialx>
15 changes: 15 additions & 0 deletions examples/open_pbr_blood.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Blood" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="specular_roughness" type="float" value="0.0" />
<input name="specular_ior" type="float" value="1.35" />
<input name="transmission_weight" type="float" value="1.0" />
<input name="transmission_color" type="color3" value="0.396, 0.048, 0.018" />
<input name="transmission_depth" type="float" value="0.08" />
<input name="transmission_dispersion_scale" type="float" value="1.0" />
<input name="transmission_dispersion_abbe_number" type="float" value="54" />
</open_pbr_surface>
</materialx>
12 changes: 12 additions & 0 deletions examples/open_pbr_brass.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Brass" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="base_color" type="color3" value="0.844, 0.782, 0.473" />
<input name="base_metalness" type="float" value="1.0" />
<input name="specular_color" type="color3" value="0.963, 0.977, 1.013" />
<input name="specular_roughness" type="float" value="0.02" />
</open_pbr_surface>
</materialx>
11 changes: 11 additions & 0 deletions examples/open_pbr_brick.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Brick" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="base_color" type="color3" value="0.196, 0.106, 0.069" />
<input name="base_diffuse_roughness" type="float" value="1.0" />
<input name="specular_roughness" type="float" value="1.0" />
</open_pbr_surface>
</materialx>
28 changes: 14 additions & 14 deletions examples/open_pbr_carpaint.mtlx
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<?xml version="1.0"?>
<materialx version="1.38" colorspace="lin_rec709">
<surfacematerial name="Car_Paint" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<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" />
</open_pbr_surface>
</materialx>
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Car_Paint" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<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" />
</open_pbr_surface>
</materialx>
12 changes: 12 additions & 0 deletions examples/open_pbr_cesium.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Cesium" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="base_color" type="color3" value="0.633, 0.561, 0.299" />
<input name="base_metalness" type="float" value="1.0" />
<input name="specular_color" type="color3" value="1.128, 1.175, 1.394" />
<input name="specular_roughness" type="float" value="0.02" />
</open_pbr_surface>
</materialx>
11 changes: 11 additions & 0 deletions examples/open_pbr_charcoal.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Charcoal" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="base_color" type="color3" value="0.020, 0.020, 0.020" />
<input name="base_diffuse_roughness" type="float" value="1.0" />
<input name="specular_roughness" type="float" value="1.0" />
</open_pbr_surface>
</materialx>
12 changes: 12 additions & 0 deletions examples/open_pbr_chocolate.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Chocolate" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="specular_roughness" type="float" value="0.5" />
<input name="subsurface_weight" type="float" value="1.0" />
<input name="subsurface_color" type="color3" value="0.133, 0.096, 0.065" />
<input name="subsurface_radius_scale" type="color3" value="0.1, 0.05, 0.025" />
</open_pbr_surface>
</materialx>
12 changes: 12 additions & 0 deletions examples/open_pbr_chromium.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Chromium" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="base_color" type="color3" value="0.666, 0.682, 0.698" />
<input name="base_metalness" type="float" value="1.0" />
<input name="specular_color" type="color3" value="0.706, 0.726, 0.788" />
<input name="specular_roughness" type="float" value="0.02" />
</open_pbr_surface>
</materialx>
12 changes: 12 additions & 0 deletions examples/open_pbr_cobalt.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Cobalt" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="base_color" type="color3" value="0.699, 0.703, 0.676" />
<input name="base_metalness" type="float" value="1.0" />
<input name="specular_color" type="color3" value="0.747, 0.770, 0.815" />
<input name="specular_roughness" type="float" value="0.02" />
</open_pbr_surface>
</materialx>
15 changes: 15 additions & 0 deletions examples/open_pbr_coffee.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Coffee" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="specular_roughness" type="float" value="0.0" />
<input name="specular_ior" type="float" value="1.34" />
<input name="transmission_weight" type="float" value="1.0" />
<input name="transmission_color" type="color3" value="0.321, 0.154, 0.053" />
<input name="transmission_depth" type="float" value="0.1" />
<input name="transmission_dispersion_scale" type="float" value="1.0" />
<input name="transmission_dispersion_abbe_number" type="float" value="55.78" />
</open_pbr_surface>
</materialx>
10 changes: 10 additions & 0 deletions examples/open_pbr_concrete.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Concrete" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="base_color" type="color3" value="0.510, 0.510, 0.510" />
<input name="specular_roughness" type="float" value="0.5" />
</open_pbr_surface>
</materialx>
12 changes: 12 additions & 0 deletions examples/open_pbr_cooking_oil.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Cooking_Oil" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="specular_roughness" type="float" value="0.0" />
<input name="specular_ior" type="float" value="1.47" />
<input name="transmission_weight" type="float" value="1.0" />
<input name="transmission_color" type="color3" value="0.690, 0.683, 0.170" />
</open_pbr_surface>
</materialx>
12 changes: 12 additions & 0 deletions examples/open_pbr_copper.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Copper" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="base_color" type="color3" value="0.811, 0.643, 0.542" />
<input name="base_metalness" type="float" value="1.0" />
<input name="specular_color" type="color3" value="0.970, 0.950, 0.946" />
<input name="specular_roughness" type="float" value="0.02" />
</open_pbr_surface>
</materialx>
2 changes: 1 addition & 1 deletion examples/open_pbr_default.mtlx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
<materialx version="1.38" colorspace="lin_rec709">
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Default" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
<input name="displacementshader" type="displacementshader" value="" />
Expand Down
13 changes: 13 additions & 0 deletions examples/open_pbr_diamond.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Diamond" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="specular_roughness" type="float" value="0.0" />
<input name="specular_ior" type="float" value="2.42" />
<input name="transmission_weight" type="float" value="1.0" />
<input name="transmission_dispersion_scale" type="float" value="1.0" />
<input name="transmission_dispersion_abbe_number" type="float" value="55.3" />
</open_pbr_surface>
</materialx>
10 changes: 10 additions & 0 deletions examples/open_pbr_egg_shell.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Egg_Shell" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="base_color" type="color3" value="0.616, 0.623, 0.630" />
<input name="specular_roughness" type="float" value="0.8" />
</open_pbr_surface>
</materialx>
11 changes: 11 additions & 0 deletions examples/open_pbr_eye_cornea.mtlx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<materialx version="1.39" colorspace="acescg">
<surfacematerial name="Eye_cornea" type="material">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader">
<input name="specular_roughness" type="float" value="0.0" />
<input name="specular_ior" type="float" value="1.38" />
<input name="transmission_weight" type="float" value="1.0" />
</open_pbr_surface>
</materialx>
Loading