yccyenchicheng / SDFusion

MIT License
406 stars 34 forks source link

Which is better between Triplane representation(Get3D) and Voxel Grid representation(SDFusion)? #31

Open youngstu opened 1 year ago

youngstu commented 1 year ago

Which is better between Triplane representation(Get3D) and Voxel Grid representation(SDFusion)? What are Advantages and disadvantages of different 3D representation methods?

Thanks.

Bathsheba commented 1 year ago

Triplane representation works best for shapes with simple topology which are well described by their 3 orthogonal projections. It is especially good for shapes with bilateral (mirror) symmetry in one or more axes. It works poorly for shapes that do not meet these criteria. I haven't yet tried SDFusion for my shapes, which are topologically complex and don't have bilateral symmetry. I'll make a note if it works better.

aakashsaboo commented 9 months ago

@Bathsheba Hi Why are you saying that the Triplane representation works well only for simple and symmetric shape? Any particular reason or is it your intuition?

Bathsheba commented 9 months ago

That's a great question. I spent a lot of time working with Get3D and eventually gave up on it because it continually enforced bilateral symmetry on data items which don't have this. I thought this was because of the triplane representation, but since then I've worked with other codes that used triplanes and did not have this problem. https://github.com/princeton-computational-imaging/Diffusion-SDF is an example.

So I withdraw my slander of triplanes.

They are popular in this type of code because they are order dimension-squared, whereas voxel grids which are dimension-cubed. I have found them to be effective in reducing memory requirements when encoding high-resolution meshes.

aakash-saboo commented 9 months ago

@Bathsheba I tried to model brain cortical surface using Triplane representation but it did not at all work. Have you tried using this representation for such complicated meshes?

Bathsheba commented 9 months ago

You can see the kind of mesh I have at bathsheba.com. I was impressed by the Diffusion-SDF encoder, it was able to compress complex sculptures into 768 floats, but this type of topological complexity is very different from the surface detail found on a cortex.

I can only advise experimenting, and wish you luck in your quest.

aakash-saboo commented 9 months ago

Can you tell me what do you mean by 768 floats? And I looked into the images on the link you shared. It's very different. I tried a lot of generative models like point-voxel diffusion, and then a Triplane generative model, but they did not work at all. I should try the diffusion-SDF as well.

Thanks!

Bathsheba commented 9 months ago

768 floating-point numbers Diffusion-SDF definitely works better with a large dataset, it is worth trying if you have a lot of brains.