Skip to content

Commit 18a1b7a

Browse files
Update changelog for latest work (#2862)
1 parent 8eee5aa commit 18a1b7a

1 file changed

Lines changed: 18 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,30 @@
66
- Added support for the [Slang shading language](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2548) in MaterialX shader generation and rendering, with [language bindings](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2679) for Python and JavaScript.
77
- Added initial support for [Volume Distribution Functions](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2809) in hardware shading, with a dedicated VDF struct in GLSL, MSL, and Slang, and a Beer's law approximation for volumetric absorption.
88
- Added [hardware shader generation support](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2829) for compound material nodes, enabling hardware rendering of nodegraph-based materials such as LamaSurface.
9+
- Added an initial [graph refactoring framework](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2832) for shader generation, supporting composable graph transformations including node elision, premultiplied BSDF addition, and layer-over-mix distribution.
910
- Added [OSL implementations](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2734) for hex-tiled images, completing cross-language coverage for hextiling nodes.
1011
- Added an [OSL command string code generator](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2603), enabling the mixing of external OSL shaders with MaterialX-generated nodes.
1112
- Added support for [GLSL probability density functions](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2779), providing a foundation for path-tracer use of generated GLSL, ESSL, and MSL shaders.
12-
- Added [extract node support](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2812) for matrix33 and matrix44 types, enabling row vector extraction by index from matrices.
13-
- Added [flake node implementations](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2676) in GLSL and MDL, providing shader support for the flake2d and flake3d nodes.
13+
- Added a [retroreflective input](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2783) to specular BSDF nodes, enabling retroreflective scattering behavior on dielectric, conductor, and generalized Schlick BSDFs.
14+
- Added [extract node support](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2812) for `matrix33` and `matrix44` types, enabling row vector extraction by index from matrices.
15+
- Added [flake node implementations](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2676) in GLSL, OSL, and MDL, providing shader support for the `flake2d` and `flake3d` nodes, using [standard cellnoise functions](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2842) for optimized noise generation.
1416
- Added an [enableDirectLight option](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2773) to the MaterialX Viewer, enabling pure image-based lighting without direct light contributions.
1517
- Added support for [upstream and downstream node traversal](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2225) in the property editor of the MaterialX Graph Editor.
1618
- Added [file image previews](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2710) for image nodes in the MaterialX Graph Editor, with a configurable preview size.
1719
- Added shader generation options for [Airy Fresnel iterations](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2569) and [constant node eliding](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2521), supporting quality and performance trade-offs on iridescent materials and interactive editing workflows.
1820
- Added [Python operator bindings](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2594) for Vector and Matrix types.
21+
- Added a [Python wrapper](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2855) for Metal image handler creation on MslRenderer, extending language binding coverage for MSL rendering.
1922
- Added MDL implementations for the [frame node](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2823) via scene data and [geomcolor nodes](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2835) with index 0.
2023
- Added support for [Doxygen-generated docstrings](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2657) in MaterialX Python bindings, enabling IDE support and interactive help.
2124
- Added a [nodedef comparison script](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2723) for validating alignment between data library definitions and specification documents.
22-
- Added [Perfetto tracing](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2742) as an optional performance instrumentation framework.
25+
- Added [Perfetto tracing](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2742) as an optional performance instrumentation framework, with [extended instrumentation](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2820) for shader code generation and rendering.
2326
- Added a [nightly build workflow](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2621) to GitHub Actions, with [test suite rendering on MacOS](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2675) and [MDL compiler validation](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2254).
2427
- Added [developer guidelines](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2632) to the MaterialX contributing guide.
2528

2629
### Changed
2730
- Improved specifications for the [Standard Nodes](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2520), [PBR Nodes](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2732), and [NPR Nodes](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2767), converting prose descriptions to structured tables.
2831
- Consolidated hardware shader generation in a new [MaterialXGenHw module](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2565), [unifying node implementations](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2555) across GLSL and MSL, adopting [syntax-portable type names](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2625) for native Metal support, and [streamlining](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2652) the ShaderGenerator API across hardware shading language generators.
32+
- Consolidated shading graphs for [OpenPBR Surface, Standard Surface](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2832), and [glTF PBR](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2850), replacing hardcoded graph overrides with composable graph refactoring.
2933
- Refactored the [layout engine](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2775) in the MaterialX Graph Editor, organizing its logic into a new Layout class aligned with the Sugiyama layered graph drawing algorithm.
3034
- Aligned [UsdPreviewSurface opacity](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2796) with the upcoming Pixar specification, updating the handling of `opacity`, `opacityMode`, and `opacityThreshold` inputs.
3135
- Improved the [Metal syntax](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2622) in generated MSL shaders, replacing preprocessor workarounds with native Metal code.
@@ -34,26 +38,34 @@
3438
- Improved [thread safety](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2736) in the Document cache, adopting `std::shared_mutex` for reader and writer guarantees.
3539
- Improved [hextiling implementations](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2615) in GLSL and MDL, using array-based data structures for better maintainability.
3640
- Improved the translation graph from Standard Surface to glTF PBR, adding support for [specular and specular color](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2623), [IOR](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2589), [emissive strength](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2593), [dispersion](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2636), [normal and tangent](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2587), and [alpha](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2591).
37-
- Updated the [OpenPBR Surface definition](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2759) to connect geometry_thin_walled to the surface node.
41+
- Updated the [OpenPBR Surface definition](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2759) to connect `geometry_thin_walled` to the surface node.
3842
- Improved the [MaterialX Web Viewer](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2798) with an FPS timer, consistent styling, improved menu labels, and responsive layout for mobile.
43+
- Modernized [JavaScript build and test infrastructure](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2854) in the MaterialX Web Viewer, migrating to ES modules, adopting Playwright for browser testing, and leveraging npm workspaces.
44+
- Upgraded the default [three.js version](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2858) to r183 in the MaterialX Web Viewer.
3945
- Improved the MaterialX Graph Editor with [UI/UX refinements](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2791) including case-insensitive node search and auto-selection of new nodes, and [consolidated edge creation](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2793) with unified logic for document-scope outputs.
4046
- Extended [shader generation tests](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2761) to cover all example materials.
47+
- Refactored [ShaderRenderTester::validate](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2825) into modular methods, with new helper classes for test logging, performance metrics, and Perfetto tracing.
4148
- Migrated [Python packaging](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2782) to `pyproject.toml`, replacing the legacy `setup.py` script with the modern PEP 517 and PEP 621 standard.
4249
- Raised the default PyBind11 version to [PyBind11 3.0.1](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2715), with [Python 3.14](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2717) added to GitHub CI.
4350
- Raised the default Emscripten SDK to [emsdk 4.0.8](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2599) in the MaterialX Web Viewer.
51+
- Improved [CMake install ordering](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2853) for pip, running Python package installation at the end of the build to facilitate downstream customization.
52+
- Improved [build configuration](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2861) in GitHub CI, with [streamlined test logging](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2856), [log file artifacts](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2840), and [reduced dependency installation](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2841).
4453

4554
### Fixed
4655
- Fixed [node key collisions](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2768) in ShaderGraph, addressing crashes and shader generation errors when multiple nodes shared the same base name.
4756
- Fixed [prefiltered environment lighting](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2808) in GLSL to use directional albedo rather than Fresnel weighting alone.
4857
- Fixed [precision in generated ESSL](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2792), using high precision to avoid underflow and accumulated math errors in Standard Surface, OpenPBR, and glTF PBR shaders.
4958
- Fixed the implementations of [splittb, ramptb, and ramp4](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2721) in GLSL, OSL, and MDL, correcting the inverted ordering of top and bottom values.
59+
- Fixed the [blackbody node](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2831) to support temperatures down to 800K, extending physically accurate results to the Draper point.
5060
- Fixed [sheen roughness](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2643) and the handling of [thin_walled and transmission_depth](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2644) in the translation graph from Standard Surface to glTF PBR.
5161
- Fixed [direct lighting](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2781) in MSL rendering, addressing a uniform name mismatch that caused missing lighting on MacOS.
5262
- Fixed an [inconsistent background color](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2800) in the MaterialX Viewer on Metal, correcting a color space conversion mismatch.
53-
- Fixed a crash in shader generation for [constant nodes with zero inputs](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2746), with a [stricter eliding check](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2754) to prevent false matches on custom nodes.
63+
- Fixed the [sRGB encoding exponent](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2846) in Metal rendering, correcting color output to match other rendering targets.
5464
- Fixed a crash on selecting [functional graph outputs](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2597) in the MaterialX Graph Editor.
55-
- Fixed [document load initialization](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2795) in the MaterialX Graph Editor, addressing crashes from stale references, [link deletion](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2816) robustness, and [vertical refinement bias](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2789) in the layout engine.
65+
- Fixed [document load initialization](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2795) in the MaterialX Graph Editor, addressing crashes from stale references and [link deletion](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2816) robustness.
66+
- Fixed [handling of top-level inputs](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2830) in the MaterialX Graph Editor, addressing interface name assignment on connection and renaming.
5667
- Fixed [MDL generation](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2817) for empty materials, and aligned [boolean and integer conversion](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2807) in MDL with GLSL and OSL.
68+
- Fixed [missing origin annotations](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2806) in MDL shader generation, ensuring proper coverage for unit transform inputs and node graph sockets.
5769
- Fixed [alpha blending](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2786) in `hextiledimage_color4` across GLSL, OSL, and MDL implementations.
5870
- Fixed [CMake build rules](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2687) for resource installation, the [export](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2724) of MATERIALX_INSTALL_STDLIB_PATH in the CMake config, and the [propagation of dependencies](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2752) for OpenGL and X11 in downstream projects.
5971
- Fixed a [missing OCIO include](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2780) in the MaterialX Graph Editor, addressing a build error when OCIO support is enabled.

0 commit comments

Comments
 (0)