@needle-tools/materialx
Version:
MaterialX material support for three.js and Needle Engine – render physically based MaterialX shaders in the browser via WebAssembly
101 lines (73 loc) • 3.62 kB
Markdown
# Changelog
All notable changes to this package will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [1.5.1] – 2026-03-22
### Fixed
- UV patching: always wrap vec3 targets regardless of source UV declaration type
- Vertex color: wrap vec3→vec4 for color attributes (Three.js provides vec3)
- Shader test page uses proper environment/lighting matching other test pages
### Added
- Playwright e2e tests validating 111+ MaterialX materials for shader compilation
## [1.5.0] – 2026-03-20
### Added
- Vertex displacement support (GLSL and ESSL/WebGL 2)
- Normal recomputation via screen-space derivatives (dFdx/dFdy) for displaced surfaces
- Procedural noise displacement (fractal3d, position, math nodes)
- Texture-based displacement (image node sampling in vertex shader)
- Displacement animation support via Three.js PropertyBinding
- Three.js shadow support for lit MaterialX shaders (directional, spot, point)
- Alpha mode detection via `getAlphaMode` for mask/blend transparency
### Fixed
- Unlit shaders no longer emit shadow uniforms that cause compilation errors
- UV vec2/vec3 patching for displacement vertex shaders
- Skip MaterialX shader closure types (surfaceshader, displacementshader, etc.) in uniform handling
### Changed
- WASM rebuilt with displacement support (MaterialX 1.39.4, Emscripten 3.1.74)
- Environment map intensity now combines per-material and scene intensity
## [1.4.6] – 2026-03-17
- Fix: Compatibility with older Rollup/Vite 4 by replacing `import ... with` syntax
## [1.4.5] – 2026-03-17
- Fix: Improved error log formatting with package version
## [1.4.4] – 2026-03-17
- Fix: Minor type fixes and improved debug logging
## [1.4.3] – 2026-02-20
- Add: `globalThis.NEEDLE_MATERIALX_LOCATION` to override WASM location. Use `"package"` for package-local files, or a custom path for self-hosted/CDN.
## [1.4.2] – 2026-02-10
- Fix: Improve error handling when MaterialX renderable element is not found
## [1.4.1] – 2026-02-10
- Change: Use CDN as default WASM source
## [1.4.0] – 2026-02-10
- Change: Load WASM binaries from Needle CDN by default instead of bundling locally
## [1.3.4] – 2026-02-09
- Fix: Matrix update for AR sessions
## [1.3.3] – 2026-02-09
- Add: Support for loading `.mtlx` files by index
- Fix: Type fixes in loader
## [1.3.2] - 2025-08-12
- Fix: Error when MaterialX extension is not present
## [1.3.1] - 2025-08-12
- Docs: README improvements
## [1.3.0] - 2025-08-12
- Change: Refactor extension to use a documents array instead of a single document, backwards compatibility is maintained
## [1.2.2] - 2025-07-24
- Add: `preloadWasm` function with support to wait for network idle. This is automatically done for Needle Engine projects.
## [1.2.1] - 2025-07-23
- Fix: Error caused by scene.environment being null
## [1.2.0] - 2025-07-23
- Add: Support to load raw MaterialX materials (from mtlx as XML)
- Fix: Warn if tangents are missing
- Fix: Improve unsupported light handling
- Change: Refactor library to js + jsdoc
## [1.1.0] - 2025-07-15
- Add: `useNeedleMaterialX` hooks for vanilla three.js and Needle Engine
## [1.0.6] - 2025-07-15
- Fix: Texture/environment sampling on some Android devices
## [1.0.3] - 2025-07-10
- Fix: Version bump for npm publish
## [1.0.2] - 2025-07-10
- Add: Material extension `doubleSided` support
- Fix: Improved lighting support
- Fix: Texture loading and glTF texture index resolution
## [1.0.1] - 2025-07-08
- Initial release