materialx-baker
Description
A small library for baking textures from .mtlx files. Given an .mtlx it produces a series of .exr files, one for each node graph inside the file.
Table of Contents
Features
- Baking textures to numpy arrays for in memory usage.
- Baking textures to .exr files.
Prerequisites
- python3.11+
- (optional) uv - https://docs.astral.sh/uv/ (for building from source)
Installation
Use pre-build wheel on PYPI.
pip install materialx_baker
Or clone the repository and use uv.
On linux
git clone https://github.com/KidziaK/materialx-baker
cd materialx-baker
uv pip install .
Usage
The main API is very simple and consists of 2 functions: bake_to_numpy(mtlx_path) and bake_to_file(mtlx_path, output_path).
As the names suggest, the first one will output the dictionary of N-dictionaries (where N is the number of node graphs inside the .mtlx).
Each inner dictionary is a key-value pair, where key is the name of the output for the given graph and value is the
numpy array holding a texture.
from materialx_baker import bake_to_numpy
from pathlib import Path
mtlx_path = Path("path_to_mtlx.mtlx")
textures = bake_to_numpy(mtlx_path)
for graph, tex in textures.items():
...
The second function bake_to_file() produces N .exr files with the appropriate textures.
from materialx_baker import bake_to_file
from pathlib import Path
mtlx_path = Path("path_to_mtlx.mtlx")
output_path = Path("output_dir/")
bake_to_file(mtlx_path, output_path) # <mtlx_name>_<graph_name>.mtlx
If you need custom logic for parsing, validating or controlling docs and graphs, you can import and use MTLXBaker class, however it is not recommended.
Testing
# Using pytest
pytest src/
Limitations
- Only works for geometry independent graphs. Geometry nodes like
positionwill cause an error. - Lacks support for certain nodes. These will be added in later versions.
- Output only support .exr. I'm not planning on adding other formats in the future.
- This is not a production ready project and requires some polishing. Use at your own risk.
License
The MIT License (MIT) - see LICENSE.txt
Metadata
Release files for materialx-baker 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| materialx_baker-0.1.9.tar.gz | 12.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| materialx_baker-0.1.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.7 kB
Release files / materialx_baker-0.1.9.tar.gz
| Download URL | materialx_baker-0.1.9.tar.gz |
|---|---|
| Size | 12.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6a087afd77338f207dcdd874f8d20ca5e143b5b21fc186035a41e93390358c4a
|
|
BLAKE2b-256 checksum How to use checksums |
04ec3059bbdc9df2afdac1d27f3b0ac8d1bb29521a0f03b81af41eb899cf6f93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.13
|
Release files / materialx_baker-0.1.9-py3-none-any.whl
| Download URL | materialx_baker-0.1.9-py3-none-any.whl |
|---|---|
| Size | 9.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6a721a5e184f5b154bc25239a7740ca2647a068b7a43fbe68c2064fc469b55a6
|
|
BLAKE2b-256 checksum How to use checksums |
7f8c1dbe29b2b8d7b0c1f50c86ce7482d0916a0eedfd852141ea75d327b879bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.13
|