yccyenchicheng / SDFusion

MIT License
398 stars 32 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 11 months 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 8 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 8 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 8 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 8 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 8 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 8 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.