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
2 tasks
ssheorey opened this issue Apr 28, 2024 · 0 comments
Open
2 tasks

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

  • I/O
  • Viewing

Milestones:

  • Build Open3D on CPU and review t point cloud I/O |
  • Read 3DGS ply files into t point cloud and visualize with view-independent rendering -> PR 1 |
  • Write t point cloud into 3DGS ply file -> PR 2 with unit test for read-write-read cycle check. |
  • Study 3DGS implementations and identify best option, risks and blockers for integration |
  • Study filament renderer and Open3D-filament integration |
  • 3DGS Rendering implementation -> PR 3|
  • Performance optimization -> PR 4
  • Demos -> PR 5

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

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