This is the official Khronos glTF 2.0 image and geometry compression project using WebGL: glTF-Compressor
Image compression using KTX 2, JPEG, PNG and WebP.
Geometry compression using DRACO, MeshOpt and MeshQuantization.
Developed by Phasmatic. Supported by the Khronos Group. Original code based on the glTF-Sample Viewer project.
On top of existing glTF Sample Viewer features, this project adds functionality for:
- EXT_texture_webp
- EXT_meshopt_compression
- KHR_draco_mesh_compression
- KHR_mesh_quantization
- Images preview
- 3D mesh comparison (original/compressed images and geometry)
- 2D image comparison (original/compressed images) with zoom operation
- KTX 2 encoding
- JPEG encoding
- PNG encoding
- WebP encoding
- DRACO compression
- MeshOpt compression
- Mesh Quantization options
- Model export (gltf, gltf-embedded, glb)
For local usage and debugging, please follow these instructions:
-
Make sure Git LFS is installed.
-
Checkout the
main
branch -
Pull the submodules for the required glTF sample models and environments
git submodule update --init --recursive
You can find an example application for the glTF-Compressor in the app_web subdirectory of the glTF-Compressor repository. A live demo can be found at https://phasmatic3d.github.io/glTF-Sample-Viewer-KTX-demo/.
Running a local version
Open a terminal window in the repository root an run the following commands
cd app_web
npm install
npm run dev
now you can access glTF-Compressor with Chrome or Firefox at the URL http://localhost:8000