Added
- Added an initial NPR (non-photorealistic rendering) data library to MaterialX, supporting the View Direction, Facing Ratio, and Gooch Shading nodes.
- Added new nodes to the standard data library, including Reflect, Refract, Safe Power, Create Matrix, and Round.
- Added support for the generation of pre-filtered environment maps in MaterialX GLSL and MSL.
- Added support for geometry drag & drop, frame capture, UI ranges and enumerated values in the MaterialX Web Viewer.
- Added floating popups for hovered pins in the MaterialX Graph Editor.
- Added UI ranges to the 'useSpecularWorkflow' and 'normal' inputs of the UsdPreviewSurface shading model.
- Added versioning rules for the MaterialX API and data libraries to the developer guide.
- Added initial C++ fuzz tests and coverage tests to GitHub Actions CI.
- Added GCC 13, Clang 15, and Python 3.12 builds to GitHub Actions CI.
Changed
- Enabled the new OSL closures by default in shader generation, with the MATERIALX_OSL_LEGACY_CLOSURES flag used to request legacy closures.
- Updated the MaterialX Web Viewer to three.js r152.
- Switched to a more efficient representation of HDR images in the MaterialX Web Viewer.
- Improved the logic for connecting pins in the MaterialX Graph Editor.
- Improved the handling of filename inputs in OSL shader generation.
- Reduced the size of the MaterialX data libraries, improving the use of graph definitions and merging duplicate implementations.
- Raised the minimum CMake version to CMake 3.16.
- Updated the C++ unit test library to Catch 2.13.10.
Fixed
- Fixed the attenuation of coated emission in the Standard Surface shading model.
- Fixed the implementation of the overlay node in shader generation.
- Fixed an edge case for type pointer comparisons in shader generation.
- Fixed an edge case for transform nodes in GLSL and MSL shader generation.
- Fixed the implementation of mx_hsvtorgb in MDL shader generation.
- Fixed orphaned links when deleting nodes in the MaterialX Graph Editor.
- Fixed scroll wheel interactions across windows of the MaterialX Graph Editor.
- Fixed the generation of unused imgui.ini files in the MaterialX Graph Editor.
- Fixed a dependency on module import order in MaterialX Python.
- Fixed an off-by-one index check in Element::setChildIndex.
- Fixed a missing null check in Graph::propertyEditor.
- Fixed cases where absolute paths were stored in MaterialXConfig.cmake.