Conversation
|
I renamed the And I extended the viewer application to handle glTF that use the base extension or the SPZ extension. (The implementation is a bit quirky right now: It reads the glTF, checks whether it uses the extension or not, and then loads it again, either with the "base loader" or the "spz loader". A solution where the "base loader" can load both would be cleaner in some way, but would require the The current state of the application is attached here, just for reference: jsplat-app-0.0.1-SNAPSHOT-jar-with-dependencies-2025-11-14.jar.zip I'll just merge this as it is for now. |
The PR for the Gaussian splat support in glTF went through a few iterations. Some of the most important changes have been...
There is still some ongoing discussion about "What is 'color'?" and "What are 'spherical hamonics'?", and "What is this actually all about?" - this is tracked in KhronosGroup/glTF#2539
This PR updates the JSplat libraries to offer a dedicated reader/writer for splats that are stored in glTF using the
KHR_gaussian_splattingbase extension, without SPZ compression.The implementation is not yet complete (e.g. quantized attributes are not yet supported). But the
JSplatRoundtripsexample (which is only an internal test, not specified in any way, and changing constantly!) can already read/convert/write all the splat formats, which now areGSPLAT,PLY_ASCII,PLY_BINARY_LE,PLY_BINARY_BE,SPZ,SPZ_GLTF, and (new:)GLTF.The viewer application has not been updated yet. This will require some tweaking: When loading a glTF with splats, it's not immediately clear whether they are SPZ-compressed or not. I'll have to check where exactly that decision can be made. (I'd like to avoid a dependency from the glTF part to the glTF-SPZ part, but will sort this out somehow).
In the context of all this, I might rename the
jsplat-io-spz-gltfproject tojsplat-io-gltf-spz, which makes more sense in view of the extension structure and possible future extensions/compression methods that may be added to glTF. Good thing that all this is happening in version0.0.1-SNAPSHOT, right? I can do whatever I want 😎