1. Opacity α \alpha α
Role:
- Opacity controls the contribution of each point or splat to the final rendered image. In 3DGS, each point is treated as a Gaussian blob, and its opacity determines how “transparent” or “solid” that blob appears when composited onto the final image.
Mathematics:
- Typically, opacity is represented by α ( i ) ∈ [ 0 , 1 ] \alpha^{(i)} \in [0, 1] α(i)∈[0,1], where i i i is the index of the point. A value of 1 means the point is fully opaque, while 0 means the point is completely transparent.
- Opacity is often used in alpha compositing when rendering the point cloud. For example, in front-to-back compositing, the contribution of each point to the final pixel color is modulated by its opacity:
C final = ∑ i = 1 N α ( i ) C i ∏ j < i ( 1 − α ( j ) ) C_{\text{final}} = \sum_{i=1}^{N} \alpha^{(i)} C_i \prod_{j < i} (1 - \alpha^{(j)}) Cfinal=i=1∑Nα(i)Cij<i∏(1−α(j))
where C final C_{\text{final}} Cfinal is the final color, C i C_i Ci is the color of the i i i-th point, and α ( i ) \alpha^{(i)} α(i) is the opacity of the (i)-th point.
Purpose in Rendering:
- Opacity helps to achieve smooth transitions between points and can prevent harsh, blocky artifacts when points overlap. It also allows for rendering semi-transparent surfaces, such as glass or translucent materials.
2. Means μ \mathbf{\mu} μ
Role:
- The means are the 3D coordinates of the center of each Gaussian. They define where each point is positioned in the 3D space. This feature is fundamental for spatial organization and for correctly placing the point cloud in the scene.
Mathematics:
- Each point i i i in the point cloud is associated with a 3D mean vector μ ( i ) = ( x i , y i , z i ) \mathbf{\mu}^{(i)} = (x_i, y_i, z_i) μ(i)=(xi,yi,zi). This represents the center of the Gaussian distribution in 3D space:
f ( x ) = exp ( − 1 2 ( x − μ ( i ) ) ⊤ Σ − 1 ( x − μ ( i ) ) ) f(\mathbf{x}) = \exp\left( -\frac{1}{2} (\mathbf{x} - \mathbf{\mu}^{(i)})^\top \Sigma^{-1} (\mathbf{x} - \mathbf{\mu}^{(i)}) \right) f(x)=exp(−21(x−μ(i))⊤Σ−1(x−μ(i)))
where x = ( x , y , z ) \mathbf{x} = (x, y, z) x=(x,y,z) is a point in space, and Σ \Sigma Σ is the covariance matrix that defines the shape and orientation of the Gaussian.
Purpose in Rendering:
- The means define the spatial layout of the points. In 3D reconstruction, the correct placement of these means ensures that the shape of the object or scene is accurately represented.
3. Feature dc
(Direct Component)
Role:
- The direct component (
dc
) represents the base color or albedo of a point. It captures the color information of the point under direct illumination, without accounting for complex effects like reflections or shadows.
Mathematics:
-
The direct component can be seen as a vector c i ∈ R 3 \mathbf{c}_i \in \mathbb{R}^3 ci∈R3 (for RGB color) or R 4 \mathbb{R}^4 R4 (for RGBA color), where each component represents the red, green, and blue (and possibly alpha) channels of the point’s color.
If combined with opacity, the final contribution of point i i i to the rendered image could be:
C final = α ( i ) c i C_{\text{final}} = \alpha^{(i)} \mathbf{c}_i Cfinal=α(i)ci
where c i \mathbf{c}_i ci is the direct color of the point.
Purpose in Rendering:
- The direct component provides the fundamental color information for the point. It is often the result of texture mapping or material properties and is essential for determining the final appearance of the point or splat.
4. Feature rest
(Residual Component)
Role:
- The residual component (
rest
) captures additional lighting or shading information that is not part of the direct component. This can include effects like ambient occlusion, indirect lighting, or high-frequency details that improve the realism of the rendered scene.
Mathematics:
- Mathematically, this is an additional feature vector that adds more detail to the point’s color, beyond what is captured by the direct component. It could be represented as r i ∈ R 3 \mathbf{r}_i \in \mathbb{R}^3 ri∈R3 or R 4 \mathbb{R}^4 R4, similar to c i \mathbf{c}_i ci, and it would be combined with the direct component:
c final = c i + r i \mathbf{c}_{\text{final}} = \mathbf{c}_i + \mathbf{r}_i cfinal=ci+ri - The residual component could also represent non-color information, such as higher-order lighting effects, which are added on top of the direct lighting.
Purpose in Rendering:
- This feature is crucial for adding realism to the render. It accounts for effects like soft shadows, indirect lighting, and other complex lighting phenomena that are not captured by the direct color component alone.
5. Scales s \mathbf{s} s
Role:
- The scales control the size and spread of the Gaussian for each point. They define how large or small the Gaussian blob is and how much area it covers in 3D space.
Mathematics:
-
The scale of a Gaussian distribution determines the spread of the point in space. In the isotropic case, each point has a scalar scale s i s_i si, and the Gaussian distribution is spherical. In the anisotropic case, the scale is a vector s i = ( s x , s y , s z ) \mathbf{s}_i = (s_x, s_y, s_z) si=(sx,sy,sz), which represents different spreads in each dimension.
The general form of the Gaussian function would be:
f ( x ) = exp ( − 1 2 ( x − μ i ) ⊤ Σ i − 1 ( x − μ i ) ) f(\mathbf{x}) = \exp\left( -\frac{1}{2} (\mathbf{x} - \mathbf{\mu}_i)^\top \Sigma_i^{-1} (\mathbf{x} - \mathbf{\mu}_i) \right) f(x)=exp(−21(x−μi)⊤Σi−1(x−μi))
where Σ i \Sigma_i Σi is the covariance matrix, which can be defined in terms of the scales. For an anisotropic Gaussian:
Σ i = diag ( s x 2 , s y 2 , s z 2 ) \Sigma_i = \text{diag}(s_x^2, s_y^2, s_z^2) Σi=diag(sx2,sy2,sz2)
In isotropic cases, Σ i = s i 2 I \Sigma_i = s_i^2 I Σi=si2I, where I I I is the identity matrix.
Purpose in Rendering:
- The scales determine the smoothness or sharpness of the point cloud. Larger scales produce smoother transitions between points, while smaller scales produce sharper details. This affects how well the point cloud approximates the surface of the object being represented.
6. Quaternions (quats
) q \mathbf{q} q
Role:
- Quaternions represent the orientation of each Gaussian in 3D space. When the Gaussian is anisotropic, its orientation must be specified to ensure it aligns with the surface or direction of the point cloud correctly.
Mathematics:
-
A quaternion q i = ( w i , x i , y i , z i ) \mathbf{q}_i = (w_i, x_i, y_i, z_i) qi=(wi,xi,yi,zi) is a four-dimensional vector used to represent rotation in 3D space. Quaternions avoid the gimbal lock problem that can occur with Euler angles and provide smooth interpolations for rotations (known as slerp or spherical linear interpolation).
To rotate a point v = ( x , y , z ) \mathbf{v} = (x, y, z) v=(x,y,z) by quaternion q \mathbf{q} q, the operation is:
v rotated = q v q − 1 \mathbf{v}_{\text{rotated}} = \mathbf{q} \mathbf{v} \mathbf{q}^{-1} vrotated=qvq−1where q − 1 \mathbf{q}^{-1} q−1 is the inverse of the quaternion q \mathbf{q} q.
Purpose in Rendering:
- Quaternions are crucial when working with anisotropic Gaussians, where the Gaussian blobs must be rotated to align with the surface or the features of the object. Proper orientation ensures that the splats align with the surface normals or other directional properties of the point cloud.
Summary of Features with Mathematical Aspects:
Feature | Description | Mathematical Representation |
---|---|---|
Opacity | Transparency of the point | α ( i ) ∈ [ 0 , 1 ] \alpha^{(i)} \in [0, 1] α(i)∈[0,1] |
Means | 3D position of the point | μ ( i ) = ( x i , y i , z i ) \mathbf{\mu}^{(i)} = (x_i, y_i, z_i) μ(i)=(xi,yi,zi) |
Feature dc | Direct color or albedo of the point | c i ∈ R 3 \mathbf{c}_i \in \mathbb{R}^3 ci∈R3 (RGB) or R 4 \mathbb{R}^4 R4 (RGBA) |
Feature rest | Residual information (indirect lighting, shading) | r i ∈ R 3 \mathbf{r}_i \in \mathbb{R}^3 ri∈R3 or R 4 \mathbb{R}^4 R4 |
Scales | Size or spread of the Gaussian | s i = ( s x , s y , s z ) \mathbf{s}_i = (s_x, s_y, s_z) si=(sx,sy,sz) or s i s_i si |
Quats | Orientation of the Gaussian in 3D space | q i = ( w i , x i , y i , z i ) \mathbf{q}_i = (w_i, x_i, y_i, z_i) qi=(wi,xi,yi,zi) |