81 lines
4.8 KiB
Markdown
81 lines
4.8 KiB
Markdown
# MaterialX Data Libraries
|
|
|
|
This folder contains the standard data libraries for MaterialX, providing declarations and graph definitions for the MaterialX nodes, and source code for all supported shader generators.
|
|
|
|
## Standard Pattern Library
|
|
- [stdlib](stdlib)
|
|
- [stdlib_defs.mtlx](stdlib/stdlib_defs.mtlx) : Nodedef declarations.
|
|
- [stdlib_ng.mtlx](stdlib/stdlib_ng.mtlx) : Nodegraph definitions.
|
|
- [genglsl](stdlib/genglsl): GLSL language support.
|
|
- [lib](stdlib/genglsl/lib) : Shader utility files.
|
|
- [stdlib_genglsl_impl.mtlx](stdlib/genglsl/stdlib_genglsl_impl.mtlx) : Mapping from declarations to implementations.
|
|
- [genosl](stdlib/genosl): OSL language support.
|
|
- [lib](stdlib/genosl/lib) : Shader utility files.
|
|
- [stdlib_genosl_impl.mtlx](stdlib/genosl/stdlib_genosl_impl.mtlx) : Mapping from declarations to implementations.
|
|
- [genmdl](stdlib/genmdl): MDL language support.
|
|
- [stdlib_genmdl_impl.mtlx](stdlib/genmdl/stdlib_genmdl_impl.mtlx) : Mapping from declarations to implementations.
|
|
- Additional MaterialX support libraries for MDL are located in the [source/MaterialXGenMdl/mdl/materialx](../source/MaterialXGenMdl/mdl/materialx) package folder
|
|
- [genmsl](stdlib/genmsl): MSL language support.
|
|
- [lib](stdlib/genmsl/lib) : Shader utility files.
|
|
- [stdlib_genmsl_impl.mtlx](stdlib/genmsl/stdlib_genmsl_impl.mtlx) : Mapping from declarations to implementations.
|
|
|
|
## Physically Based Shading Library
|
|
- [pbrlib](pbrlib)
|
|
- [pbrlib_defs.mtlx](pbrlib/pbrlib_defs.mtlx) : Nodedef declarations.
|
|
- [pbrlib_ng.mtlx](pbrlib/pbrlib_ng.mtlx) : Nodegraph definitions.
|
|
- [genglsl](pbrlib/genglsl) : GLSL language support
|
|
- [lib](pbrlib/genglsl/lib) : Shader utility files.
|
|
- [pbrlib_genglsl_impl.mtlx](pbrlib/genglsl/pbrlib_genglsl_impl.mtlx) : Mapping from declarations to implementations.
|
|
- [genosl](pbrlib/genosl) : OSL language support
|
|
- [lib](pbrlib/genosl/lib) : Shader utility files.
|
|
- [pbrlib_genosl_impl.mtlx](pbrlib/genosl/pbrlib_genosl_impl.mtlx) : Mapping from declarations to implementations.
|
|
- [genmdl](pbrlib/genmdl) : MDL language support
|
|
- [pbrlib_genmdl_impl.mtlx](pbrlib/genmdl/pbrlib_genmdl_impl.mtlx) : Mapping from declarations to implementations.
|
|
- [genmsl](pbrlib/genmsl) : MSL language support
|
|
- [pbrlib_genmsl_impl.mtlx](pbrlib/genmsl/pbrlib_genmsl_impl.mtlx) : Mapping from declarations to implementations.
|
|
|
|
## BxDF Graph Library
|
|
- [bxdf](bxdf)
|
|
- [standard_surface.mtlx](bxdf/standard_surface.mtlx) : Graph definition of the [Autodesk Standard Surface](https://autodesk.github.io/standard-surface/) shading model.
|
|
- [gltf_pbr.mtlx](bxdf/gltf_pbr.mtlx) : Graph definition of the [glTF PBR](https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#appendix-b-brdf-implementation) shading model.
|
|
- [usd_preview_surface.mtlx](bxdf/usd_preview_surface.mtlx) : Graph definition of the [UsdPreviewSurface](https://openusd.org/release/spec_usdpreviewsurface.html) shading model.
|
|
- [lama](bxdf/lama) : Graph definitions of the [MaterialX Lama](https://rmanwiki.pixar.com/display/REN24/MaterialX+Lama) node set.
|
|
|
|
## Color Management Library
|
|
- MaterialX shader generation natively supports a small set of common spaces for input colors, with all color transforms implemented as language-independent MaterialX graphs.The canonical definitions of these color transforms may be found in the OpenColorIO configuration for [ACES 1.2](https://github.com/colour-science/OpenColorIO-Configs/tree/feature/aces-1.2-config/aces_1.2).
|
|
- lin_rec709
|
|
- g18_rec709
|
|
- g22_rec709
|
|
- rec709_display
|
|
- acescg (lin_ap1)
|
|
- g22_ap1
|
|
- srgb_texture
|
|
- lin_adobergb
|
|
- adobergb
|
|
- srgb_displayp3
|
|
- lin_displayp3
|
|
- [cmlib](cmlib)
|
|
- [cmlib_defs.mtlx](cmlib/cmlib_defs.mtlx) : Nodedef declarations.
|
|
- [cmlib_ng.mtlx](cmlib/cmlib_ng.mtlx) : Nodegraph definitions.
|
|
|
|
## Target Definitions
|
|
- Each target implementation requires a target definition for declaration / implementation correspondence to work.
|
|
- The [targets](targets) folder contains definition files for the following core targets:
|
|
- GLSL : `genglsl`
|
|
- OSL : `genosl`
|
|
- MDL : `genmdl`
|
|
- MSL : `genmsl`
|
|
- Any additional target files should be added under this folder and loaded in as required.
|
|
|
|
### Target Support
|
|
- GLSL target support is for version 4.0 or higher.
|
|
- OSL target support is for version 1.9.10 or higher.
|
|
- MDL target support is for version 1.7.
|
|
- Basic GLSL and MSL `lightshader` node definitions and implementations are provided for the following light types:
|
|
- point, directional, spot
|
|
- Shader generation does not currently support:
|
|
- `ambientocclusion` node.
|
|
- `arrayappend` node.
|
|
- `curveadjust` node.
|
|
- `displacementshader` and `volumeshader` nodes for hardware shading targets (GLSL, MSL).
|