Skip to content

Commit 55273a7

Browse files
authored
Merge branch 'AcademySoftwareFoundation:main' into graph_editor_bg_colour
2 parents 0e43d0b + 7864cf3 commit 55273a7

77 files changed

Lines changed: 2502 additions & 1760 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/main.yml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@ jobs:
2525
python: 3.9
2626
cmake_config: -DMATERIALX_BUILD_SHARED_LIBS=ON -DMATERIALX_BUILD_MONOLITHIC=ON
2727

28-
- name: Linux_GCC_14_Python39
28+
- name: Linux_GCC_14_Python312
2929
os: ubuntu-24.04
3030
compiler: gcc
3131
compiler_version: "14"
32-
python: 3.9
32+
python: 3.12
3333

34-
- name: Linux_GCC_14_Python311
34+
- name: Linux_GCC_14_Python313
3535
os: ubuntu-24.04
3636
compiler: gcc
3737
compiler_version: "14"
38-
python: 3.11
38+
python: 3.13
3939
test_render: ON
4040

4141
- name: Linux_GCC_CoverageAnalysis
@@ -53,32 +53,32 @@ jobs:
5353
python: 3.9
5454
cmake_config: -DMATERIALX_BUILD_SHARED_LIBS=ON
5555

56-
- name: Linux_Clang_18_Python311
56+
- name: Linux_Clang_18_Python313
5757
os: ubuntu-24.04
5858
compiler: clang
5959
compiler_version: "18"
60-
python: 3.11
60+
python: 3.13
6161
clang_format: ON
6262

63-
- name: MacOS_Xcode_15_Python39
63+
- name: MacOS_Xcode_15_Python311
6464
os: macos-14
6565
compiler: xcode
6666
compiler_version: "15.4"
6767
cmake_config: -DMATERIALX_BUILD_SHARED_LIBS=ON
68-
python: 3.9
68+
python: 3.11
6969

70-
- name: MacOS_Xcode_15_Python311
70+
- name: MacOS_Xcode_16_Python312
7171
os: macos-15
7272
compiler: xcode
7373
compiler_version: "16.1"
74-
python: 3.11
74+
python: 3.12
7575
test_shaders: ON
7676

77-
- name: MacOS_Xcode_16_Python311
77+
- name: MacOS_Xcode_16_Python313
7878
os: macos-15
7979
compiler: xcode
8080
compiler_version: "16.1"
81-
python: 3.11
81+
python: 3.13
8282
static_analysis: ON
8383
cmake_config: -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
8484

@@ -103,10 +103,10 @@ jobs:
103103
python: 3.9
104104
cmake_config: -G "Visual Studio 17 2022" -A "Win32"
105105

106-
- name: Windows_VS2022_x64_Python311
106+
- name: Windows_VS2022_x64_Python313
107107
os: windows-2025
108108
architecture: x64
109-
python: 3.11
109+
python: 3.13
110110
cmake_config: -G "Visual Studio 17 2022" -A "x64"
111111
test_shaders: ON
112112

CHANGELOG.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
# Change Log
22

3-
## [1.39.4] - Development
3+
## [1.39.4] - Release Candidate
44

55
### Added
66
- Added support for [WebGPU Shading Language](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2407) in MaterialX shader generation.
77
- Added support for [hex-tiled images](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2094), with initial implementations in hardware shading languages and MDL.
88
- Added support for [latitude-longitude images](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2168), implemented as a language-independent graph.
99
- Added support for [2D fractals](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2183), with initial implementations in hardware shading languages, OSL, and MDL.
10+
- Added support for [NanoColor names](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2513) in default color space management.
1011
- Added support for [custom OCIO configurations](https://github.com/AcademySoftwareFoundation/MaterialX/pull/1917) in shader generation.
12+
- Added support for [anisotropy](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2393) in the graph definition of glTF PBR.
1113
- Added support for the [time and frame nodes](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2389) in the MaterialX Viewer and MaterialX Graph Editor.
1214
- Added support for [node output types](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2387) in document validation.
1315
- Added the first [animated material example](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2329) to the MaterialX test suite.
@@ -17,7 +19,8 @@
1719
- Raised the minimum Python version to [Python 3.9](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2326).
1820
- Raised the minimum OpenImageIO version to [OIIO 2.2](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2340).
1921
- Raised the default PyBind11 version to [PyBind11 2.13.6](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2331).
20-
- Optimized the graph definitions of [OpenPBR Surface](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2459) and [glTF PBR](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2467), roughly halving frame times for uniform materials in real-time renderers.
22+
- Optimized the graph definitions of [Standard Surface](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2483), [OpenPBR Surface](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2459), and [glTF PBR](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2467) in hardware shading languages, roughly halving the fill cost for these shading models in GLSL, ESSL, and MSL.
23+
- Optimized the implementation of [height-correlated Smith masking-shadowing](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2458) in GLSL.
2124
- Aligned implementations of the [heighttonormal node](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2424) beween GLSL and OSL, improving visual consistency and enabling support for arbitrary procedural heightfields.
2225
- Deprecated the [fps input](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2450) of the time node, allowing it to be removed in a future specification update.
2326
- Updated the default [NanoGUI version](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2487) in the MaterialX Viewer to enable builds with CMake 4.
@@ -33,16 +36,18 @@
3336
- Fixed an edge case where [subgraph flattening](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2348) would generate invalid connections.
3437
- Fixed incorrect face and vertex counts in [GeometryHandler::createQuadMesh](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2339).
3538
- Fixed the computation of throughput in the GLSL implementations of the BSDF [multiply](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2328), [add](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2334), and [layer](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2368) nodes.
36-
- Fixed the interpretation of weight in the OSL implementation of the [subsurface_bsdf node](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2447).
39+
- Fixed the interpretation of weight in the [OSL](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2447) and [MDL](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2264) implementations of subsurface_bsdf.
3740
- Fixed the handling of missing attributes in the OSL implementation of the [frame node](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2319).
3841
- Fixed the offset of the [cloverleaf node](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2327), aligning it with that of other shape nodes.
3942
- Fixed storage of width and height in [MslRenderer::setSize](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2306).
4043
- Fixed handling of null images in [MetalTextureHandler::createRenderResources](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2315).
4144
- Fixed a missing header include in [GCC 15 builds](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2338).
45+
- Fixed the installation of [PDB files](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2464) in Windows debug builds.
4246
- Patched GLFW to improve [monitor detection on MacOS](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2398).
4347

4448
### Removed
4549
- Removed the legacy [MATERIALX_OIIO_DIR](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2342) option, as it connected to a CMake pathway that is no longer present in OIIO 2.2 and later.
50+
- Removed [implementations](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2411) and [helper functions](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2498) for the blur node in shader generation, with the goal of reevaluating its design in a future specification update.
4651

4752
## [1.39.3] - 2025-03-07
4853

CMakeLists.txt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,6 @@ if(MATERIALX_BUILD_RENDER AND MATERIALX_BUILD_GEN_OSL AND MATERIALX_BUILD_TESTS)
229229
endif()
230230

231231
# Add global definitions
232-
if(MATERIALX_BUILD_OIIO)
233-
add_definitions(-DMATERIALX_BUILD_OIIO)
234-
endif()
235232
if(MATERIALX_TEST_RENDER)
236233
add_definitions(-DMATERIALX_TEST_RENDER)
237234
endif()
@@ -578,7 +575,7 @@ if(NOT SKBUILD)
578575
# Export aliases for the MaterialX modules built in this monolithic build
579576
# to be less disruptive to downstream projects.
580577
get_property(MATERIALX_MODULES GLOBAL PROPERTY MATERIALX_MODULES)
581-
set(EXPORT_ALIASES "# Aliased targets for the the monolithic build\n")
578+
set(EXPORT_ALIASES "# Aliased targets for the monolithic build\n")
582579
foreach (MODULE ${MATERIALX_MODULES})
583580
string(APPEND EXPORT_ALIASES "add_library(${MODULE} ALIAS MaterialX)\n")
584581
endforeach ()

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,4 @@ The following packages contain pre-built binaries for the latest release, includ
8282
- The [Developer Guide](http://www.materialx.org/docs/api/index.html) contains a developer-oriented overview of MaterialX with Build and API documentation.
8383
- The [Python Scripts](python/Scripts) folder contains standalone examples of MaterialX Python code.
8484
- The [JavaScript](javascript) folder contains details on building JavaScript bindings for MaterialX.
85-
- Presentations at [ASWF Open Source Days](https://materialx.org/assets/ASWF_OSD2024_MaterialX_Final.pdf) and the [SIGGRAPH Physically Based Shading Course](https://blog.selfshadow.com/publications/s2020-shading-course/#materialx) provide details on the roadmap for MaterialX development.
85+
- Presentations at [ASWF Open Source Days](https://materialx.org/assets/ASWF_OSD2025_MaterialX_Final.pdf) and the [SIGGRAPH Physically Based Shading Course](https://blog.selfshadow.com/publications/s2020-shading-course/#materialx) provide details on the roadmap for MaterialX development.

SECURITY.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,11 @@ None
1515

1616
## Addressed Security Issues
1717

18-
None
18+
The following MaterialX versions addressed the security issues listed within their section:
19+
20+
### 1.39.3
21+
22+
- [CVE-2025-53009](https://github.com/AcademySoftwareFoundation/MaterialX/security/advisories/GHSA-wx6g-fm6f-w822)
23+
- [CVE-2025-53010](https://github.com/AcademySoftwareFoundation/MaterialX/security/advisories/GHSA-3jhf-gxhr-q4cx)
24+
- [CVE-2025-53011](https://github.com/AcademySoftwareFoundation/MaterialX/security/advisories/GHSA-7qw8-3vmf-gj32)
25+
- [CVE-2025-53012](https://github.com/AcademySoftwareFoundation/MaterialX/security/advisories/GHSA-qc2h-74x3-4v3w)

cmake/modules/MaterialXConfig.cmake.in

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
# Auto-generated content:
99
@PACKAGE_INIT@
1010

11+
include(CMakeFindDependencyMacro)
12+
1113
# Gather MaterialX targets:
1214
include("${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@Targets.cmake")
1315

@@ -22,6 +24,17 @@ set_and_check(MATERIALX_STDLIB_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/libraries")
2224
if(@MATERIALX_BUILD_PYTHON@ AND @MATERIALX_INSTALL_PYTHON@)
2325
set_and_check(MATERIALX_PYTHON_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/python")
2426
endif()
27+
28+
# Dependencies when building static libraries:
29+
if(NOT @MATERIALX_BUILD_SHARED_LIBS@)
30+
if(@MATERIALX_BUILD_OIIO@ AND @MATERIALX_BUILD_RENDER@)
31+
find_dependency(OpenImageIO CONFIG)
32+
endif()
33+
if(@MATERIALX_BUILD_OCIO@)
34+
find_dependency(OpenColorIO CONFIG)
35+
endif()
36+
endif()
37+
2538
if(@MATERIALX_BUILD_RENDER@ AND @MATERIALX_INSTALL_RESOURCES@)
2639
set_and_check(MATERIALX_RESOURCES_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/resources")
2740
endif()

documents/DeveloperGuide/GraphEditor.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Select the `MATERIALX_BUILD_GRAPH_EDITOR` option in CMake to build the MaterialX
2121

2222
## Buttons
2323

24-
To display a new material and graph, click the `Load Material` button and and navigate to the [Materials/Examples](https://github.com/AcademySoftwareFoundation/MaterialX/tree/main/resources/Materials/Examples) folder, which contains a selection of materials in the MTLX format, and select a document to load. The Graph Editor will display the graph hierarchy of the selected document for visualization and editing.
24+
To display a new material and graph, click the `Load Material` button and navigate to the [Materials/Examples](https://github.com/AcademySoftwareFoundation/MaterialX/tree/main/resources/Materials/Examples) folder, which contains a selection of materials in the MTLX format, and select a document to load. The Graph Editor will display the graph hierarchy of the selected document for visualization and editing.
2525

2626
To save out changes to the graphs as MTLX files click the `Save Material` button. This will save the position of the nodes in the graph for future use as well.
2727

documents/Specification/MaterialX.GeomExts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ VariantAssign elements have the following attributes:
406406
* `variantset` (string, required): the name of the variantset to apply the variant from
407407
* `variant` (string, required): the name of the variant within `variantset` to use
408408

409-
In the above example, the input/token values defined within variant "var1" will be applied to and and all identically-named inputs/tokens found in either "material1" or "material2" unless restricted by a `node` or `nodedef` attribute defined in the <variantset>, while values defined within variant "var2" will only be applied to matching-named bindings in "material1". VariantAssigns are applied in the order specified within a scope, with those within a <materialassign> taking precedence over those which are direct children of the <look>.
409+
In the above example, the input/token values defined within variant "var1" will be applied to all identically-named inputs/tokens found in either "material1" or "material2" unless restricted by a `node` or `nodedef` attribute defined in the <variantset>, while values defined within variant "var2" will only be applied to matching-named bindings in "material1". VariantAssigns are applied in the order specified within a scope, with those within a <materialassign> taking precedence over those which are direct children of the <look>.
410410

411411

412412
### Visibility Elements

0 commit comments

Comments
 (0)