Video summary
OpenPBR: Road to Expressive and Interoperable Material Models — BCON26
Main summary
Key takeaways
Main ideas and lessons
-
Interoperable material models are needed for collaboration across tools
- Working in teams is easier and faster when everyone can share assets without rework.
- If everyone uses the same software and material model ecosystem, collaboration is straightforward (swap files, keep identical materials/rendering assumptions).
- In heterogeneous workflows (different DCC apps / renderers), sharing breaks down because:
- Different apps use different material models, renderers, and scene/file formats.
- Converting assets often becomes one-way, forcing manual “hand tuning” to match the look again.
- Iteration gets painful: changes must be redone after conversion.
-
The solution is standardized material/asset representation
- The talk positions interoperability as an “asset exchange” problem and highlights three related open standards/projects:
- openPBR: standardizes physically based material appearance layering.
- MaterialX: packages shading networks (node graphs) so look definitions can move between applications.
- USD: a scene/asset representation that can bundle geometry, materials (e.g., MaterialX), and lighting/workflow components.
- The talk focuses mainly on the first step toward better Blender interoperability: openPBR integration, plus an outline of upcoming steps (MaterialX authoring and rendering).
- The talk positions interoperability as an “asset exchange” problem and highlights three related open standards/projects:
What openPBR is (conceptual model)
-
openPBR is a standard specification for a physically based material model
- Origin: initiated in 2023 by Adobe and Autodesk as a subproject of MaterialX.
- Adoption: supported by multiple renderers/apps (examples mentioned: Adobe, Karma, Arnold, V-Ray, Octane, and “soon also Cycles and EV”).
- Designed to enable consistent material appearance across renderers.
-
Layered material model
- The material is built from layered “slabs” that can be mixed/weighted.
- Base layer options:
- Metallic base (for metal-like materials)
- Dielectric base, split into:
- Translucent base (glass/crystals/liquids)
- Opaque base, split into:
- Subsurface base (skin, plants)
- Glossy diffuse opaque (wood/granite/plastic)
- Additional stacked layers:
- Thin film layer (e.g., oil/grease) to produce color shift and colorful reflections
- Coat/code layer (clear-coat-like behavior; can be smooth or rough)
- Fuzz layer (cloth-like sheen from fibers; “sheen” effect)
-
Capabilities mentioned
- The model can represent many physically plausible appearances including:
- pearls, skin, glass, lights/emission, and more.
- The model can represent many physically plausible appearances including:
Relationship to Blender’s Principled BSDF
-
They are similar but not identical
- Principled BSDF influenced openPBR; however, openPBR is constrained to its specification for cross-renderer interchange.
- The Blender team notes they do not want to fully replace Principled BSDF with openPBR because conversion is not perfectly lossless.
-
Minor parameter/behavior differences (examples)
- Color inputs:
- Principled uses base color to drive multiple color aspects (diffuse, transmission, subsurface).
- openPBR uses separate color inputs for finer control.
- Specular control:
- Principled has specular IOR level.
- openPBR has specular weight (described as similar, with a factor/renaming).
- Subsurface parameterization changes:
- float vs color inputs; described as effectively multiplicative relationships.
- Sheen naming:
- “Sheen” in Blender corresponds to openPBR’s “fuzz” concept (same appearance controlled via roughness).
- Anisotropy rotation:
- Principled has additional control for tangent/anisotropic rotation; openPBR spec (as described) does not, so mapping may require extra handling.
- Color inputs:
-
Visual conversion limits
- Converting from Principled to openPBR yields very similar results, but not a perfect “round trip” without loss—hence compatibility caution.
New openPBR features highlighted (artist/renderer controls)
-
Transmission depth
- Motivation: real glass color varies with thickness/path length due to absorption.
- openPBR introduces transmission depth:
- Defines the depth at which the transmission color is “reached.”
- Short path ⇒ brighter transmission; longer path ⇒ darker transmission.
- Also includes:
- volume absorption and (separately) volume scattering color and anisotropy.
-
Dispersion
- Motivation: wavelength-dependent refractive indices cause rainbow effects.
- Parameters and approach:
- Start with refractive index at a middle wavelength.
- Use an Abbe number to derive refractive index across wavelengths (referenced as a measurable real-world term).
- Result: higher Abbe number ⇒ less dispersion.
- Artist control:
- Dispersion scale:
- 0 ⇒ no dispersion
- 1 ⇒ “full effect” where Abbe number takes effect
- Allows artistic tuning beyond measured physical settings.
- Dispersion scale:
-
Thin world mode
- Motivation: real-world thin glass/panels are difficult/noisy to render accurately using two close surfaces and multiple internal reflections.
- openPBR “thin world”:
- Summarizes reflection/transmission events as if they happened through one surface.
- Produces similar look with less noise.
- Notes/limitations:
- Accurate for smooth glass (analytic summation).
- Approximate for rough glass (speed over accuracy).
- Related approximation:
- For thin materials with subsurface scattering (leaves/paper), approximate with:
- diffuse reflection + diffuse transmission
- anisotropy controls reflection vs transmission ratio.
- For thin materials with subsurface scattering (leaves/paper), approximate with:
-
Negative anisotropy for subsurface
- Blender had only positive anisotropy previously (as described here).
- openPBR extends anisotropy range to include negative values:
- More backwards scattering behavior (more diffuse-looking appearance).
-
Coat/code darkening
- Code layer darkening models physically correct darkening from multiple reflections and absorption.
- Artist override:
- At 0: color is essentially the specified code color.
- Allows modulating physically correct intensity.
-
Anisotropic roughness extended
- Anisotropy already existed for glossy materials in Blender.
- openPBR extends anisotropic roughness to:
- coat layer and glass.
-
Thin film weight
- openPBR adds a weight/blend controlling influence of thin film:
- Lets artists tone down a thin film look even when IU/thickness values create the right color.
- openPBR adds a weight/blend controlling influence of thin film:
Current integration status in Blender (implementation + roadmap)
-
New node: “openPBR shading node”
- Fully feature complete with respect to openPBR 1.11 spec (as stated).
- openPBR is ongoing; future spec versions will lead to future Blender updates.
-
Release timing
- Planned release: Blender 5.4
- Current focus: optimization and bug fixing.
-
Renderer support
- Cycles:
- Full support with described features, via SVM and OSL backends.
- Eevee/EV:
- Partial/approximate match due to rasterization limits.
- Some effects missing or approximated (noted: volumetric absorption not fully available yet; thin film supported closely; glass color behavior not fully identical).
- Cycles:
-
USD import/export integration (initial)
- Blender’s USD capabilities are used to export/import openPBR materials:
- Export as MaterialX/ USD nodes representation (as described).
- Enables parameterized materials to be exchanged with apps like Cinema 4D, Houdini, Blender.
- Example workflow:
- Convert a shading setup from Principled to openPBR.
- Export to USD.
- Render with Karma and Houdini to compare results.
- Status caveat:
- MaterialX support in exporter is incomplete for some full graphs; the team is improving import/export.
- Blender’s USD capabilities are used to export/import openPBR materials:
Accuracy across renderers (why matching isn’t automatically perfect)
-
They measured differences
- Reported use of image metrics (e.g., FLIP metric) to evaluate render-to-render appearance consistency.
-
Root cause
- Two independent implementation approaches by the team:
- Convert shading graph to OSL
- Or implement spec “one by one” following the written spec
- Discovered spec ambiguities/unclarities lead to implementation differences between renderers.
- Two independent implementation approaches by the team:
-
Ongoing effort
- Collaboration with openPBR community (including contacts from Adobe, side effects, etc.) to:
- clarify spec wording
- converge appearances more tightly
- accept that small differences may remain but should be minimal.
- Collaboration with openPBR community (including contacts from Adobe, side effects, etc.) to:
openPBR future versions mentioned (1.2 and 1.3 and beyond)
-
openPBR 1.2
- Specular haze
- Dual specular lobe concept (micro scratches): one sharper lobe + a broader rough secondary lobe.
- Added parameters:
- amount of specular haze
- specular haze spread (shape of secondary lobe)
- Retro refractivity
- Reflects light back toward the source (use cases: night streets, security vests, etc.).
- Said to already be in development and also previously done before Blender’s involvement.
- Specular haze
-
openPBR 1.3
- Thin material / thin world improvements based on feedback:
- Issue described: thin world mode can disable subsurface radius input, limiting leaf-like materials that need different reflection vs transmission colors.
- Solution direction:
- Inspired by a rendering paper:
- model leaves with diffuse reflection + diffuse transmission + a specular layer on top
- Discussed in openPBR meetings; community responded positively.
- Inspired by a rendering paper:
- Encouragement:
- Blender has a future package ready for testing; expects community feedback.
- Thin material / thin world improvements based on feedback:
“After openPBR”: next interoperability step = MaterialX support in Blender
-
openPBR is only the first of three steps
- openPBR for standardized material appearance
- MaterialX for portable shader graph authoring
- USD for packaging assets/scenes/workflows
-
Google Summer of Code project (MaterialX shader authoring)
- A student (Olly) implemented MaterialX shader graph import/export:
- import MaterialX graphs into Blender’s shader graph editor
- allow editing/rebuilding
- export MaterialX graphs back out
- Rendering support path used:
- leverage MaterialX OSL code generation
- connect to Cycles’ OSL backend to render MaterialX graphs directly
- Example mention:
- Nvidia-related complex MaterialX test asset (with Andrea Vri) intended “to break a renderer,” yet rendered in Cycles successfully.
- Ongoing plan:
- Continue work to bring the workflow into Blender more fully (not complete yet; “hoping to hear next year” about further progress).
- A student (Olly) implemented MaterialX shader graph import/export:
Methodology / process described
-
Why interoperability matters (problem framing)
- Identify collaboration friction caused by:
- differing material models/renderers/scene formats
- one-way conversions and manual tuning
- hard iteration when assets must round-trip back to the source tool
- Identify collaboration friction caused by:
-
How openPBR aims to fix it
- Use a standard layered physically based material model
- Align parameterization to spec so assets can be exchanged across renderers
-
How Blender integrates openPBR
- Implement an openPBR shading node (complete for openPBR 1.11 spec)
- Support rendering via:
- Cycles (SVM + OSL backends)
- Eevee with approximate matches
- Add USD-based import/export to exchange openPBR/MaterialX representations
-
How they improve cross-renderer matching
- Implement openPBR in Blender (and compare)
- Run image metric comparisons between renderers
- Identify spec ambiguities causing mismatches
- Coordinate with the openPBR community to:
- clarify spec language
- converge behavior across implementations
-
How they plan future feature evolution
- Track openPBR spec versions (1.2, 1.3, …)
- Implement new parameters/features (dispersion, thin film, retroreflectivity, etc.)
- Use real user feedback and testing packages to guide updates (e.g., thin world/leaf rendering issues)
Speakers/sources featured (as named)
- Sebastian Holds (speaker; senior developer and researcher at Blender; works on Cycles; background in path guiding/light transport)
- Way (speaker; rendering developer at Blender; works on Cycles materials/lightning; ex researcher)
Additional referenced external entities (not speakers)
- Adobe
- Autodesk
- MaterialX
- USD
- Karma, Arnold, V-Ray, Octane
- Cycles and Eevee/EV
- ASWF (mentioned in meeting context)
- Google Summer of Code (GSoC)
- Olly (student mentioned as implementing MaterialX authoring)
- Nvidia (referenced via an asset collaboration)
- Andrea Vri (mentioned regarding a test asset / expertise in materials)
- a rendering conference paper on leaf rendering (described; not named in the subtitles)
- FLIP metric (mentioned as an image comparison method)
Rate this summary
Your feedback will help improve summaries.
Improve this summary
Reprocess with a stronger model when the summary feels incomplete or inaccurate.
Translate summary in another language
Ask questions to this video
Chat for follow-up questions, clarifications, and source-backed answers.