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

Investigate Draco as a mesh/point compression extension #816

Closed
pjcozzi opened this issue Jan 16, 2017 · 3 comments
Closed

Investigate Draco as a mesh/point compression extension #816

pjcozzi opened this issue Jan 16, 2017 · 3 comments

Comments

@pjcozzi
Copy link
Member

pjcozzi commented Jan 16, 2017

https://opensource.googleblog.com/2017/01/introducing-draco-compression-for-3d.html

Decode time doesn't look great, but perhaps this is similar to Open3DGC, #398

@mlimper do you have any experience here?

@mlimper
Copy link
Contributor

mlimper commented Jan 18, 2017

No experience yet, just learning about it.

Looks like they are also able to compress mesh connectivity with two different methods, where one of the is the "classic" Edgebreaker algorithm (encoder code here)

From the sources:

// The mesh connectivity data can be encoded using two modes that are controlled
// using a global encoder options flag called "compress_connectivity"
// 1. When "compress_connectivity" == true:
//      All point ids are first delta coded and then compressed using an entropy
//      coding.
// 2. When "compress_connectivity" == false:
//      All point ids are encoded directly using either 8, 16, or 32 bits per
//      value based on the maximum point id value.

Getting a reasonable local ordering and then storing deta via deltas with some entropy coding is a pretty established approach, but you'll always have to make sure that your decoding will still fast enough to be worth the effort. WebGL-loader previously used zigzag coding of the deltas and UTF8 encoding to get some cheap variable-length coding method that already works well in the browser, as it is supported natively (you probably know the OpenGL insights article). Here, it looks like they are using Emscripten to get a very optimized, fast decoder in JS.

@pjcozzi
Copy link
Member Author

pjcozzi commented Mar 8, 2017

CC @jbrettle @FrankGalligan

@pjcozzi
Copy link
Member Author

pjcozzi commented Mar 14, 2017

Replaced with #874.

@pjcozzi pjcozzi closed this as completed Mar 14, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants