Skip to content

Support FOV > 180° fisheye camera rendering? #846

@y-takahashi96

Description

@y-takahashi96

In the current implementation, the following code seems to restrict the projection range to within a 180° field of view:
gsplat/blob/v1.5.3/gsplat/cuda/include/Cameras.cuh L930-L934

inline __device__ auto camera_ray_to_image_point(
    glm::fvec3 const &cam_ray, float margin_factor
) const -> typename Base::ImagePointReturn {
    if (cam_ray.z <= 0.f)
        return {{0.f, 0.f}, false};
}

This condition appears to discard rays where cam_ray.z <= 0.f, which effectively limits the rendering to the front hemisphere (≤180° FOV).
For fisheye camera models with a very wide field of view (e.g., 200° or more), how can this restriction be removed or modified?

  • Is there a recommended approach to handle rays behind the camera?
  • Should the projection logic be adjusted, or is there an alternative mapping method for fisheye lenses?

Any guidance or examples would be greatly appreciated.

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