GaussianSplats3D
GaussianSplats3D copied to clipboard
Feature: Support large scenes and large file sizes
There is a 2GB size limitation for JavaScript strings. Will there be any support for handling large files in JavaScript, such as file partitioning or other techniques?
Thanks!
Supporting larger scenes and larger data files is definitely something that is on the roadmap. I'm still thinking about how exactly I want to do it, but in some form it will mean breaking up large scenes into multiple files.
Hi Mark, thanks for your great work! Is there any exact time the large scene feature be released?
Unfortunately I don't have a specific timeline for this feature because I'm not sure how much work will be involved and I'm not even sure what the best approach is for implementing it :) Do you have some example scenes that you are hoping to be able to view?
https://docs.gsplat.studio/main/examples/large_scale.html
Here is an example where they render large scale scenes. Perhaps this is something you could get an inspiration from? :) Newly released with Gsplat 1.0 which is supported by Nerfstudio. @mkkellogg
That update is impressive, but the entire splat dataset still has to be in memory in order to be rendered, which is a significant limiting factor. The trick they employ is to simply ignore gaussians that when projected are too small, which definitely speeds up rendering, and might be worth considering for this library as a general performance enhancement. But web browsers already struggle to sort & render scenes that are in the 6 million splat range, and going beyond that causes out of memory crashes fairly frequently.
What is needed to support very large scenes in the browser is a streaming, LOD-based approach. I'm particularly excited about this project: https://repo-sam.inria.fr/fungraph/hierarchical-3d-gaussians, and am looking forward to when the code is made available.
@mkkellogg
The trick they employ is to simply ignore gaussians that when projected are too small, which definitely speeds up rendering, and might be worth considering for this library as a general performance enhancement.
Is this implemented in 0.4.3? If not, can you give me pointers on how I can do this?
Also the code for hierarchical 3d gaussians is made available recently :)
https://github.com/zhaofuq/LOD-Web-Viewer?tab=readme-ov-file Does this implementation help you The ability to load data using Potrees is combined with your rendering implementation
@lwaier Looking at that repo, it still appears that the whole splat/pointcloud is put into memory. I have opened the issue: https://github.com/zhaofuq/LOD-Web-Viewer/issues/3