summaryrefslogtreecommitdiffstats
path: root/graphics/MaterialX/README
blob: be690d1f965389f3ea65b50f54c5420f75d5dd28 (plain)
MaterialX is an open standard for representing rich material and
look-development content in computer graphics, enabling its
platform-independent description and exchange across applications
and renderers.
Launched at Industrial Light & Magic in 2012, MaterialX has been a key
technology in their feature films and real-time experiences. The
project was released as open source in 2017 and MaterialX is a hosted
project of the Academy Software Foundation since 2021. This standard
is supported as optional extension by standards and platforms for
computer graphics, like OpenShadingLanguage and Blender.

MaterialX includes also two graphical interfaces, MaterialX Viewer and 
MaterialX Graph Editor.

MaterialX Viewer creates the GLSL shaders from MaterialX graphs and
renders the results using the NanoGUI framework. This framework is not
available in SBo but is built as third part component of MaterialX.
The build of internal NanoGUI requires also the buildof robin-map as
external component. Although this dependency is available in SBo you
cannot use the one installed in your system. The built does not affect
other installations of robin-map.

MaterialX Graph Editor can be used to visualize, create, and edit
MaterialX graphs. It uses the ImGui framework also built as third 
part component with the headers of an internal GLFW. Although these
dependencies are available in SBo, the build does not allow the use of
imgui and glfw3 installed in the system, but the internal components
built with MaterialX do not conflict with other installations.

By default this slackbuild installs both the graphical interfaces and
the Python bindings. If not required, you can disable their built by 
setting the following variables:

VIEWER=no disables the build of MaterialX Viewer. The dependency zenity
 is not required. You have no even the download of these extrasources:
 nanogui, nanobind, nanovg, glfw, and robin-map. 
 
EDITOR=no disables the build of MaterialX Graph Editor. The download of
 following extrasources is not required: imgui and imgui-node-editor.
 
PYTHON=no disables the build of Python bindings. The dependency
 python3-pybind11 is not required.
 
For example, if you want disable both the graphical interfaces you have
to launch the script with the following command:
    VIEWER=no EDITOR=no ./MaterialXViewer.SlackBuild
 
openimageio is an optional dependency autodetected and its support
will be enable by default if found in the system. If you do not 
require this extension you can disable it by passing
    OIIO=no ./MaterialX.SlackBuild