Skip to content

Commit

Permalink
Initial specification cleanup for 1.0 (#191)
Browse files Browse the repository at this point in the history
  • Loading branch information
portsmouth authored May 14, 2024
1 parent aa95c1b commit 7d7c2e4
Show file tree
Hide file tree
Showing 10 changed files with 134 additions and 21 deletions.
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
# OpenPBR Surface

<p align="center">
<img src="images/OpenPBR title.jpg" title="OpenPBR demonstration scene" />
<img src="images/OpenPBR_title.jpg" title="OpenPBR demonstration scene" />
<sub><i>Shader Playground, rendered in Arnold for Maya, using OpenPBR Surface. Artwork by Nikie Monteleone.</i></sub>
</p>
<br>

A white paper specifying an über-shader that aims to provide a material representation capable of accurately modeling the vast majority of materials used in practical visual effects and feature animation productions.

OpenPBR is an open standard hosted by the [Academy Software Foundation](https://www.aswf.io/) (ASWF), and is organized as a subproject of [MaterialX](https://materialx.org/).
OpenPBR Surface is a specification of a surface shading model intended as a standard for computer graphics. It aims to provide a material representation capable of accurately modeling the vast majority of CG materials used in practical visual effects and feature animation productions.

OpenPBR Surface is an open standard hosted by the [Academy Software Foundation](https://www.aswf.io/) (ASWF), and is organized as a subproject of [MaterialX](https://materialx.org/).

### Resources
### Specification

* **[Specification](https://academysoftwarefoundation.github.io/OpenPBR/)**
* **[White paper](https://academysoftwarefoundation.github.io/OpenPBR/)**
* **[Parameter reference](https://academysoftwarefoundation.github.io/OpenPBR/#parameterreference)**
* **[Reference implementation](reference/open_pbr_surface.mtlx)** – written in [MaterialX](https://materialx.org/)
* **[BibTeX citation](openpbr.bib)**

<br/>

Expand Down
File renamed without changes
Binary file added images/ShaderPlayground_OpenPBR_meetMAT.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/ShaderPlayground_OpenPBR_scissorsMug.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/ShaderPlayground_OpenPBR_topDown.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
70 changes: 70 additions & 0 deletions images/aswf-logo-black.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/github-mark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
38 changes: 28 additions & 10 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,26 @@
<link rel="stylesheet" href="style/style.css">
<meta name="viewport" content="width=device-width,initial-scale=1">

**OpenPBR Surface specification**
**OpenPBR Surface**

<center>Zap Andersson, Paul Edmondson, Julien Guertault, Adrien Herubel, Alan King, </center>
<center>Peter Kutz, Andréa Machizaud, Jamie Portsmouth, Frédéric Servant.</center>
<center>*Specification v0.4, 2024-05-14. &nbsp; &nbsp; <a href="https://github.com/AcademySoftwareFoundation/OpenPBR" title="Redirect to GitHub page"><img src="images/aswf-logo-black.svg" alt="homepage" height="18" style="vertical-align: middle; position: relative; bottom: 3px"/></a> *</center>

<center>*Version 0.4, 2024-04-30. A joint work of Adobe and Autodesk*</center>
<br>
This document is a specification of a surface shading model intended as a standard for computer graphics: the OpenPBR Surface model. Designed as an über-shader, it aims to be capable of accurately modeling the vast majority of CG materials used in practical visual effects and feature animation productions. The model has been developed as a synthesis of the Autodesk Standard Surface and the Adobe Standard Material models.

This document is a specification of a surface shading model: the OpenPBR Surface model. Designed as an über-surface, it aims to be capable of accurately modeling the vast majority of CG materials used in practical visual effects and feature animation productions. The model has been developed as a synthesis of the Autodesk Standard Surface and the Adobe Standard Material models.
![](images/OpenPBR_title.jpg align=center width="100%" attrib="Artwork by Nikie Monteleone") ![](images/ShaderPlayground_OpenPBR_meetMAT.jpg align=center width="100%" attrib="Artwork by Nikie Monteleone")
![](images/ShaderPlayground_OpenPBR_topDown.jpg align=center width="100%" attrib="Artwork by Nikie Monteleone") ![](images/ShaderPlayground_OpenPBR_scissorsMug.jpg align=center width="100%" attrib="Artwork by Nikie Monteleone")
<div class="close-shifted-caption">
![<sub>Shader Playground, rendered in Arnold for Maya, using OpenPBR Surface.</sub>](dummy)
</div>


Historical background and objectives
============================================

Interchange of computer graphics scene assets remains a significant problem, especially with regard to surface appearance. Different renderers and 3D engines use different shading systems, shading languages, and fixed-function pipelines which are not easily interoperable. Furthermore, accurately modeling surface appearance remains a complex and pertinent problem and is a topic of active scientific research. Despite this, there is a strong need _today_ for industries engaged in physically based rendering (both offline and real-time) to find a standardized material model that covers the most common use cases in typical workflows.

Over the years, certain de facto standard appearance definition frameworks have emerged as different vendors have come to the consensus of separating the definition of materials from the light transport simulation in the scene. Such general frameworks include MaterialX [#Smythe2016], Open Shading Language (OSL) [#Gritz2010], and Material Definition Language (MDL) [#Kettner2015], which allow specifying the material as a combination of primitive surface reflectance models. These frameworks alone however are not sufficient for look development by end users, who should not be expected to build complex surface shaders from the ground up for routine tasks. Instead it is much more convenient in practice for them to work with a standard über-shader parametrization, i.e. a single monolithic material definition covering a wide range of cases, with a well-defined set of parameters that can be tweaked to represent most real-world (as well as imaginary) materials.
Over the years, certain de facto standard appearance definition frameworks have emerged as different vendors have come to the consensus of separating the definition of materials from the light transport simulation in the scene. Such general frameworks include MaterialX [#Smythe2016], Open Shading Language (OSL) [#Gritz2010], and Material Definition Language (MDL) [#Kettner2015], which allow specifying the material as a combination of primitive surface reflectance models. These frameworks alone however are not sufficient for look development by end users, who should not be expected to build complex surface shaders from the ground up for routine tasks. Instead it is much more convenient in practice for them to work with a standard "über-shader" parametrization, i.e. a single monolithic material definition covering a wide range of cases, with a well-defined set of parameters that can be tweaked to represent most real-world (as well as imaginary) materials.

There have been various previous proposals for such an über-shader, such as Disney's Principled Shader [#Burley2012], Allegorithmic's PBR shading model [#McDermott2018], and most recently the Autodesk Standard Surface shader [#Georgiev2019] and the Adobe Standard Material [#Kutz2021]. Autodesk Standard Surface has strong spiritual predecessors in Anders Langlands' alSurface [#Langlands2014] and Autodesk 3ds Max's Physical Material [#Andersson2016]. 3ds Max's Physical Material in turn was strongly inspired by Allegorithmic's model, Disney's Principled Shader, and general industry trends in several real-time 3D engines.

Expand Down Expand Up @@ -1407,7 +1411,20 @@
Acknowledgements
================================================================================

The authors would like to thank
The core authors are
Zap Andersson,
Paul Edmondson,
Julien Guertault,
Adrien Herubel,
Alan King,
Peter Kutz,
Andréa Machizaud,
Jamie Portsmouth,
Frédéric Servant
and
Jonathan Stone.

The authors would also like to thank
François Beaune,
Henrik Edstrom,
Iliyan Georgiev,
Expand All @@ -1420,11 +1437,10 @@
Guido Quaroni,
Nathan Reed,
Anthony Salvi,
Lukas Stockner,
Jonathan Stone
Lukas Stockner
and
Brecht van Lommel
for their contribution.
for their useful contributions.


References
Expand Down Expand Up @@ -1456,6 +1472,8 @@

[#Gritz2010]: Larry Gritz, Clifford Stein, Chris Kulla, and Alejandro Conty. *Open Shading Language*, ACM SIGGRAPH Talks (2010).

[#Gulbrandsen2014]: Ole Gulbrandsen. *Artist Friendly Metallic Fresnel*, Journal of Computer Graphics Techniques (2014).

[#Heitz2014]: Eric Heitz. *Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs*, Journal of Computer Graphics Techniques (2014).

[#Heitz2015]: Eric Heitz, Jonathan Dupuy, Cyril Crassin, Carsten Dachsbacher. *The SGGX microflake distribution*, ACM Transactions on Graphics (2015).
Expand Down
8 changes: 8 additions & 0 deletions openpbr.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@techreport{OpenPBR,
author = {Zap Andersson and Paul Edmondson and Julien Guertault and Adrien Herubel and Alan King and Peter Kutz and Andréa Machizaud and Jamie Portsmouth and Frédéric Servant and Jonathan Stone},
title = {OpenPBR Surface},
institution = {Academy Software Foundation (ASWF)},
year = {2024},
month = {May},
url = {https://academysoftwarefoundation.github.io/OpenPBR/}
}
27 changes: 21 additions & 6 deletions style/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ contents, .md .tocHeader,

.md .tocHeader
{
color: rgba(0, 0, 0, 0.95);
color: rgba(0, 0, 0, 0.95);
margin: 0;
padding: 0;
border: none;
Expand Down Expand Up @@ -111,15 +111,15 @@ contents, .md .tocHeader,

.md .longTOC a.level2, .md .mediumTOC a.level2, .md .shortTOC a.level2
{
color: rgba(0, 0, 0, 0.9);
color: rgba(0, 0, 0, 0.9);
font-weight: 400;
line-height: 150%;
}


.md .longTOC a.level3, .md .mediumTOC a.level3, .md .shortTOC a.level3
{
color: rgba(0, 0, 0, 0.9);
color: rgba(0, 0, 0, 0.9);
font-weight: 300;
line-height: 150%;
}
Expand All @@ -132,7 +132,7 @@ contents, .md .tocHeader,
.md div.title
{
color: rgba(0,0,0,.7);
margin: 0.4em 0 -20px 0;
margin: 0.4em 0 -50px 0;
padding: 0;
font-size: 230%;
font-weight: 700;
Expand Down Expand Up @@ -204,7 +204,7 @@ contents, .md .tocHeader,

/* Odd table rows: 2, 4, ... */
.md table.table tr:nth-child(even)
{
{
background-color: rgb(255, 255, 255);
}

Expand Down Expand Up @@ -321,7 +321,7 @@ hr.pagebreak
.shifted-caption
{
margin-top: 0px;
text-align: center;
text-align: center;
}
.shifted-caption .image
{
Expand All @@ -333,6 +333,21 @@ hr.pagebreak
display: none;
}

.close-shifted-caption
{
margin-top: -15px;
text-align: center;
}
.close-shifted-caption .image
{
float: initial !important;
margin: 0 !important;
}
.close-shifted-caption img
{
display: none;
}

.markdeepFooter
{
opacity: 0.4;
Expand Down

0 comments on commit 7d7c2e4

Please sign in to comment.