SDK · crate

kinogaki-mtlx

SDK

MaterialX 1.39 for Kinogaki Studio: the material layer every engine, format and core share, in our own implementation (MaterialX's C++ library is a reference and a test oracle, never a dependency).

Repository
SDK (kinogaki/studio-sdk)
Folder
sdk/crates/mtlx
Source
16 files, 4,597 lines
Tests
2 files, 476 lines
depends onused by tests alonedependencies for tests alone are listed below, not drawn

What it is

MaterialX 1.39 for Kinogaki Studio: the material layer every engine, format and core share, in our own implementation (MaterialX's C++ library is a reference and a test oracle, never a dependency).

  • Documents (Document): read from their XML and written back as MaterialX writes them, comments and blank lines kept; MaterialX 1.36 to 1.38 documents are upgraded to 1.39 as they are read, as MaterialX's own reader does.
  • The library (library): MaterialX 1.39.5's definition files (stdlib, pbrlib, the shading models in bxdf with their translation graphs, cmlib, nprlib, lights), vendored verbatim as data with their Apache-2.0 licence (libraries/), and Kinogaki's own definitions (kinogaki/), embedded and read once a process.
  • Definitions (NodeDef): one typed signature of a node each, their inputs (Port) with MaterialX's defaults, UI hints, uniform and enumeration meaning, and the geometric properties (GeomProp) unconnected inputs read.
  • Expansion (Graph, Library::implementation): a node a graph defines, as that graph, resolved once per definition.
  • Translation (Library::translation): the chain of <from>_to_<to> definitions from one shading model to another.
  • Evaluation (NodeDef::evaluate): a node of constants as its value.
  • Materials (Material): a document's materials as flat networks, its graphs and its own graph-defined nodes inlined (Document::materials), its includes read first (Document::include); and a document written of materials (Document::of_materials), Kinogaki's definitions they use with them.

The crate depends on the standard library alone.

Depends on

CrateRepositoryAsWhat it is
kinogaki-geometrySDKnormalKinogaki Studio's standard geometry values.

Third-party

None.

Used by

CrateRepositoryAsWhat it is
kinogaki-core-packageCore and the appnormalCore's own SDK package (kinogaki.core): what Studio holds whatever plugins are installed.
kinogaki-fbxFBXnormalFBX as a read-only format plugin for Kinogaki Studio.
kinogaki-materialxMaterialXtestsMaterialX documents (.mtlx), a format plugin: a document's materials read as Studio's Materials, MaterialX networks of nodes, and Materials written as one.
kinogaki-render-apiSDKnormalKinogaki's render interface: what a host (Studio) sends a render engine and what comes back, with no GPU or OS API.
kinogaki-usdUSDnormalUniversal Scene Description as a format plugin for Kinogaki Studio: usda, usdc and usdz files read into the standard values and written from them.

Modules

Public types and traits

At the crate root

Structs DocumentGeomPropGraphGraphNodeIncludedLibraryMaterialMaterialNodeNodeDefPort

Enums BindingBoundTypeValue

By module: 14 public types and traits in 5 modules

document DocumentIncluded

graph BindingGraphGraphNode

library GeomPropLibraryNodeDefPort

material BoundMaterialMaterialNode

types TypeValue