Open robofar opened 5 months ago
Hi, n_touched checks if the Gaussian was rasterised before we reach the median depth https://github.com/rmurai0610/diff-gaussian-rasterization-w-pose/blob/main/cuda_rasterizer/forward.cu#L370 So even if the Gaussian is visible (in terms of radii) it may not be counted towards n_touched
So, for n_touched, Gaussians whose depth < median_depth, they will be labeled with 1 in n_touched tensor.
For radii mask, all Gaussians in that are visible in viewpoint frustum will have value 1 in radii mask tensor?
n_touched counts it number of pixels which renders the Gaussian before the depth reaches median depth, so it will be greater than 0. And yes, for the radii mask that's right. However, this only checks the radii of the projected Gaussian and does not take into account the occlusion like n_touched.
Function
render
returns following dictionary:If I understood correctly:
radii
- represent radius in pixel of 3D Gaussian when splatted onto the image plane (from specific viewpoint ?)n_touched
- number of pixels that touched this Gaussian (from specific viewpoint ?)Can someone tell me what would be difference between these two expressions:
radii > 0
n_touched > 0
So what
0
represents forradii
andn_touched
? I thought they both represent number of visible Gaussians from viewpoint, but it seems they do not. For exampletorch.sum(radii>0)
andtorch.sum(n_touched>0)
for a certain viewpoint, would not give same result.So, to sum up, my doubts are:
radii
andn_touched
represent (if my understanding written above is wrong)?radii>0
andn_touched>0
? Is one of this expressions representing number of visible Gaussians from certain viewpoint? If so, which one? I thought both do... (but it seems not)Thank you very much!