KhronosGroup / KhronosGroup/glTF

GLB file size is limited to 2^32 bytes because of uint32 length

Open
#2,114 11 comments 1 reaction 0 assignees View on GitHub
Dominant language
HTML
Stars
7.8k
Forks
1.2k
Avg merge
17h 26m
Merged PRs (30d)
5

Description

The GLB file size is currently limited to `2^32` bytes (approximately `4 GB`) which could be limiting for some applications. For example we would like to store a mesh sequence into the GLTF format, which quickly exceed the `2^32` byte limit.

It is understandable to limit the individual chunk size to `2^32`, but limiting the total file size to `2^32` seems to restrict future applications. Is there a technical limitation to only support datatypes with size of an `unsigned int`? Or is there a workaround for this limitation that integrates everything into a single file?

Here the current binary protocol definition of a GLB file:
![glbbinary](https://user-images.githubusercontent.com/5220162/151696543-b5923c98-076e-4715-b21f-1b05499dd8d8.png)
*Source: [Binary glTF Layout](https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html#binary-gltf-layout)*

Contributor guide

Open the contributing guide

Research direction

Start with the Binary glTF Layout section of the linked glTF 2.0 specification and examine how the uint32 fields constrain chunk and total file sizes. A complete outcome would need to establish whether larger single-file GLB assets are technically feasible or document a supported workaround; the issue names no repository files or tests.

Written by the indexing model from the issue text.

Assessment

Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.