donmccurdy / donmccurdy/glTF-Transform
Simplify Draco and Meshopt compression implementations
- Dominant language
- TypeScript
- Stars
- 2k
- Forks
- 206
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 16
Description
**Meshopt**
Currently glTF Transform's Meshopt implementation has its own accessor writing method, and doesn't support VertexLayout options. I think possibly glTF Transform could just write Meshopt-compatible buffer view layouts by default, and simplify the Meshopt implementation accordingly.
- https://github.com/donmccurdy/glTF-Transform/pull/1384
***
**Draco**
The Draco implementation currently has to duplicate accessors in rare situations, leading to complex bugs. It may be worth a change to require pre-processing with `draco()`, and failing if Draco compression is attempted when that pre-processing has not been applied. Or other simplifications may be possible.
- https://github.com/donmccurdy/glTF-Transform/pull/1385
- https://github.com/donmccurdy/glTF-Transform/issues/1342
- Idea: Pre-process to ensure accessors are only reused in draco-compatible ways
- https://github.com/donmccurdy/glTF-Transform/issues/1370
- Idea: Pre-process to use uint32 indices, let draco do its thing
Contributor guide
Research direction
Start by reading the Meshopt and Draco implementation areas, then review PRs 1384 and 1385 and related issues 1342 and 1370. Determine whether preprocessing, default buffer-view layouts, or failure conditions should be required, and define acceptance criteria for simplifying both implementations without the reported accessor issues.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- computer-graphics
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100