The idea behind 3D Gaussian Splatting is to represent the scene using a set of three-dimensional Gaussian primitives.
3D Gaussians are based on the three-dimensional extension of one-dimensional Gaussians.
Three-dimensional Gaussians are defined by a covariance matrix (in world coordinates) and centered at the point (mean)
:
| (10.119) |
Before it can be rendered, this Gaussian must first be transformed into the camera coordinate system and then projected onto the image plane. Since perspective projection is nonlinear, a local approximation is introduced by linearizing the projection using its Jacobian . The three-dimensional covariance is thus projected into a two-dimensional covariance
:
| (10.120) |
| (10.121) |
In (KKLD23), a further step is taken: because parameterizing a covariance matrix (positive semidefinite) is difficult, one starts from the fact that the matrix defines a family of level ellipsoids. It is therefore possible to use a minimal parameterization based on the dimensions and orientation of this ellipsoid, rather than treating all the matrix elements separately.
The idea is to use a scale matrix
(3 DOF) and a rotation matrix
(another 3 DOF, but normally represented by a quaternion; see Section A.3):
| (10.122) |
Finally, each Gaussian may be associated with an RGB color or with a direction-dependent radiance representation using spherical harmonics (Spherical Harmonics, SH), in addition to the opacity parameter , analogous to that used in NeRF.
In practice, the Gaussians are rendered in depth order, from nearest to farthest, progressively compositing their radiometric contributions10.8.