Basis is an offline codec, while this one is an online or real-time codec. While Spark claims a comparable performance to Basis for some cases, you should expect some quality degradation---acceptable or not---in general.
Basis also drops quality on the floor by targeting subsets (ETC1s and UASTC) in hopes of having a "common transcodeable subset". In practice, a number of runtime transcoders seem to just decode to RGBA and then fully re-encode anyway, but on the CPU.
Spark allows you to encode textures that are generated at runtime. This enables the use of texture compression in cases that were not possible before, for example:
- UGC Textures allow users to customize their avatars or modify them based on gameplay.
- Virtual Texturing makes it possible to composite terrain layers and apply decals.
- Procedural textures can be much more compact and respond to environment changes dynamically.
Spark can also be used in combination with traditional offline codecs optimized transmission and storage. AVIF and JXL are great options for this, but need to be decompressed in memory, thus their use is very expensive at runtime. Spark allows you to transcode from these formats into GPU optimized representations.
WebGPU is not supported yet, but HypeHype, one of our clients, has been able to use our codecs successfully under WebGPU. That said, this needs to be tested more thoroughly under a variety of browsers and devices. We will provide official support for WebGPU in an upcoming release.
How does this compare to Basis Universal encoding?
https://github.com/BinomialLLC/basis_universal
Basis is an offline codec, while this one is an online or real-time codec. While Spark claims a comparable performance to Basis for some cases, you should expect some quality degradation---acceptable or not---in general.
Basis also drops quality on the floor by targeting subsets (ETC1s and UASTC) in hopes of having a "common transcodeable subset". In practice, a number of runtime transcoders seem to just decode to RGBA and then fully re-encode anyway, but on the CPU.
Basis is an offline codec.
Spark allows you to encode textures that are generated at runtime. This enables the use of texture compression in cases that were not possible before, for example:
- UGC Textures allow users to customize their avatars or modify them based on gameplay. - Virtual Texturing makes it possible to composite terrain layers and apply decals. - Procedural textures can be much more compact and respond to environment changes dynamically.
Spark can also be used in combination with traditional offline codecs optimized transmission and storage. AVIF and JXL are great options for this, but need to be decompressed in memory, thus their use is very expensive at runtime. Spark allows you to transcode from these formats into GPU optimized representations.
Is there a webgpu version of this?
WebGPU is not supported yet, but HypeHype, one of our clients, has been able to use our codecs successfully under WebGPU. That said, this needs to be tested more thoroughly under a variety of browsers and devices. We will provide official support for WebGPU in an upcoming release.
[dead]
[dead]
[dead]
[flagged]
Huh? How is this related?
It’s not; it’s spam.