fix(2dgs): use ray-plane intersection depth instead of Gaussian center depth#932
Open
siddhu-pikachu wants to merge 3 commits into
Open
fix(2dgs): use ray-plane intersection depth instead of Gaussian center depth#932siddhu-pikachu wants to merge 3 commits into
siddhu-pikachu wants to merge 3 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes 2DGS depth rendering so that the depth channel uses the ray-splat intersection depth instead of the Gaussian center depth.
The original issue was that
rasterize_to_pixels_2dgsblended the packed Gaussian center depth in the last channel, which produced incorrect depth for tilted splats. In the repro from #863, this showed up as nearly constant depth across each splat instead of the expected gradient.What changed
has_depth_channelflag through the 2DGS stack so the correction is only applied when the last color channel actually stores depth:Validation
I validated this with the issue #863 repro scene (two tilted splats) and compared the gsplat 2DGS output against the local Inria
diff-surfel-rasterizationreference backend.Before this change:
depth_2dgswas using Gaussian center depth and did not match the expected ray-plane/ray-splat intersection behavior.After this change:
depth_2dgsshows the expected spatially varying depth gradient.Notes
There are still tiny residual rasterization-footprint differences between gsplat and the Inria backend, but those appear to be pre-existing and separate from the depth bug fixed here. This PR is focused on correcting the depth quantity used by the 2DGS path.
Closes #863