The KHR_gaussian_splatting spec (https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_gaussian_splatting) has this note about coordinate systems that I personally find rather unclear:
For training software and exporters, it is recommended that the Gaussians are trained within the glTF coordinate system when targeting glTF. Otherwise, when converting pre-trained data from other coordinate systems into the glTF coordinate system, the positions, quaternions and spherical harmonics will have to be rotated on load.
(emphasis on the confusing "rotated on load" by me)
I was looking into what coordinate system the splat data is in, and was expecting to find a note that defines that as the glTF coordinate system. I first thought that this is implicit as this is a glTF extension specification, but that note "rotated on load" now has me confused. Does that mean it's totally valid if someone embeds arbitrarily oriented data in their glTF, and then has to tell the consuming app what the correct orientation for load is? Or is that then defined per extra extension (e.g. #2531)?
cc @weegeekps @lexaknyazev
The KHR_gaussian_splatting spec (https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_gaussian_splatting) has this note about coordinate systems that I personally find rather unclear:
(emphasis on the confusing "rotated on load" by me)
I was looking into what coordinate system the splat data is in, and was expecting to find a note that defines that as the glTF coordinate system. I first thought that this is implicit as this is a glTF extension specification, but that note "rotated on load" now has me confused. Does that mean it's totally valid if someone embeds arbitrarily oriented data in their glTF, and then has to tell the consuming app what the correct orientation for load is? Or is that then defined per extra extension (e.g. #2531)?
cc @weegeekps @lexaknyazev