Skip to content

Conversation

@zeux
Copy link
Owner

@zeux zeux commented Jan 25, 2026

When compiling against latest Basis Universal (2.0+), we can now use XUASTC compression. It supports variable block sizes and a much larger gamut of quality settings from the perspective of the resulting file size, using DCT to compress the block data with arith/Zstd on top.

This format is currently not supported by any glTF extensions; as such, this might need refinements if this happens. For now, the block size is fixed at 4x4; this could be controlled via quality settings or a separate future command line argument.

The quality curve for now is somewhat approximate and based on the target size; the quality impact has not been analyzed yet.

texture_quality_chart

When compiling against latest Basis Universal (2.0+), we can now use
XUASTC compression. It supports variable block sizes and a much larger
gamut of quality settings from the perspective of the resulting file
size, using DCT to compress the block data with arith/Zstd on top.

This format is currently not supported by any glTF extensions; as such,
this might need refinements if this happens. For now, the block size is
fixed at 4x4; this could be controlled via quality settings or a
separate future command line argument.

The quality curve for now is somewhat approximate and based on the
target size; the quality impact has not been analyzed yet.
@zeux
Copy link
Owner Author

zeux commented Jan 28, 2026

Per a recent update to Basis readme:

Note as of Jan. 2026 we are working with Khronos to standardize the UASTC HDR 6x6 intermediate and XUASTC LDR codec data embedded into the KTX2 file format. We expect some KTX2 file format changes to be merged in within a month or so. .basis files shouldn't be impacted.

I'll keep this PR open for now; would assume a later Basis library version would be required plus a new extension.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant