playcanvas / supersplat

3D Gaussian Splat Editor
https://playcanvas.com/supersplat/editor
MIT License
1.27k stars 118 forks source link

[Feature request] Change selection depth for easier cleaning #29

Closed TimeScience closed 5 months ago

TimeScience commented 10 months ago

This tool is really awesome. Thanks so much for making it.

However, I'm finding it super hard to easily clean up models because the selection tool selects everything under the selection tool, without any reference to depth; and since the gaussian models include background in all directions, it is quite hard to only select the noise points I want to delete that are near the camera, without also selecting everything behind it that I don't want to get rid of. If it was possible to set a depth of selection (maybe as in relation to the distance from the camera?) this might make cleaning up the model way easier.

I suspect the really easiest way to make cleanup easy would be to make a webVR interface so users could just go into the model in 3D and mark up and remove the bad splats by hand, but I'm assuming that is not technically easy to implement :)

slimbuck commented 10 months ago

Hi @TimeScience ,

That's not a bad idea at all and actually in principle not too difficult to add either. What do you think @willeastcott ?

Thanks!

TimeScience commented 10 months ago

Have a look at this file as a good example... there's a bunch of random sky garbage above the chess set, but if you try and remove it, it is quite hard to get the camera positioned right in super-splat viewer. If once could set the "select distance" with a slider of some sort, I imagine this would be much easier.

https://filesender.aarnet.edu.au/?s=download&token=84b3eddf-7138-4254-85a0-23ee43a38de4 (link expires 23-Dec 2023)

willeastcott commented 10 months ago

Sounds like a useful feature to me.

willeastcott commented 10 months ago

Maybe a good way to do this is not with depth explicitly, but by editing the clip planes in SuperSplat?

TimeScience commented 10 months ago

If it was easier to let the user draw a cubical or spherical bounding box, that might be a quite good solution. Essentially you want a way for people to be able to rapidly select & delete the random splats that GS drops all over the place. So if there was a box or sphere they could drag around in 3D space and just delete the contents, that might work well.

marklundin commented 10 months ago

If it was easier to let the user draw a cubical or spherical bounding box, that might be a quite good solution. Essentially you want a way for people to be able to rapidly select & delete the random splats that GS drops all over the place. So if there was a box or sphere they could drag around in 3D space and just delete the contents, that might work well.

There is actually a sphere selection tool you can use to filter things out. It's controlled via the params on the side, so unfortunately no gizmo at the moment

TimeScience commented 9 months ago

Another option might be to let the user be able to turn off the bounding sphere (disable selection of the bounding sphere) so they are only selecting splats in the main part of the model.

Like in the example below, I'm trying to delete some of the bad data at the edges of the scan, but you can see in the second image how this also selects the surrounding sphere and deletes that as well. I don't actually see how one can clean up a splat with the existing tools because it always seems to select the background and deletes that as well. Am I using the selection tools wrong?

Most splats I've looked at need cleaning at the edges of the main model, so if we could just turn off the surrounding sphere, it would make cleanup a lot easier.

image

image

pjbaron commented 9 months ago

super splat is pretty amazing, but I'd definitely like to second this suggestion as written originally. The sphere is great for getting rid of all the stuff in the environment leaving just a focal object, but I captured a T-Shirt on a hangar and it was nearly impossible to clean up the front and back due to the curves of the material

slimbuck commented 5 months ago

We've added the ability to hide selected splats which renders the splats as unselectable. Hopefully this addresses the issues you have here, but please let us know if not.

(This update will be released soon in v0.16.0).