|
6 | 6 | - 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. |
7 | 7 | - 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. |
8 | 8 | - 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. |
9 | 10 | - Added [OSL implementations](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2734) for hex-tiled images, completing cross-language coverage for hextiling nodes. |
10 | 11 | - 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. |
11 | 12 | - 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. |
14 | 16 | - Added an [enableDirectLight option](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2773) to the MaterialX Viewer, enabling pure image-based lighting without direct light contributions. |
15 | 17 | - Added support for [upstream and downstream node traversal](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2225) in the property editor of the MaterialX Graph Editor. |
16 | 18 | - Added [file image previews](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2710) for image nodes in the MaterialX Graph Editor, with a configurable preview size. |
17 | 19 | - 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. |
18 | 20 | - 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. |
19 | 22 | - 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. |
20 | 23 | - Added support for [Doxygen-generated docstrings](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2657) in MaterialX Python bindings, enabling IDE support and interactive help. |
21 | 24 | - 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. |
23 | 26 | - 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). |
24 | 27 | - Added [developer guidelines](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2632) to the MaterialX contributing guide. |
25 | 28 |
|
26 | 29 | ### Changed |
27 | 30 | - 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. |
28 | 31 | - 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. |
29 | 33 | - 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. |
30 | 34 | - Aligned [UsdPreviewSurface opacity](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2796) with the upcoming Pixar specification, updating the handling of `opacity`, `opacityMode`, and `opacityThreshold` inputs. |
31 | 35 | - Improved the [Metal syntax](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2622) in generated MSL shaders, replacing preprocessor workarounds with native Metal code. |
|
34 | 38 | - Improved [thread safety](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2736) in the Document cache, adopting `std::shared_mutex` for reader and writer guarantees. |
35 | 39 | - Improved [hextiling implementations](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2615) in GLSL and MDL, using array-based data structures for better maintainability. |
36 | 40 | - 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. |
38 | 42 | - 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. |
39 | 45 | - 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. |
40 | 46 | - 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. |
41 | 48 | - 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. |
42 | 49 | - 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. |
43 | 50 | - 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). |
44 | 53 |
|
45 | 54 | ### Fixed |
46 | 55 | - 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. |
47 | 56 | - Fixed [prefiltered environment lighting](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2808) in GLSL to use directional albedo rather than Fresnel weighting alone. |
48 | 57 | - 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. |
49 | 58 | - 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. |
50 | 60 | - 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. |
51 | 61 | - Fixed [direct lighting](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2781) in MSL rendering, addressing a uniform name mismatch that caused missing lighting on MacOS. |
52 | 62 | - 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. |
54 | 64 | - 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. |
56 | 67 | - 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. |
57 | 69 | - Fixed [alpha blending](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2786) in `hextiledimage_color4` across GLSL, OSL, and MDL implementations. |
58 | 70 | - 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. |
59 | 71 | - 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