Open3D
Open3D copied to clipboard
Implement 3D Gaussian splatting viewer
Milestones:
- Study 3DGS implementations and identify best option, risks and blockers for integration
- Study filament renderer and Open3D-filament integration
- 3DGS Rendering implementation (view independent only)-> PR 1
- View dependent rendering. -> PR 2
- Performance optimization -> PR 3
- Demos -> PR 3
Resources:
Pre-trained INRIA models: https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/datasets/pretrained/models.zip Optional Validate display of 3DGS .ply / .splat files from luma.ai and polycam Vulkan compute shaders implementation: https://github.com/shg8/3DGS.cpp/tree/main [LGPL-v2.1] WebGL implementation using vertex/fragment shader: https://github.com/kishimisu/Gaussian-Splatting-WebGL, https://github.com/antimatter15/splat
WebGL implementations only support view independent rendering. (no spherical harmonics).
Components: (vkGS -> O3D GS)
- GLM
- Vulkan Memory Allocator
- VkRadixSort
Technical open questions:
- How will integration with Filament work? (e.g. Vulkan callbacks, shared Vulkan buffers).
- An alternative is to use Vulkan directly, and only give the final rendered image to filament to display.
- For the initial implementation, round trip to system RAM is OK, but after optimization we want all data and operations on the GPU.
hi,have you integrated with filament work? Thanks.