magnum-plugins icon indicating copy to clipboard operation
magnum-plugins copied to clipboard

Draco compression support in TinyGltfImporter

Open randykwarner opened this issue 6 years ago • 7 comments

The current version in magnum-plugins is 2.0.0 and the latest tinygltf is 2.4.1

// Version: // - v2.4.1 Fix some glTF object class does not have extensions and/or // extras property. // - v2.4.0 Experimental RapidJSON and C++14 support(Thanks to @jrkoone). // - v2.3.1 Set default value of minFilter and magFilter in Sampler to -1. // - v2.3.0 Modified Material representation according to glTF 2.0 schema // (and introduced TextureInfo class) // Change the behavior of Value::IsNumber. It return true either the // value is int or real. // - v2.2.0 Add loading 16bit PNG support. Add Sparse accessor support(Thanks // to @Ybalrid) // - v2.1.0 Add draco compression. // - v2.0.1 Add comparsion feature(Thanks to @Selmar). // - v2.0.0 glTF 2.0!.

randykwarner avatar Dec 09 '19 20:12 randykwarner

Hi,

is there a particular bugfix / feature in the newer versions that you need?

I'm planning to either switch to the RapidJSON version at some point or implement a lighter-weight importer based on cgltf instead. Besides that I don't want to be updating this dependency unless absolutely necessary. Many of the new features (16bit PNGs, sparse accessors) are already handled on the engine side, others are not used at all; Draco compression is unfortunately too huge to be bundled (it needs a bunch of other files).

mosra avatar Dec 10 '19 07:12 mosra

The draco compression was the thing I was hoping for.

Sent from my iPhone

On Dec 10, 2019, at 2:38 AM, Vladimír Vondruš [email protected] wrote:

 Hi,

is there a particular bugfix / feature in the newer versions that you need?

I'm planning to either switch to the RapidJSON version at some point or implement a lighter-weight importer based on cgltf instead. Besides that I don't want to be updating this dependency unless absolutely necessary. Many of the new features (16bit PNGs, sparse accessors) are already handled on the engine side, others are not used at all; Draco compression is unfortunately too huge to be bundled (it needs a bunch of other files).

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

randykwarner avatar Dec 10 '19 07:12 randykwarner

Ah :) What's your system? Looking around, I see Draco packaged for vcpkg and Homebrew, so that could be used I guess, plus I'd need to package it for ArchLinux at least... and then the plugin could depend on this as an external library.

mosra avatar Dec 10 '19 07:12 mosra

I'm using an Emscripten build right now.

Randy

On Tue, Dec 10, 2019 at 2:48 AM Vladimír Vondruš [email protected] wrote:

Ah :) What's your system? Looking around, I see Draco packaged for vcpkg and Homebrew, so that could be used I guess, plus I'd need to package it for ArchLinux at least... and then the plugin could depend on this as an external library.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/mosra/magnum-plugins/issues/75?email_source=notifications&email_token=AHHS5BJ35YHTCK6NW53WPJ3QX5CVZA5CNFSM4JYRHOHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGOJKBA#issuecomment-563909892, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHHS5BP3TQJ7FV7VYFMSSGDQX5CVZANCNFSM4JYRHOHA .

randykwarner avatar Dec 10 '19 18:12 randykwarner

Oh. That's probably the most unfortunate target platform for Draco, since it inflates your download by about half a megabyte just for the decoder. For context: https://twitter.com/zeuxcg/status/991516674472919041 and especially https://twitter.com/zeuxcg/status/991698007778246656 .

What I'm considering (and looking forward to) instead is integrating meshoptimizer / gltfpack (https://github.com/zeux/meshoptimizer). Also see the proposed MESHOPT_compression extension: https://github.com/KhronosGroup/glTF/pull/1702 .

mosra avatar Dec 18 '19 19:12 mosra

I did you guys the favor of updating tiny_gltf, since I need KHR_lights_punctual when importing files from Blender 2.8. https://github.com/mosra/magnum-plugins/pull/77

Squareys avatar Dec 19 '19 23:12 Squareys

As of 7345d789638edf39e9a7c062c27110ac2ffa75bc and 80028f6f130a41015184de7a8195b9827f66874d there's support for KHR_mesh_quantization, which is closely related to MESHOPT_compression.

mosra avatar Mar 28 '20 21:03 mosra