Derive gaussian splat SH order from resource layout

This commit is contained in:
2026-04-11 06:57:47 +08:00
parent 785377bc9b
commit b3acb5afc2
5 changed files with 82 additions and 1 deletions

View File

@@ -43,6 +43,11 @@ enum class GaussianSplatSectionFormat : Core::uint32 {
};
constexpr Core::uint32 kGaussianSplatSHCoefficientCount = 45;
constexpr Core::uint32 kGaussianSplatSHColorChannelCount = 3;
constexpr Core::uint32 kGaussianSplatMaxSHOrder = 3;
Core::uint32 ResolveGaussianSplatSHOrderFromCoefficientCount(Core::uint32 coefficientCount);
Core::uint32 ResolveGaussianSplatSHOrderFromSectionStride(Core::uint32 elementStride);
struct GaussianSplatPositionRecord {
Math::Vector3 position = Math::Vector3::Zero();
@@ -113,6 +118,7 @@ public:
GaussianSplatSectionFormat GetOtherFormat() const { return m_metadata.otherFormat; }
GaussianSplatSectionFormat GetColorFormat() const { return m_metadata.colorFormat; }
GaussianSplatSectionFormat GetSHFormat() const { return m_metadata.shFormat; }
Core::uint32 GetSHOrder() const;
GaussianSplatSectionFormat GetChunkFormat() const { return m_metadata.chunkFormat; }
GaussianSplatSectionFormat GetCameraFormat() const { return m_metadata.cameraFormat; }
const Containers::Array<GaussianSplatSection>& GetSections() const { return m_sections; }