Add more attributes to SplatFacto
For custom models, we need to access some of the intermediate outputs. Lets make them attributes so its easier to call outputs = super(SplatFacto).get_outputs(camera) and still have access to them.
This is a good idea, but its quite a messy interface since there's so many mutable effects within the get_outputs. I wonder if we should just return them as a payload in the outputs dict?
@kerrj, does it make sense to put intermediates in the output dict, since then the viser viewer will try to visualize them as well? Actually, I am thinking that all outputs from project_gaussians depths, radii, conics, and num_tiles_hit should be easily accessible since we need them for any additional calls to rasterize_gaussians (e.g. if the user wants to rasterize some additional feats or normals etc).
Not entirely related to this PR, but I am thinking if we can leverage this TensorDataclass interface to manage intermediate variables and their slicing.