Skip to main content

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

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 position will 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)

Source distribution for materialx-baker 0.1.9
File Size Uploaded
materialx_baker-0.1.9.tar.gz 12.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for materialx-baker 0.1.9
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.9 This release

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page