-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Silhouette Rendering #26
Comments
Hi, Thanks for your interest in our work! The Silhouette is basically the cumulative opacity along a ray. This is naturally obtained by the alpha-compositing in the rasterization of 3D Gaussians. Instead of implementing the gradient for the alpha-compositing in CUDA. Here, we render the Silhouette by considering it one channel of dummy color, where the other two channels are depth and depth squared. We essentially assign a color of 1 to each Gaussian. Let's say there are 3 Gaussians along a ray; the cumulative opacity will be given by In this fashion, for each pixel, you will directly get a cumulative opacity along the ray, which is the Silhouette. For empty space, the value will be 0 because no Gaussians exist along the ray. |
Thank u for your explanation. I have understood the principle by thinking in terms of the α-compositing. |
Hi, thanks for your question and the author`s explanation. , and the Silhouette for each pixel , where Above all are the descriptions in the SplaTAM paper. However, I don`t know the exact However, I found it a little weird to directly exchange the $\mathbf{x} \in \mathbb{R}^{3} $ to , the function The views expressed above are my preliminary thoughts on the matter, and I would be grateful for any critiques or corrections from yours. Thanks very much!! |
Hi @lvmingzhe, Thanks for sharing your views! Yes, you are correct. The detailed equation would be similar to what you outlined. One small addition is that the contribution coefficient of the Gaussian is the opacity (alpha) of the Gaussian. Hence, the Silhouette is the output of the alpha-compositing process in the rasterization of 3D Gaussians. |
Hi, what a great job! However, there is one question that consistently bothers me. How to get the silhouette?
I have read the paper and checked the code. But I also can't understand the principle of getting silhouette.
In the
def get_depth_and_silhouette(pts_3D, w2c)
, I find that the data stored bydepth_silhouette
is[depth_z, 1, depth_z_sq]
.Then, the first variable
depth_sil
obtained after Gaussian rasterization rendering.Finally, we can get
silhouette
directly from the second dimension of that variabledepth_sil
The text was updated successfully, but these errors were encountered: