QuiltiX Plugins

Introduction

The following are a set of plugins available for usage with the editor.

The currently supported MaterialX version for QuiltiX v0.6.1 is 1.38.9. When 1.39 support is available no changes should be required except that a different version of the dependent packages will be required.

In the documentation, we will show installation of the PyPi packages for 1.38.9.

The following is a sample video showing the JSON and glTF plugins (described below) running in QuiltiX v0.6.1:

API Documentation

API documentation for all plug-ins can be found here

Common Setup

QuiltiX will search for any plugins as defined by the paths in the QUILTIX_PLUGIN_PATH environment variable.

For each plugin an additional path should be added to the folder containing the plugin.py which is the main entry point for the plugin.

export QUILTIX_PLUGIN_PATH=$QUILTIX_PLUGIN_PATH:/path/to/<plugin folder>

JSON Plugin

This plugin allows for serialization of any MaterialX document to and from JSON format for those that wish to interchange using that format as opposed the default XML format

Below shows the JSON representation of the Emerald Peaks Wallpaper from the AMD GPUOpen materials library:

Installation

  1. Download the plugin and place it in the uniquely named plugin folder using the filename plugin.py

  2. Update the QUILTIX_PLUGIN_PATH to point to that folder.

  3. Install the dependent package from PyPi as follows:

    bash pip install materialxjson==1.38.9

Note that a version of this this is included as a sample plugin under the sample_plugins folder.


glTF Plugin

This plugin allows for serialization of node graphs to and from glTF.

The current supported MaterialX version for QuiltiX which is 1.38.9. When 1.39 support is available no changes should be required.

The supported glTF version is 2.0.

Installation

  1. Download the plugin and place it in the uniquely named plugin folder using the filename plugin.py

  2. Update the QUILTIX_PLUGIN_PATH to point to that folder.

  3. Install the dependent package from PyPi as follows:

    bash pip install materialxgltf==1.38.9.1

Export to glTF

The following functionality is supported - Translations of non-glTF MaterialX shaders to glTF shaders - Baking of upstream graph channels - Creation of glb (binary) or glTF (json) files - glb files embed default geometry and any baked textures - glTF file reference external geometry and textures

The folowing is not currently supported: - Saving of material assignments made in QuiltiX, as the application does not same this information when saving to MaterialX. - Saving without baking upstream graph channels when shader translation is required. (glTF 2.0 does not support procedural graphs at time of writing)

Import from glTF

The following functionality is supported: - Import of ASCII glTF files to MaterialX.

glTF Export and Preview

The following functionality is supported: - Preview of node graph as glTF text (JSON) - Preview of a glTF file in a glTF Viewer panel which is included with the plugin.

Below is a simple graph with a procedural checker which has been baked and embedded into a glTF binary file (glb) and loaded into the glTF Viewer (on the left0). The contents of the ASCII version of the result is shown (on the right).

glTF Import Examples

The following are some examples of loading in some files from the glTF Sample Models repository. The "Damaged Helmet" model (after conversion to MaterialX) is is shown in the MaterialXView viewer for comparison.