autonomousvision / gaussian-opacity-fields

Gaussian Opacity Fields: Efficient and Compact Surface Reconstruction in Unbounded Scenes
https://niujinshuchong.github.io/gaussian-opacity-fields/
Other
559 stars 26 forks source link

How to calculate the point normal #20

Closed tianxiaguixin002 closed 1 month ago

tianxiaguixin002 commented 1 month ago

Thanks to the author for open source this great work. I'm confused about calculating the normal of a point in the code:

point-compute

in the parer, point normal is computed in following formula: point-compute2

There is a big gap between the formula in the paper and the implementation in the code. Can you explain it in more detail? Thank you very much.

niujinshuchong commented 1 month ago

Hi, L539 is -r_g and L542 is the element-wise operation. And then we normalize it in L547 to form a normal in the local gaussian coordinate system. After that, we transform/rotate it to the view space (first to world space then to current view coordinate with inverse of view2gaussian) in L550. In the paper, we transform the normal the world space and ignore the normalisation for simplicity. This two processes is equivalent.

tianxiaguixin002 commented 1 month ago

Thank you !