๐ญ Iโm currently open for work on open source projects. The Academy Software Foundation material standard: MaterialX is my primary focus along with
it's interrelation with industry standards: Khronos glTF and Pixar USD. Also of focus is MaterialX's interlation with standards such as OCIO (colour management),
and shading languages: OSL (Open Shading Language), MDL, and GLSL for both desktop and web rendering.
Some industry presentations can be found on the main MaterialX site
๐ฌ Feel free to connect with me for areas such as: software engineering, design / architacture, project management, remote working, open source / standards.
File names may have additional parent qualfiiers such as fileprefix on parent nodegraphs.
These need to be resolved when converting to glTF
Fix
The "resolved" query for filenames should be used.
Notes
Note that it is not possible to restore the fileprefix from glTF since it does not store such a concept, and resolving means to lose this context information.
It's still possible to create invalid shader declaration names such as "__".
Ideally this should be handled in code gen for GLSL variants as these are illegal.
The prevent can occur on the import side as well.
I tried to convert KHR_materials_pbrSpecularGlossiness, but the effect is wrong, I don't know why, can you help me? Here is my conversion using gltf and mtlx glTF.zip
.
MTLX converted to glTF creates a standalone glTF file.
A merge of this to an existing glTF file is useful to replace existing materials.
Assignments could also be handled.
Keeping materials in the glTF file can cause unnecessary handling (for Web or other integrations) when they are overridden
by MTLX assignments. Could also occur for USD assignments.
OpenUSD and other integrations require named uvsets to be used
glTF uses integer (numbered) sets.
A change has been made to core to support both by changing glTF image nodes to support vec2 texcoord
Fix Proposed
The translation code needs to handle:
Save: by detecting for connections on texcoord and writing out a set number if on an upstream <texcoord> node. It does not translate upstream named sets provided by <geompropvalue> nodes.
Load: Create a <texcoord> node if an image uses a non-zero uv sets such as the MultiUVTest test from the sample library.
1.38.7 has all local changes required for the distillation pipeline from MTLX to glTF.
When this is released, then no custom build is required anymore.
At this time an official 1.38.7 release from this repo will be stamped out.
The dependency scheme of using a download is too inflexible relying on major releases for any core updates.
Also exe downloads can be a security issue.
Move to using submodule dependency instead.