donmccurdy / donmccurdy/glTF-Transform

Simplify Draco and Meshopt compression implementations

Open
#1,386 0 comments 0 reactions 0 assignees View on GitHub
code health package:extensions
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.