skhu101 / GauHuman

Code for our CVPR'2024 paper "GauHuman: Articulated Gaussian Splatting from Monocular Human Videos"
Other
285 stars 23 forks source link

Definition of ray coordinate? #13

Closed markkim1115 closed 5 months ago

markkim1115 commented 5 months ago

Hi, thanks for the great work and sharing code! I tested GauHuman, it was mind blowing.

From your paper, i see that equation transfroms Gaussians from camera coordinate to ray coordinate transformation in Section 3.1.

But i have not heard about ray-coordinate, i cannot fully understand what is the ray coordinate, why we need that process. (May be the ray coordinate is 2D image space?)

Would you explain about the ray coordinate and where is the code lines about transformation process?

skhu101 commented 5 months ago

Hi, thanks for your question. In Ewa volume splatting (https://www.cs.umd.edu/~zwicker/publications/EWAVolumeSplatting-VIS01.pdf), you can find that there are several transformations among different coordinates (world coordinate, camera coordinate, ray coordinate, camera screen). Sec. 4.3 introduces the Viewing Transformation from world coordinate to camera coordinate. Sec. 4.4 introduces the Projective Transformation from camera coordinate to ray coordinate. The definition of ray coordinate is introduced in Sec. 3.1, i.e., "Ray space is a non-cartesian coordinate system that enables an easy formulation of the volume rendering equation. In ray space, the viewing rays are parallel to a coordinate axis, facilitating analytical integration of the volume function." For implementation details, you can refer to preprocessCUDA (https://github.com/skhu101/GauHuman/blob/781539f9c8b92a0b868521bcbb021ae88e62814c/submodules/diff-gaussian-rasterization/cuda_rasterizer/forward.cu#L156).

markkim1115 commented 5 months ago

Detail and kind answer! Thank you so much!!