Implemented KHR_gaussian_splatting extension #284
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements reading/writing of the KHR_gaussian_splatting extension, which has recently entered the release candidate extension phase.
This extension allows one to indicate that a primitive is meant to be interpreted as a collection of Gaussian splats. The extension object contains a handful of properties that support the interpretation of the primitive's attributes as a Gaussian splat cloud. These properties are all of string type, since it is expected that future extensions (which have already begun to emerge) will add additional values. For this reason, these properties should not be converted to close-ended enumerations.
Most of the work to support this extension is done by the importer/renderer: extension-scoped primitive attributes store Gaussian-specific data (such as opacity, scale, and spherical harmonics coefficients for storing viewpoint-dependent colors). The extension object itself is very lightweight, consisting of metadata that affects how the Gaussians should be rendered.
This PR will remain a draft until the extension is fully ratified by Khronos. Any comments welcome in the meantime.