Files
filament/libs/gltfio/README.md
T
Philip Rideout 0ae83a6c97 gltfio: Rename all plugin classes to have "provider" suffix.
UbershaderLoader  => UbershaderProvider
    MaterialGenerator => JitShaderProvider
2022-06-06 16:25:02 -07:00

27 lines
1.4 KiB
Markdown

# Description
`gltfio` is a loader library that consumes `gltf` or `glb` content and produces Filament
objects. For usage details, see the docstring for `AssetLoader`.
gltfio has two plug-in interfaces, `TextureProvider` and `MaterialProvider`. Filament ships with
several ready-to-go implementations described below.
- `MaterialProvider` creates Filament materials in response to certain glTF requirements.
- [UbershaderProvider](#ubershaderloader) loads pre-built materials.
- `JitShaderProvider` builds materials at run time using the `filamat` library.
- `TextureProvider` creates and populates Filament `Texture` objects.
- `StbProvider` uses the STB library to read PNG and JPEG files.
- `Ktx2Provider` uses the BasisU library to read KTX2 files.
# UbershaderProvider
`UbershaderProvider` is a ready-to-go implementation of the `MaterialProvider` interface that should
be used in applications that need fast startup times. There is no material compilation that
occurs at run time, but the shaders might be relatively large and complex.
At load time, the ubershader loader consumes an *ubershader archive* which is a precompiled set of
materials bundled with formal descriptions of the glTF features that they support.
The `uberz` command line tool consumes a list of `.spec` and `.filamat` files and produces a single
`.uberz` file. For details on these two file formats, see the README in `libs/uberz`.