glTFast icon indicating copy to clipboard operation
glTFast copied to clipboard

glTF Export Phase 2

Open atteneder opened this issue 2 years ago • 3 comments

glTF Export has landed in 4.4.0. Now it's time get it out of experimental

TODO

  • [x] Run-time export via API
    • [x] Save to file
    • [x] Save to stream
  • [x] Interfaces
    • [x] Editor context menu export of scene/objects
  • [x] Documentation
  • [ ] Optimize output for size
    • [x] node transform (skip default values)
    • [ ] Skip properties technically not required (like names)
    • [ ] (Option for) Minimized JSON
    • [ ] Precision rounding (e.g. 0.2 instead of 0.199999993)
  • [x] Buffer layout
    • [x] Separate (non-interleaved; required for meshopt and 2019 LTS support)
  • [ ] Materials
    • [ ] Shaders
      • [ ] BiRP Specular-Glossiness
      • [x] URP Lit
      • [x] URP Unlit
      • [x] HDRP Lit
      • [x] HDRP Unlit
    • [x] Textures
      • [x] Samplers
        • [x] fix redundant glTF textures
      • [x] Occlusion (ORM swizzle)
      • [x] Emissive
      • [x] MetallicRoughness (ORM swizzle)
  • [ ] Tests
    • [ ] ~80% code coverage
    • [x] Validator Integration
  • [ ] Skinning (weights and joints)
  • [ ] Morph targets
  • [ ] Animation
  • [ ] Expose Export Settings
    • [ ] Texture compression (Auto/Always PNG)
    • [ ] Jpeg compression level
    • [x] Separate .gltf/.bin or Binary
    • [x] Active in hierarchy only

Long-Term Features

  • [ ] Async export
  • [ ] Mesh quantization
  • [ ] Sparse accessors
  • [ ] GPU instancing
  • [ ] Buffer layout
    • [ ] (Ideal) Unity layout
  • [ ] Compression
    • [x] Draco mesh-level compression
    • [ ] meshopt bufferview-level compression
    • [ ] KTX2/BasisU texture compression
  • [ ] Custom data in extras property
  • [ ] XMP meta data
  • [ ] Materials
    • [ ] TransmissionFactor/Texture
    • [x] Clear coat
    • [ ] Specular
    • [ ] Sheen
    • [ ] Volume
    • [ ] IOR
    • [ ] Specular/Glossiness workflow
    • [ ] Variants
  • [x] Punctual lights
  • [x] Camera
  • [ ] DOTS export entity hierarchies

atteneder avatar Oct 26 '21 19:10 atteneder

Should I make an extra issue about GPU Instancing support? I want to use instanced meshes with an imported GLTF to save on file sizes.

ROBYER1 avatar Sep 06 '22 13:09 ROBYER1

Should I make an extra issue about GPU Instancing support? I want to use instanced meshes with an imported GLTF to save on file sizes.

So you want the glTFast export to recognize Renderers with identical Meshes/Materials, so that it not only re-uses the Mesh, but adds a EXT_mesh_gpu_instancing extension, minimizing the instance overhead, right?

Yes, I'd suggest to make a dedicated issue, if it is of importance to you.

atteneder avatar Sep 06 '22 14:09 atteneder

Yes, I'd suggest to make a dedicated issue, if it is of importance to you.

I've set one up here https://github.com/atteneder/glTFast/issues/461

ROBYER1 avatar Sep 06 '22 14:09 ROBYER1