Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement 3D Gaussian splatting viewer #6772

Open
ssheorey opened this issue Apr 28, 2024 · 0 comments
Open

Implement 3D Gaussian splatting viewer #6772

ssheorey opened this issue Apr 28, 2024 · 0 comments

Comments

@ssheorey
Copy link
Member

ssheorey commented Apr 28, 2024

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.
@ssheorey ssheorey added this to the v0.20 milestone Apr 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant