uc-vision / taichi-splatting

Apache License 2.0
95 stars 11 forks source link

Supporting orthographic projection #1

Open jakeoung opened 10 months ago

jakeoung commented 10 months ago

Thanks for making this amazing repo!

I just wonder if this code can support orthographic projection, instead of perspective projection.

oliver-batchelor commented 10 months ago

Yes! This is exactly why I wanted another implementation to make it easy to support this kind of thing.

It's a matter of adding a replacement project_to_image for the orthographic projection (and adding a different frustum culling).

It should be simpler than perspective projection because there's no need to approximate the projection (it's just the xy components of the transformed covariance matrix).

I'll give it a try in a few days (unless you beat me to it) as it could be useful to show how to use different projections.

iamblitzcrank commented 8 months ago

Nice work! If so, is there a way to enable equi-rectangular projection?

oliver-batchelor commented 8 months ago

@iamblitzcrank Do you have any background on how to project the gaussian using equirectangular projection? In particular the covariance mapping for 3D to 2D.

For perspective projection this (approximation) is described in Object Space EWA Surface Splatting

But for equirectangular projection, it would be quite different.

I haven't gotten very far with adding different projections, but my idea in terms of implementing it is to have an abstract CameraParams class (currently there is one but it is only perspective) with an overloaded projection function which calls a custom kernel. Happy if anyone wants to contribute here!!

oliver-batchelor commented 8 months ago

There seems to be a paper on this recently published "360-GS: Layout-guided Panoramic Gaussian Splatting For Indoor Roaming"

Equations 4-10 gives exactly the necessary transformation.

yh-yoon commented 8 months ago

Thanks for your response, I'll check about it.