mgsx-dev/gdx-gltf

The GlbExporter is missing.

bitdream opened this issue · 5 comments

The files from gltf exporter are not supported by Godot engine and lots of other engines...
Every time I have to convert them into glb by some external tools.
If this glb exporter is missing, what's the difference between this one and the old fbx-conv work flow?

The files from gltf exporter are not supported by Godot engine and lots of other engines...

What's the issue? I tested import in Blender and it works fine.

The files from gltf exporter are not supported by Godot engine and lots of other engines...

What's the issue? I tested import in Blender and it works fine.

It only can be imported correctly in Blender. That's the issue.
It can not be imported in Godot game engine or other online glTF viewers or Windows 3D model viewer.
one example here:
The glTF I exported with your gdx-glft:
https://drive.google.com/drive/folders/1b1d5DEFLxNjQ51YaUUKSpWuDO7nwTsUz?usp=sharing
The online viewer I used to import them:
https://gltf-viewer.donmccurdy.com/
And the error messages:

Validation report

  • Format: glTF 2.0
  • Generator: GDX glTF exporter 1.0
  • Stats:
    • 448 draw calls
    • 0 animations
    • 448 materials
    • 4816896 vertices
    • 5376 triangles
  • Extensions:
    • None

Report generated byKhronosGroup/glTF-Validator 2.0.0-dev.3.9.

Error Message Pointer
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/0/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/0/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/1/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/1/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/2/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/2/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/3/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/3/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/4/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/4/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/5/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/5/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/6/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/6/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/7/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/7/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/8/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/8/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/9/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/9/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/10/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/10/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/11/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/11/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/12/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/12/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/13/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/13/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/14/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/14/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/15/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/15/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/16/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/16/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/17/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/17/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/18/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/18/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/19/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/19/indices
Validation report Format: glTF 2.0 Generator: GDX glTF exporter 1.0 Stats: 448 draw calls 0 animations 448 materials 4816896 vertices 5376 triangles Extensions: None Report generated by[KhronosGroup/glTF-Validator](https://github.com/KhronosGroup/glTF-Validator/) 2.0.0-dev.3.9.

Error Message Pointer
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/0/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/0/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/1/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/1/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/2/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/2/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/3/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/3/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/4/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/4/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/5/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/5/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/6/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/6/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/7/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/7/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/8/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/8/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/9/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/9/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/10/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/10/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/11/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/11/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/12/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/12/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/13/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/13/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/14/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/14/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/15/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/15/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/16/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/16/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/17/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/17/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/18/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/18/indices
MESH_PRIMITIVE_POSITION_ACCESSOR_WITHOUT_BOUNDS accessor.min and accessor.max must be defined for POSITION attribute accessor. /meshes/0/primitives/19/attributes/POSITION
MESH_PRIMITIVE_INDICES_ACCESSOR_INVALID_FORMAT Invalid indices accessor format '{SCALAR, SHORT}'. Must be one of ('{SCALAR, UNSIGNED_BYTE}', '{SCALAR, UNSIGNED_SHORT}', '{SCALAR, UNSIGNED_INT}'). /meshes/0/primitives/19/indices

it should be OK now

Thanks. The issue is indeed fixed.
But please come back to the other question: do you have plan to add the GlbExporter in near future?

do you have plan to add the GlbExporter in near future?

No, this format is not so good (eg. can't share textures with other files, slower loading) so i don't plan to invest time in it.