diff --git a/README.md b/README.md index 8636580a..a915e942 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,22 @@ # OpenPBR Surface

- + Shader Playground, rendered in Arnold for Maya, using OpenPBR Surface. Artwork by Nikie Monteleone.


-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)**
diff --git a/images/OpenPBR title.jpg b/images/OpenPBR_title.jpg similarity index 100% rename from images/OpenPBR title.jpg rename to images/OpenPBR_title.jpg diff --git a/images/ShaderPlayground_OpenPBR_meetMAT.jpg b/images/ShaderPlayground_OpenPBR_meetMAT.jpg new file mode 100644 index 00000000..0fc85b30 Binary files /dev/null and b/images/ShaderPlayground_OpenPBR_meetMAT.jpg differ diff --git a/images/ShaderPlayground_OpenPBR_scissorsMug.jpg b/images/ShaderPlayground_OpenPBR_scissorsMug.jpg new file mode 100644 index 00000000..260b60c4 Binary files /dev/null and b/images/ShaderPlayground_OpenPBR_scissorsMug.jpg differ diff --git a/images/ShaderPlayground_OpenPBR_topDown.jpg b/images/ShaderPlayground_OpenPBR_topDown.jpg new file mode 100644 index 00000000..8457ad14 Binary files /dev/null and b/images/ShaderPlayground_OpenPBR_topDown.jpg differ diff --git a/images/aswf-logo-black.svg b/images/aswf-logo-black.svg new file mode 100644 index 00000000..5611a85f --- /dev/null +++ b/images/aswf-logo-black.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/github-mark.png b/images/github-mark.png new file mode 100644 index 00000000..6cb3b705 Binary files /dev/null and b/images/github-mark.png differ diff --git a/index.html b/index.html index 451d61bd..e40fbcd4 100644 --- a/index.html +++ b/index.html @@ -2,14 +2,18 @@ -**OpenPBR Surface specification** +**OpenPBR Surface** -
Zap Andersson, Paul Edmondson, Julien Guertault, Adrien Herubel, Alan King,
-
Peter Kutz, Andréa Machizaud, Jamie Portsmouth, Frédéric Servant.
+
*Specification v0.4, 2024-05-14.     homepage *
-
*Version 0.4, 2024-04-30. A joint work of Adobe and Autodesk*
+
+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") +
+ ![Shader Playground, rendered in Arnold for Maya, using OpenPBR Surface.](dummy) +
Historical background and objectives @@ -17,7 +21,7 @@ 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. @@ -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, @@ -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 @@ -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). diff --git a/openpbr.bib b/openpbr.bib new file mode 100644 index 00000000..906bf28a --- /dev/null +++ b/openpbr.bib @@ -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/} +} \ No newline at end of file diff --git a/style/style.css b/style/style.css index 82b52588..2662d9f8 100644 --- a/style/style.css +++ b/style/style.css @@ -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; @@ -111,7 +111,7 @@ 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%; } @@ -119,7 +119,7 @@ contents, .md .tocHeader, .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%; } @@ -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; @@ -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); } @@ -321,7 +321,7 @@ hr.pagebreak .shifted-caption { margin-top: 0px; - text-align: center; + text-align: center; } .shifted-caption .image { @@ -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;