NVIDIAGameWorks / kaolin

A PyTorch Library for Accelerating 3D Deep Learning Research
Apache License 2.0
4.41k stars 540 forks source link

AttributeError raised when loading glTF with mesh primitives that aren't type 4 / triangles #808

Open artgillespie opened 1 month ago

artgillespie commented 1 month ago

In io/gltf.py:293 skip_mesh is left as True when encountering a mesh primitive that isn't type 4/triangles.

As a result, at io/gltf.py:338 None is appended to meshes.

At io/gltf.py:375 the returned meshes list is enumerated and has_attribute is called on each item without checking whether it's None, leading to an AttributeError exception raised to the caller.

How best to handle this is really a design question for the library maintainers, but I think clients should either get a sensible exception explaining that the glTF has unsupported primitive modes, or be given the opportunity to handle None meshes.

shumash commented 1 month ago

Thank you for your note. To help us address this, would you be able to share a sample gltf file that causes this issue?

(this can be private for internal testing purposes only)