Relightable3DGaussian icon indicating copy to clipboard operation
Relightable3DGaussian copied to clipboard

A question regarding visibility from the bvh raytracer

Open swapb94 opened this issue 4 months ago • 0 comments

trace_results = raytracer.trace_visibility(
                rays_o,
                rays_d,
                means3D,
                cov_inv,
                opacity,
                normal)
visibility = trace_results['visibility']                

say, N: number of gaussians, S: number of sampled rays From my understanding,

  • rays_o is [N, 3], which are the origins of each ray, i.e. each of the N Gaussian centers.
  • rays_d is [N, S, 3], which is essentially the direction of each of S rays that was fired from each of the N Gaussians.

The output visbility is [N, S, 1] with all binary values. Q1. Is this telling us whether any Gaussian was hit for each of the fired ray? Q2. If Q1 is true, then I would understand the visibility that we have as output above is the Gaussian-to-ray visibility. Any idea/hints on how to get the Gaussian-to-Gaussian visibility? basically a NxN matrix, which tells that, for any Gaussian point in the scene, which of the remainder N-1 points are "visible" idea would be to culminate the hit result from all the sampled S rays for an individual point to get the equivalent row in the NxN matrix.

swapb94 avatar Oct 13 '24 13:10 swapb94