USD Light Field Schemas#

This extension provides USD schemas for representing light field data, with a focus on particle-based representations such as 3D Gaussian Splats.

Overview#

The USD Light Field schemas define a flexible framework for representing various types of particle field data in USD. The schema is designed to be extensible and support different representations through the use of applied API schemas.

Key Concepts#

ParticleField#

The base prim type for representing particle-based light field data. It provides a container for various particle attributes and behaviors defined through applied API schemas.

ParticleField3DGaussianSplat#

A concrete implementation representing 3D Gaussian Splats as described in the paper “3D Gaussian Splatting for Real-Time Radiance Field Rendering” (https://arxiv.org/abs/2308.04079).

This prim type automatically includes the following API schemas:

  • ParticleFieldPositionAttributeAPI

  • ParticleFieldOrientationAttributeAPI

  • ParticleFieldScaleAttributeAPI

  • ParticleFieldOpacityAttributeAPI

  • ParticleFieldKernelGaussianEllipsoidAPI

  • ParticleFieldSphericalHarmonicsAttributeAPI

Applied API Schemas#

The schemas are modular and organized into different categories:

Position APIs#

  • ParticleFieldPositionBaseAPI: Base class for position-related APIs

  • ParticleFieldPositionAttributeAPI: Provides position attributes for particles

Attribute APIs#

  • ParticleFieldOrientationAttributeAPI: Defines particle orientation (quaternions)

  • ParticleFieldScaleAttributeAPI: Defines particle scale

  • ParticleFieldOpacityAttributeAPI: Defines particle opacity

Kernel APIs#

  • ParticleFieldKernelBaseAPI: Base class for kernel definition APIs

  • ParticleFieldKernelGaussianEllipsoidAPI: Gaussian ellipsoid kernel

  • ParticleFieldKernelGaussianSurfletAPI: Gaussian surflet kernel

  • ParticleFieldKernelConstantSurfletAPI: Constant surflet kernel

Radiance APIs#

  • ParticleFieldRadianceBaseAPI: Base class for radiance definition APIs

  • ParticleFieldSphericalHarmonicsAttributeAPI: Spherical harmonics radiance representation

  • ParticleFieldSphericalBetaAttributeAPI: Spherical beta radiance representation

Usage#

To use these schemas in your USD stage:

from pxr import Usd, UsdGeom

# Create a stage
stage = Usd.Stage.CreateInMemory()

# Create a 3D Gaussian Splat prim
splat = stage.DefinePrim("/MySplat", "ParticleField3DGaussianSplat")

# Access attributes
positions_attr = splat.GetAttribute("positions")
orientations_attr = splat.GetAttribute("orientations")
scales_attr = splat.GetAttribute("scales")
opacities_attr = splat.GetAttribute("opacities")

Schema Details#

For detailed information about the schemas, including all attributes and their types, please refer to the schema.usda file in the schemas/usd_particle_field directory.