You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
3D Gaussian splatting is a novel 3D representation that enables fast scene reconstruction and real time photorealistic rendering. We are adding support for 3DGS in Open3D. As part of that, we want to add the ability to read and write 3DGS to files. 3DGS files are commonly stored as [ply format](https://paulbourke.net/dataformats/ply/) files. An alternate more compact representation (without support for view dependent effects) is the [.splat](https://github.com/antimatter15/splat) file format.
Sub-tasks:
Study Open3D point cloud IO code for reading / writing ply files. 3DGS is a point cloud with additional properties.
Add code to support reading / writing ply files with additional vertex properties. Add C++ unit test with very small toy data.
Add code to support reading / writing .splat files. Add C++ unit test with very small toy data.
Convert a 3DGS point cloud to a normal dense point cloud by sampling multiple points with colors from each Gaussian. See this reference implementation. Add C++ unit test with very small toy data.
Add documentation - tutorial Python notebook showing reading a 3DGS, converting it to a point cloud, visualizing it, converting to a mesh, adding albedo texture using the calibrated images and saving the point cloud and mesh. Also crop the original 3DGS point cloud and save it to disk.
Test: Open each of these files and save them back. Open the saved files in the reference viewer and ensure that the original and saved files look indistinguishable.
3D Gaussian splatting is a novel 3D representation that enables fast scene reconstruction and real time photorealistic rendering. We are adding support for 3DGS in Open3D. As part of that, we want to add the ability to read and write 3DGS to files. 3DGS files are commonly stored as [ply format](https://paulbourke.net/dataformats/ply/) files. An alternate more compact representation (without support for view dependent effects) is the [.splat](https://github.com/antimatter15/splat) file format.
Sub-tasks:
Study Open3D point cloud IO code for reading / writing ply files. 3DGS is a point cloud with additional properties.
.splat
files. Add C++ unit test with very small toy data.Test: Open each of these files and save them back. Open the saved files in the reference viewer and ensure that the original and saved files look indistinguishable.
Reference:
3DGS tensor point cloud representation:
pcd.point[‘positions’]
(N,3) – (x,y,z) for each splat.pcd.point[‘opacity’]
– (N,) opacitypcd.point[‘rot’]
(N, 4) - quaternion rotation of Gaussian.pcd.point[‘scale']
(N, 3) - x, y, z scales for Gaussian.pcd.point[‘f_dc’]
(N, 3) – DC components for RGB colors.pcd.point[‘f_rest’]
(N, Nc, 3) – SH coeffs for RGB colors. (Nc = 4, 9 or 16)The text was updated successfully, but these errors were encountered: