Skip to content

Releases: AcademySoftwareFoundation/MaterialX

Version 1.38.5

09 Jul 17:21

Choose a tag to compare

Added

  • Added a refraction approximation for transmissive surfaces in GLSL, selected by the hwTransmissionRenderMethod generator option.
  • Added support for generalized Schlick transmission in GLSL and OSL.
  • Added support for code generation from material nodes.
  • Added a specialization of GlslShaderGenerator for Vulkan GLSL generation.
  • Added the Chess Set example from the Karma: A Beautiful Game tutorial. Contributed to the MaterialX project by SideFX, original artwork by Moeen and Mujtaba Sayed.
  • Added static and dynamic analysis tests to GitHub Actions builds.
  • Added support for GCC 12, Clang 13, and Clang 14.

Changed

Fixed

  • Fixed math for normalizing normal and tangent vectors in GLSL.
  • Fixed math for transforming a vector4 by a matrix in OSL.
  • Fixed compatibility of OSL Worley noise with OSL 1.9.10.
  • Fixed layering of thin-film effects in the Standard Surface shading model.
  • Fixed input default values in the glTF PBR shading model.

Version 1.38.4

06 Apr 15:25

Choose a tag to compare

Added

  • Added JavaScript bindings for MaterialXCore, MaterialXFormat, and MaterialXGenGlsl.
  • Added a sample Web Viewer, built and deployed through GitHub Actions.
  • Added a MaterialX graph for the glTF PBR shading model.
  • Added new 'worleynoise2d' and 'worleynoise3d' nodes, with implementations in GLSL, OSL, and MDL.
  • Added new 'surface_unlit' node, with implementations in GLSL, OSL, and MDL.
  • Added support for the glTF geometry format in MaterialXRender and MaterialXView.

Changed

  • Moved the MaterialX project to the Academy Software Foundation GitHub.
  • Removed hardcoded references to "libraries" in calls to GenContext::registerSourceCodeSearchPath. (See Developer Notes below for additional details.)
  • Improved the accuracy of mx_ggx_dir_albedo_analytic and mx_fresnel_conductor in GLSL.
  • Updated the PyBind11 library to version 2.9.0.

Fixed

  • Aligned GLSL and MDL implementations of 'fractal3d' with OSL.
  • Fixed MDL implementations of 'sheen_bsdf' and 'thin_film_bsdf'.
  • Fixed an error in code generation from multi-output node graphs.

Developer Notes

  • This release removes hardcoded references to "libraries" in calls to GenContext::registerSourceCodeSearchPath within the MaterialX codebase. Applications with their own custom code generators should make the same change, removing hardcoded references to "libraries" in calls to GenContext::registerSourceCodeSearchPath. See pull request 877 for coding details.

Version 1.38.3

14 Dec 17:11

Choose a tag to compare

Added

  • Added an inheritance structure for versions of Autodesk Standard Surface.
  • Added versioning and customization support to MaterialX namespaces in C++.
  • Added preprocessor definitions for the API version to MaterialXCore.
  • Added color transform methods to the Image class.
  • Added an initial ClangFormat file for the MaterialX codebase.
  • Added initial support for FreeBSD.
  • Added support for Xcode 13.

Changed

  • Refactored BSDF handling in shader generation, allowing for more flexible and efficient vertical layering.
  • Optimized GLSL implementations for GGX specular, moving common computations to tangent space.
  • Refactored the TextureBaker API for clarity and flexibility.
  • Merged the ViewHandler and viewer camera into a new Camera class in MaterialXRender.
  • Updated CMake configuration generation logic, adding handling for shared library builds.
  • Updated the PyBind11 library to version 2.7.1

Fixed

  • Fixed a performance regression in MaterialXView for multi-UDIM assets.
  • Fixed a bug that caused shader inputs to be skipped in createUIPropertyGroups.
  • Fixed the value of transmission roughness in UsdPreviewSurface.
  • Fixed Vulkan compatibility for generated GLSL code.

Version 1.38.2

07 Oct 21:46

Choose a tag to compare

Added

  • Added an initial shader translation graph from Autodesk Standard Surface to UsdPreviewSurface.
  • Added example script translateshader.py with validation in GitHub Actions.
  • Added support for filename templates in texture baking.
  • Added graph definitions for the MaterialX Lama node set.
  • Added UI properties to the interface of UsdPreviewSurface.
  • Added an initial ESSL shader generator.
  • Added support for GCC 11.

Changed

  • Improved the accuracy of directional albedo computations for GGX specular and Imageworks sheen.
  • Updated default color space names to follow ACES 1.2 conventions (e.g. g22_rec709), while maintaining compatibility with legacy names (e.g. gamma22).

Fixed

  • Fixed the default value of the roughness input of UsdPreviewSurface.
  • Fixed the assignment of channel names in EXR files written through OpenImageIO.

Version 1.38.1

18 Jun 18:32

Choose a tag to compare

Added

  • Added support for shared library builds on Windows.
  • Added support for 16-bit unsigned integer images in MaterialXRender.
  • Added support for compound nodegraphs with user interfaces in shader and UI generation.
  • Added headers for newly proposed MaterialX closures in OSL.
  • Added a shader translation command to the viewer, assigned to the 'T' hotkey.

Changed

  • Improved the memory efficiency of texture baking operations.
  • Improved the compatibility of generated MDL code with Omniverse.
  • Refactored image resolution logic into new methods ImageHandler::getReferencedImages and MaterialX::getMaxDimensions.
  • Moved the viewer hotkey for GLSL code generation from 'S' to 'G' for consistency with other languages.

Fixed

  • Fixed the Color3.asTuple and Color4.asTuple methods in Python

Version 1.38.0

02 Mar 17:44

Choose a tag to compare

Updated the MaterialX library to the v1.38 specification. See the v1.38 changelist for full details.

Added

  • Added support for the generalized 'layer' node in Physically Based Shading.
  • Added user controls for texture baking and wedge rendering in the MaterialX Viewer.
  • Added support for Nvidia's Material Definition Language (MDL) in MaterialX code generation.
  • Added support for inline source code in Implementation elements.
  • Added support for TargetDef elements.
  • Added viewer rendering to cloud-based tests in GitHub Actions.
  • Added support for Xcode 12.

Changed

  • Updated the set of standard nodes to match the v1.38 specification, including significant improvements to the Physically Based Shading nodes.
  • Replaced specialized Material elements with material nodes, allowing more flexible material definitions and more consistent traversal.
  • Unified the Input and Parameter element classes, simplifying the MaterialX API and client code.
  • Updated the MaterialX viewer to use native classes for GLSL rendering and camera controls, opening the door to additional render frameworks in the future.
  • Updated the prefiltered path for specular environment rendering in GLSL, providing a closer match with the Filtered Importance Sampling path.
  • Updated the definition of Autodesk Standard Surface to version 1.0.1.
  • Updated the definition of UsdPreviewSurface to version 2.3.
  • Renamed the default branch from master to main.

Removed

  • Removed support for the 'complex_ior', 'backfacing', 'viewdirection' and 'fresnel' nodes in Physically Based Shading.
  • Removed support for the Color2 type.

Version 1.37.4

18 Dec 21:14

Choose a tag to compare

Added

  • Added software rendering tests for MaterialXRenderGlsl to GitHub Actions.

Changed

  • Improved the robustness of context management in MaterialXRenderGlsl.

Fixed

  • Added a missing VAO binding to GlslRenderer::drawScreenSpaceQuad.

Version 1.37.3

24 Nov 18:08

Choose a tag to compare

Added

  • Added Render Transparency and Render Double-Sided options to the Advanced Settings panel of the viewer.
  • Added viewer support for partially-transparent mesh partitions.
  • Added a subsurface scattering approximation to MaterialX GLSL.
  • Added a CMake option for building shared libraries on Linux and MacOS.
  • Added support for the latest OpenImageIO interface.

Changed

  • Improved the robustness of texture baking and shader translation.
  • Unified the handling of missing images in generated GLSL.
  • Moved CI builds from Travis and Appveyor to GitHub Actions.

Fixed

  • Fixed a bug in code generation for custom BSDF/EDF graphs.
  • Fixed rendering of single-channel textures in MaterialXRenderGlsl.

Version 1.37.2

06 Sep 19:00

Choose a tag to compare

Added

  • Added support for texture baking from Python, including new example script baketextures.py.
  • Added support for texture baking of materials with multiple UDIMs.
  • Added support for floating-point render targets in ShaderRenderer and its subclasses, allowing for HDR texture baking.
  • Added support for displacement shaders in generated OSL.
  • Added the ShaderTranslator class, laying the groundwork for support of shader translation graphs.
  • Added Python bindings for the Image class.

Fixed

  • Fixed the alignment of environment backgrounds in the viewer.

Removed

  • Removed the CopyOptions class, making it the default behavior of Document::importLibrary to skip conflicting elements.

Version 1.37.1

04 Jun 23:58

Choose a tag to compare

Added

  • Added command-line options for mesh, light, and camera transforms to the viewer.
  • Added command-line options for screen dimensions and background color to the viewer.
  • Added a Light Rotation slider to the Advanced Settings panel of the viewer.
  • Added utility methods Backdrop::setContainsElements and Backdrop::getContainsElements.
  • Added backwards compatibility for OpenImageIO 1.x.
  • Added support for GCC 10.

Changed

  • Improved energy conservation and preservation computations in generated GLSL.
  • Upgraded Smith masking-shadowing to height-correlated form in generated GLSL.
  • Improved the robustness of tangent frame computations in MaterialXRender.
  • Renamed Backdrop::setContains and getContains to Backdrop::setContainsString and getContainsString for consistency.

Fixed

  • Fixed the GLSL implementation of Burley diffuse for punctual lights.
  • Fixed the upgrade path for compare nodes in v1.36 documents.