Home Technical Talk
The BRAWL² Tournament Challenge has been announced!

It starts May 12, and ends Oct 17. Let's see what you got!

https://polycount.com/discussion/237047/the-brawl²-tournament

[Tool Release] glTF Importer For Maya - Full PBR & Animation Support

Hi all!

I have published a Maya plugin for importing glTF/glb assets, which I think many of you will find useful.

glTF Importer for Maya - 
handles the glTF 2.0 spec, allowing you to use those assets in Maya without manual conversion headaches.

What it does:
  • Imports .gltf and .glb files with proper hierarchy and scale preservation
  • Converts PBR materials to Maya shaders (StandardSurface, aiStandardSurface, OpenPBRSurface, StingrayPBS)
  • Handles advanced materials: clearcoat, sheen, transmission, anisotropy, iridescence, etc.
  • Full animation support: skeletal rigs, transform animations, morph targets (organized in Time Editor)
  • Draco compression support
  • Instancing
  • Material variants
  • Drag & drop workflow
  • And more
Maya 2022+ (Refer to the docs on dependencies and plugin installation)

Website: https://www.gltf2maya.store

If anyone runs into issues or has feedback, I'm all ears. Happy to answer questions!

Replies

  • Eric Chadwick
    This looks awesome, nice work! Fun to see in your videos a couple of the sample assets I made. 

    It looks like you've tested things really thoroughly, which is great to see, and your docs are great too.

    Can you talk a bit about the Merge Vertices process? I'm curious why UV seams might be messed up, since AFAIK Maya does support multiple UV coords per vertex. So it should be possible to merge the mesh vertices while keeping the split UV vertices?

    Also, does Merge Vertices tend to destroy split normals, and multiple material assignments per vertex? 
  • parashivbrl
    Hi Eric, thanks so much for the kind words and for taking the time to look at this!

    First, I want to thank you for creating those sample assets - they were invaluable as benchmarks for testing the importer throughout development. It's been great having high-quality reference models to validate against!

    You're absolutely right about Maya supporting multiple UV coords per vertex. I need to clarify what I wrote in the documentation - it was a bit misleading.

    How Merge Vertices Actually Works:
    The merge process only compares vertex positions (and optionally vertex colors if present) to identify duplicates. UVs and normals are explicitly not part of the comparison criteria.

    Here's what happens:
    Vertices with identical positions are merged into a single vertex
    The unique UV coordinates are preserved in the vertex array
    Per-face-vertex UV indices are created (what Maya calls per-polygon UV assignment) via uv_loop_sets
    This means UV seams are preserved - vertices can be merged while maintaining split UVs at seam boundaries
    Regarding Split Normals:
    Since normals aren't used in the merging comparison either, split normals are preserved. Multiple faces can share the same vertex position while having different normal values.

    The Real Issue:
    What I incorrectly documented was that "UV seams might be messed up." The actual behavior is that when merge vertices is enabled, sometimes the UV creation fails in rare edge cases, but when it works, the UVs are created correctly with proper seams. Without merging, UVs are always created reliably. I need to update the documentation to reflect this.

    Material Assignments:
    Multiple material assignments per vertex are preserved since the importer handles materials at the face level, not the vertex level. However, if the mesh has vertex colors, the merge process treats position and color as a combined key for identifying duplicates. This means vertices at the same position but with different colors remain detached, preserving sharp color transitions in the colorset rather than allowing Maya to interpolate/blur the colors across faces.

    Does this align with your understanding of how it should work? I'd love any feedback on improving the implementation!
  • Eric Chadwick
    That sounds lovely.

    I think glTF only supports one vertex color per vertex. So if there are different colors on neighboring faces then most exporters will only keep the first one it finds.
  • parashivbrl

    Thanks for the explanation! That's really helpful to understand how glTF handles vertex colors.

    Appreciate the insight!

  • Eric Chadwick
    Oops I was wrong, the spec says clients should support at least one vertex color. But there can be multiple vertex colors, either RGB or RGBA... https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#meshes
Sign In or Register to comment.