Skip to content

Commit 814e524

Browse files
authored
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
2 parents b96d4cd + 657ef1d commit 814e524

119 files changed

Lines changed: 3357 additions & 1443 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: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ jobs:
211211
python Scripts/mxdoc.py --docType html ../libraries/bxdf/standard_surface.mtlx
212212
python Scripts/generateshader.py ../resources/Materials/Examples/StandardSurface --target glsl
213213
python Scripts/generateshader.py ../resources/Materials/Examples/StandardSurface --target vulkan
214+
python Scripts/generateshader.py ../resources/Materials/Examples/StandardSurface --target wgsl
214215
python Scripts/generateshader.py ../resources/Materials/Examples/StandardSurface --target osl
215216
python Scripts/generateshader.py ../resources/Materials/Examples/StandardSurface --target mdl
216217
python Scripts/generateshader.py ../resources/Materials/Examples/StandardSurface --target msl
@@ -224,6 +225,7 @@ jobs:
224225
python python/Scripts/generateshader.py resources/Materials/Examples --target glsl --validator C:/vcpkg/installed/x64-windows-release/tools/glslang/glslangValidator.exe
225226
python python/Scripts/generateshader.py resources/Materials/Examples/StandardSurface --target essl --validator C:/vcpkg/installed/x64-windows-release/tools/glslang/glslangValidator.exe
226227
python python/Scripts/generateshader.py resources/Materials/Examples/StandardSurface --target vulkan --validator C:/vcpkg/installed/x64-windows-release/tools/glslang/glslangValidator.exe
228+
python python/Scripts/generateshader.py resources/Materials/Examples/StandardSurface --target wgsl --validator "C:/vcpkg/installed/x64-windows-release/tools/glslang/glslangValidator.exe --target-env vulkan1.3 --quiet"
227229
228230
- name: Shader Validation Tests (MacOS)
229231
if: matrix.test_shaders == 'ON' && runner.os == 'macOS'

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
build
22
dist
3+
.DS_Store

CHANGELOG.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,46 @@
22

33
## [1.39.4] - Development
44

5+
### Added
6+
- Added support for [WebGPU Shading Language](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2407) in MaterialX shader generation.
7+
- Added support for [hex-tiled images](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2094), with initial implementations in hardware shading languages and MDL.
8+
- Added support for [latitude-longitude images](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2168), implemented as a language-independent graph.
9+
- Added support for [custom OCIO configurations](https://github.com/AcademySoftwareFoundation/MaterialX/pull/1917) in shader generation.
10+
- Added support for the [time and frame nodes](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2389) in the MaterialX Viewer and MaterialX Graph Editor.
11+
- Added support for [node output types](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2387) in document validation.
12+
- Added the first [animated material example](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2329) to the MaterialX test suite.
13+
- Added the first [UDIM texture example](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2113) to the MaterialX test suite.
14+
15+
### Changed
16+
- Raised the minimum Python version to [Python 3.9](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2326).
17+
- Raised the minimum OpenImageIO version to [OIIO 2.2](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2340).
18+
- Raised the default PyBind11 version to [PyBind11 2.13.6](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2331).
19+
- 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.
20+
- 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.
21+
- Improved the workflow for [adding nodes](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2383) in the MaterialX Graph Editor.
22+
- Aligned [viewport background colors](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2413) across the MaterialX Viewer and MaterialX Graph Editor.
23+
24+
### Fixed
25+
- Fixed the handling of UI display color spaces in the [MaterialX Viewer](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2394) and [MaterialX Graph Editor](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2402).
26+
- Fixed a crash with [multioutput nodes](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2397) in the MaterialX Graph Editor.
27+
- Fixed a race condition in the setting of [format options](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2454) for multithreaded shader generation.
28+
- Fixed default inputs in the definitions of the [atan2 nodes](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2352).
29+
- Fixed token handling in [functional nodegraphs](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2363).
30+
- Fixed an edge case where [subgraph flattening](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2348) would generate invalid connections.
31+
- Fixed incorrect face and vertex counts in [GeometryHandler::createQuadMesh](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2339).
32+
- 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.
33+
- Fixed the interpretation of weight in the OSL implementation of the [subsurface_bsdf node](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2447).
34+
- Fixed the handling of missing attributes in the OSL implementation of the [frame node](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2319).
35+
- Fixed the offset of the [cloverleaf node](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2327), aligning it with that of other shape nodes.
36+
- Fixed storage of width and height in [MslRenderer::setSize](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2306).
37+
- Fixed handling of null images in [MetalTextureHandler::createRenderResources](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2315).
38+
- Fixed a missing header include in [GCC 15 builds](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2338).
39+
- Patched GLFW to improve [monitor detection on MacOS](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2398).
40+
41+
### Removed
42+
- 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.
43+
- Removed the [TextureBakerPtr type](https://github.com/AcademySoftwareFoundation/MaterialX/pull/2301) in favor of platform-specific types.
44+
545
## [1.39.3] - 2025-03-07
646

747
### Added

CMakeLists.txt

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ set(MATERIALX_PYTHON_PYBIND11_DIR "" CACHE PATH
121121

122122
# Settings to define installation layout
123123
set(MATERIALX_INSTALL_INCLUDE_PATH "include" CACHE STRING "Install header include path (e.g. 'inc', 'include').")
124+
set(MATERIALX_INSTALL_BIN_PATH "bin" CACHE STRING "Install bin path (e.g. 'bin').")
124125
set(MATERIALX_INSTALL_LIB_PATH "lib" CACHE STRING "Install lib path (e.g. 'libs', 'lib').")
125126
set(MATERIALX_INSTALL_STDLIB_PATH "libraries" CACHE STRING "Install path for mtlx std libs (e.g. 'libraries').")
126127

@@ -188,6 +189,7 @@ mark_as_advanced(MATERIALX_OSL_BINARY_OSLC)
188189
mark_as_advanced(MATERIALX_OSL_BINARY_TESTRENDER)
189190
mark_as_advanced(MATERIALX_OSL_INCLUDE_PATH)
190191
mark_as_advanced(MATERIALX_INSTALL_INCLUDE_PATH)
192+
mark_as_advanced(MATERIALX_INSTALL_BIN_PATH)
191193
mark_as_advanced(MATERIALX_INSTALL_LIB_PATH)
192194
mark_as_advanced(MATERIALX_INSTALL_STDLIB_PATH)
193195
mark_as_advanced(MATERIALX_BUILD_JS)
@@ -412,12 +414,19 @@ function(mx_add_library MATERIALX_MODULE_NAME)
412414
EXPORT MaterialX
413415
ARCHIVE DESTINATION ${MATERIALX_INSTALL_LIB_PATH}
414416
LIBRARY DESTINATION ${MATERIALX_INSTALL_LIB_PATH}
415-
RUNTIME DESTINATION bin
417+
RUNTIME DESTINATION ${MATERIALX_INSTALL_BIN_PATH}
416418
FILE_SET mxHeaders DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH})
417419
endif()
418420
419-
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${MATERIALX_MODULE_NAME}.pdb"
420-
DESTINATION "${MATERIALX_INSTALL_LIB_PATH}/" OPTIONAL)
421+
if(MSVC)
422+
if(MATERIALX_BUILD_SHARED_LIBS)
423+
install(FILES $<TARGET_PDB_FILE:${MATERIALX_MODULE_NAME}>
424+
DESTINATION ${MATERIALX_INSTALL_BIN_PATH} OPTIONAL)
425+
else()
426+
install(FILES "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/$<CONFIG>/$<TARGET_FILE_BASE_NAME:${MATERIALX_MODULE_NAME}>.pdb"
427+
DESTINATION ${MATERIALX_INSTALL_LIB_PATH} OPTIONAL)
428+
endif()
429+
endif()
421430
endif()
422431
423432
# Pass TARGET_NAME back to call site, so the caller can modify the build target.
@@ -521,7 +530,7 @@ if(MATERIALX_BUILD_MONOLITHIC)
521530
EXPORT MaterialX
522531
ARCHIVE DESTINATION ${MATERIALX_INSTALL_LIB_PATH}
523532
LIBRARY DESTINATION ${MATERIALX_INSTALL_LIB_PATH}
524-
RUNTIME DESTINATION bin
533+
RUNTIME DESTINATION ${MATERIALX_INSTALL_BIN_PATH}
525534
FILE_SET mxHeaders DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH})
526535
527536
# Note : we don't install the headers etc. here, and rely on each separate modules CMakeLists.txt

documents/Specification/MaterialX.Proposals.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -173,18 +173,6 @@ Inheritance of material-type custom nodes is also allowed, so that new or change
173173

174174
### Noise Nodes
175175

176-
<a id="node-fractal2d"> </a>
177-
178-
We have a standard 3d fractal noise, but a 2d variant would be useful as well.
179-
180-
* **`fractal2d`**: Zero-centered 2D Fractal noise in 1, 2, 3 or 4 channels, created by summing several octaves of 2D Perlin noise, increasing the frequency and decreasing the amplitude at each octave.
181-
* `amplitude` (float or vector<em>N</em>): the center-to-peak amplitude of the noise (peak-to-peak amplitude is 2x this value). Default is 1.0.
182-
* `octaves` (integer): the number of octaves of noise to be summed. Default is 3.
183-
* `lacunarity` (float or vector<em>N</em>): the exponential scale between successive octaves of noise; must be an integer value if period is non-zero so the result is properly tileable. VectorN-output types can provide either a float (isotropic) or vector<em>N</em> (anisotropic) values for lacunarity and diminish. Default is 2.0.
184-
* `diminish` (float or vector<em>N</em>): the rate at which noise amplitude is diminished for each octave. Should be between 0.0 and 1.0; default is 0.5. VectorN-output types can provide either a float (isotropic) or vector<em>N</em> (anisotropic) values for lacunarity and diminish.
185-
* `period` (float or vector<em>N</em>): the positive integer distance at which the noise function returns the same value for texture coordinates repeated at that step. Default is 0, meaning the noise is not periodic.
186-
* `texcoord` (vector2): the 2D texture coordinate at which the noise is evaluated. Default is to use the first set of texture coordinates.
187-
188176
<a id="node-cellnoise1d"> </a>
189177

190178
1D Cell noise was proposed an an alternative approach to random value generation.

0 commit comments

Comments
 (0)