Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draco compression support in TinyGltfImporter #75

Open
randykwarner opened this issue Dec 9, 2019 · 7 comments
Open

Draco compression support in TinyGltfImporter #75

randykwarner opened this issue Dec 9, 2019 · 7 comments

Comments

@randykwarner
Copy link

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!.

@mosra mosra added this to the 2019.1c milestone Dec 10, 2019
@mosra
Copy link
Owner

mosra commented Dec 10, 2019

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).

@randykwarner
Copy link
Author

randykwarner commented Dec 10, 2019 via email

@mosra
Copy link
Owner

mosra commented Dec 10, 2019

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.

@randykwarner
Copy link
Author

randykwarner commented Dec 10, 2019 via email

@mosra
Copy link
Owner

mosra commented Dec 18, 2019

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: KhronosGroup/glTF#1702 .

@Squareys
Copy link
Contributor

I did you guys the favor of updating tiny_gltf, since I need KHR_lights_punctual when importing files from Blender 2.8.
#77

@mosra
Copy link
Owner

mosra commented Mar 28, 2020

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

@mosra mosra changed the title Upgrade tinygltf to latest version Draco compression support in TinyGltfImporter Jun 25, 2020
@mosra mosra removed this from the 2020.0a milestone Jun 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants