DIFFERENTIABLE 3D GAUSSIAN SPLATTING
3D高斯的优势:非结构化、可微、利用快速α混合进行渲染、无需法线
世界坐标系下,高斯由三维协方差矩阵和点(均值)μ表示:
给定视角变换矩阵W,相机坐标系下的协方差矩阵为:
其中J是投影变换的仿射近似雅可比矩阵
协方差矩阵只有在半正定的时候才具有物理意义,而如果直接对协方差矩阵使用梯度下降优化,很难保证矩阵的合理性。
由于协方差矩阵是用来描述椭球的形状,因此可以用缩放矩阵S和旋转矩阵R来获得一个对应的协方差矩阵:
OPTIMIZATION WITH ADAPTIVE DENSITY CONTROL OF 3D GAUSSIANS
Optimization
优化的参数:位置p,α,协方差矩阵,球谐函数系数
Adaptive Control of Gaussians
we densify every 100 iterations and remove any Gaussians that are essentially transparent, i.e., with 𝛼 less than a threshold 𝜖𝛼 .
we densify Gaussians with an average magnitude of view-space position gradients above a threshold 𝜏pos, which we set to 0.0002 in our tests.
Similar to other volumetric representations, our optimization can get stuck with floaters close to the input cameras; in our case this may result in an unjustified increase in the Gaussian density.
An effective way to moderate the increase in the number of Gaussians is to set the 𝛼 value close to zero every 𝑁 = 3000 iterations.
FAST DIFFERENTIABLE RASTERIZER FOR GAUSSIANS
splitting the screen into 16×16 tiles
cull 3D Gaussians against the view frustum and each tile
We then instantiate each Gaussian according to the number of tiles they overlap and assign each instance a key that combines view space depth and tile ID.
sort Gaussians based on these keys using a single fast GPU Radix sort
After sorting Gaussians, we produce a list for each tile by identifying the first and last depth-sorted entry that splats to a given tile.
其他学习资源
旋转四元数:https://github.com/Krasjet/quaternion
原理讲解视频:https://space.bilibili.com/3494380627299296
代码讲解视频及注释代码:
https://space.bilibili.com/623475709
https://github.com/arclab-hku/comment_3DGS
viewer使用教程:https://blog.csdn.net/weixin_72914660/article/details/139239711