Render a Large Scene
========================================
.. currentmodule:: gsplat
`gsplat` is designed with efficiency in mind so it's very suitable to render a large scene.
For example here we mimic a large scene by replicating the Garden scene into a 9x9 grid,
which results 30M Gaussians in total while `gsplat` still allows real-time rendering for it.
The main magic that allows this is a very simple trick: we disregard the Gaussians that are
far away from the camera, by applying a small threshold (e.g., 3 pixel) to the projected
Gaussian radius which is configurable in our :func:`rasterization` API as :code:`radius_clip`.
With `gsplat` as CUDA Backend:
.. raw:: html
With `diff-gaussian-rasterization` as CUDA Backend:
.. raw:: html
Note: Similar to the `nerfstudio `_ viewer, our viewer automatically
switch to low resolution if the rendering is slow.
The code for this example can be found under `examples/`:
.. code-block:: bash
# First train a 3DGS model
CUDA_VISIBLE_DEVICES=0 python simple_trainer.py default \
--data_dir data/360_v2/garden/ --data_factor 4 \
--result_dir ./results/garden
# View it in a viewer with gsplat
python simple_viewer.py --scene_grid 5 --ckpt results/garden/ckpts/ckpt_6999.pt --backend gsplat
# Or, view it with inria's backend (requires to insteall `diff-gaussian-rasterization`)
python simple_viewer.py --scene_grid 5 --ckpt results/garden/ckpts/ckpt_6999.pt --backend inria
# Warning: a large `--scene_grid` might blow up your GPU memory.