Skip to content

Update OpenPBR default example - #216

Merged
jstone-lucasfilm merged 1 commit into
AcademySoftwareFoundation:dev_1.1from
jstone-lucasfilm:main
Jun 8, 2024
Merged

jstone-lucasfilm merged 1 commit into
AcademySoftwareFoundation:dev_1.1from
jstone-lucasfilm:main

Conversation

@jstone-lucasfilm

Copy link
Copy Markdown
Member

This changelist updates the OpenPBR default example, matching its values to the latest default values of the shading model.

This changelist updates the OpenPBR default example, matching its values to the latest default values of the shading model.
@jstone-lucasfilm
jstone-lucasfilm changed the base branch from main to dev_1.1 June 8, 2024 18:25
@jstone-lucasfilm
jstone-lucasfilm merged commit 9704b2a into AcademySoftwareFoundation:dev_1.1 Jun 8, 2024
Comment thread examples/open_pbr_default.mtlx Resolved
AdrienHerubel added a commit that referenced this pull request Mar 3, 2026
* Update OpenPBR default example (#216)

This changelist updates the OpenPBR default example, matching its values to the latest default values of the shading model.

* Change thin film IOR default (#211)

From 1.5 to 1.4.  

As 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).

* Add note about dark fuzz (#207)

Addressing #176

* Enable Zeltner sheen (#217)

This changelist enables Zeltner sheen in the reference implementation of OpenPBR, leveraging the new functionality in MaterialX 1.39.

Additionally, the open_pbr_velvet.mtlx example has been updated to account for the visual differences between Conty-Kulla and Zeltner sheen.

* Add a "resources" section to the front page (#215)

With links to
  - MaterialX web viewer running OpenPBR default material
  - OpenPBR-viewer project and web app

* Clarify formula for emission color (#209)

Following the discussion of #85.

* Update subsurface color types (#220)

This changelist updates the types associated with physical color values for subsurface scattering in OpenPBR, aligning with the conclusions of recent threads on ASWF Slack channels.

- Change `subsurface_radius_scale` from a `vector3` to a `color3` in the specification, aligning with the MaterialX implementation of OpenPBR.
- Change the `radius` input of `subsurface_bsdf` from a `vector3` to a `color3` in the MaterialX implementation, aligning with the current definition of the `subsurface_bsdf` node in MaterialX 1.39.

* Update specification and reference to v1.1 (#221)

* Add "Flexibility of implementation" section (#248)

* Add page to propose real-time approximations

* Mention layering and mixing approximation

* Mantion specular reflection approximation

* Mention anisotropic reflection approximations

* Fix typos

* Wording

* Reword the section, move it to the main document, remove the annex

* Subsurface in thin-walled mode, small clarification (#258)

* Merge v1.1 development to main (#222)

This changelist merges v1.1 development from dev_1.1 to main, in preparation for marking the release of OpenPBR v1.1.

* Subsurface in thin-walled mode, small clarification

* Subsurface in thin-walled mode, small clarification

---------

Co-authored-by: Jonathan Stone <jstone@lucasfilm.com>

* Allow emission_color components to exceed 1 (#260)

* Add more material examples (#257)

* Merge v1.1 development to main (#222)

This changelist merges v1.1 development from dev_1.1 to main, in preparation for marking the release of OpenPBR v1.1.

* Adding more material examples
- Bumped MaterialX version from 1.38 to 1.39 on existing examples
- Added new examples

* - Added MIT Black

* Color updates:
- Updated all colors to ACEScg
- All metals now have F82 as specular_color
- Added a few more metals from Portsmouth's chart

* Material updates:
- Added SSS to Sclera and made it less red
- Added LCD Display material
- Added two variations of Light Bulb with different CCT

* Material updates:
- Added base_diffuse_roughness to Brick, Charcoal, and Sand
- Made Velvet purple so it's more convincing

* Updated roughness values

* Removed a few materials that were less useful as examples

* Renamed Polyurethane

* Updated Blood material

* Added Abbe value to Blood material

* Updated IOR of Blood

* - Updated coffee material

* Split Honey into two materials, liquid and crystallized

* - Updated Honey (Crystallized) roughness value

---------

Signed-off-by: Adrien Herubel <AdrienHerubel@users.noreply.github.com>
Co-authored-by: Jonathan Stone <jstone@lucasfilm.com>
Co-authored-by: Adrien Herubel <AdrienHerubel@users.noreply.github.com>

* Integrate OpenPBR update from MaterialX project (#265)

* Integrate OpenPBR updates from MaterialX project

This changelist integrates two post-1.1 updates to OpenPBR Surface from the MaterialX project:

- Optimizations to OpenPBR graph (AcademySoftwareFoundation/MaterialX#2459)
- Add code generation hints support (AcademySoftwareFoundation/MaterialX#1954)

The more substantial update is the graph optimization, and I've copied the performance measurements from the original change for reference:

Performance tests were conducted on an NVIDIA RTX A6000 at 4K resolution, and the following timing improvements were seen:

OpenPBR Carpaint: 16ms -> 7ms
OpenPBR Glass: 27ms -> 11ms
OpenPBR Pearl: 16ms -> 12ms
OpenPBR Aluminum: 14ms -> 5ms

* Omit hardware shading optimizations

* Move anisotropy figure before Multiple Scattering section

* Revert CHANGELOG.md to upstream/dev_1.2 (belongs in separate PR #295)

---------

Signed-off-by: Adrien Herubel <AdrienHerubel@users.noreply.github.com>
Co-authored-by: Jonathan Stone <jstone@lucasfilm.com>
Co-authored-by: Julien Guertault <9511025+virtualzavie@users.noreply.github.com>
Co-authored-by: Anton Palmqvist <13031779+AntonPalmqvist@users.noreply.github.com>
Co-authored-by: Adrien Herubel <AdrienHerubel@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
jstone-lucasfilm pushed a commit that referenced this pull request Oct 27, 2026
Updates `CHANGELOG.md` for 1.1.2 and refines the change classification.

OpenPBR follows [semantic versioning](https://semver.org): fix (patch) versions such as 1.1.2 should only contain implementation fixes, wording and cosmetic changes. New features and look-changing changes are reserved for minor and major versions. The changelog now states this explicitly.

**1.1.2 section** (marked Unreleased), listing the PRs merged into `dev_1.1.2` so far: #321, #284, #304, #313, #322, #309, #315, #325.

**New classification**: the former catch-all 🐛 bug fix category is split into:
- 🐛 **Implementation fix**: changes to the reference MaterialX implementation, for example bringing it in line with the specification.
- 📝 **Wording**: clarifications, rewordings or corrections of the specification text that do not change the intended model.
- 🧹 **Cosmetic**: presentation-only changes (typos, notation, capitalization, links, images) with no effect on meaning, or changes to the project resources (example materials, changelog, front page).

✨ new feature (now restricted to new functionality in the model) and 🎨 look-changing are kept, and the legend defines each category.

Entries of 1.1.1 and 1.1 are reclassified accordingly and grouped by category. In particular, entries previously marked as new features are reclassified: MaterialX implementation changes (#265, #217) as implementation fixes, and project resource changes (#257, #289, #215) as cosmetic. Changes to the example materials (#313, #216) are also classified as cosmetic.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
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.

3 participants