Skip to content

invdepth vs depth in depth rendering forward pass #2

@pschroeppel

Description

@pschroeppel

Hi,

I just had a look at the rendering forward pass and as I understand it, you render invdepth values by taking the weighted average of the invdepths of individual Gaussians:

expected_invdepth += (1 / depths[collected_id[j]]) * alpha * T;

However, the "A Hierarchical 3D Gaussian Representation for Real-Time Rendering of Very Large Datasets" paper states that depth is rendered as weighted average of the depths (not invdepths!) of individual Gaussians:
Image

This seems to contrast with the implementation, as taking the weighted average of invdepth values and then inverting the result to get depth is not the same as taking the weighted average of depth values. Also this seems to contrast with other depth rendering implementations, for example:
https://github.com/Chrixtar/latent-gaussian-rasterization/blob/41e0f23d9fba2f0e0dd27115001ec6d41ed27adc/cuda_rasterizer/forward.cu#L381

I am not sure whether this is a bug, or I am just missing something. It would be helpful for me if you could provide some clarification.
Thanks and best,
Philipp

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions