Giter Site home page Giter Site logo

gltf_materialx's Introduction

You've reached the home of Bernard Kwok

  • ๐Ÿ”ญ 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.

  • Related connections includes:

gltf_materialx's People

Contributors

kwokcb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gltf_materialx's Issues

Ensure that filenames are resolved when converting to glTF

Issue

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.

Add a merge MTLX to glTF option

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.

Remove glTF materials on conversion to MTLX

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.

A "clear materials" on glTF files can be added.

Support named UV sets

Problem

  • 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.

Sync with 1.38.7

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.

Use MTLX as a submodule

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.

Create new Khronos tooling branch

  • Sync Khronos MaterialX to head
  • Create recreate tooling branch: https://github.com/KhronosGroup/MaterialX/tree/gltf_mtlx_interop
  • Add support back in for MaterialXView.
    • Restore load materials from glTF
    • Add save materials to glTF (new)
  • Add support in for MaterialXGraphEditor (did not exist before)
    • Load glTF
    • Save glTF graph
  • Update copyright notices and licensing
  • Add in Python wrappers
  • Update to new texcoord based uv set lookup to allow USD named sets to also work with glTF image nodes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.